Visual Studio Code
This post is on the features of Visual Studio Code I have come to use most.
Remote-SSH
Visual Studio Code (“vscode” for short) addresses such a variety of interesting use cases. Install the right extensions and it becomes a fully-fledged IDE. Use it to run Jupyter Notebooks and even draw BPMN diagrams. It is the epitome of extensible software and many companies are investing large resources to ensure that their formats / processes are supported within vscode.
In my eyes, the killer feature of vscode is the Remote-SSH extension. In short, it allows to remote into any ssh-enabled system. It makes remote development totally seamless. As explained in my first post, I like using virtual machines and the Remote-SSH extension is what I use to acquire connection.
Workspaces
Workspaces is a way to decouple the underlying file system from what should be readily available within the vscode explorer for a particular project. A single-root workspace only points to a single folder. This is already useful by itself given that extensions can be activated at workspace level. Large extensions may result in heavy load on the remote system. It helps to only activate the needed extensions at workspace level.
A multi-root workspace references multiple folders living in the underlying file system. A common set-up I use is the following: the documentation of the project sits in a folder on a shared drive and the code lives locally on my machine. A multi-root workspace allows to pull both directories in the workspace for increased productivity. This makes for a perfect replacement for the Windows File Explorer which only recently introduced multi-tabbed functionality.
I created a small vscode extension to augment the default Seti theme with Google Docs icons. The extension needs to be installed manually due to restrictions imposed by the VS Code Extension Marketplace. When I find the time, I would like to continue iterating on it and include open and create functionalities.
Workspaces can also be combined with symbolic links to great effect. If you see yourself regularly pulling the same folders into workspaces, create symlinks to these in a folder and add that enclosing folder to the workspace.