I have been asked a couple of times recently what my Visual Studio Code extensions are at the moment so I thought I would write a quick post and also look at workspaces and how you can enable and disable extensions within them
Listing Extensions
From the command line you can list your extensions using
code --list-extensions
code-insiders --list-extensions
My list looks like this
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image.png?fit=630%2C919&ssl=1)
You can also see them in the view on the left of default Visual Studio Code and open them with CTRL + SHIFT + X (unless like me you have Snaggit installed and it has taken that shortcut
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-31.png?fit=448%2C1024&ssl=1)
Installing Extensions
You can install extensions by opening the Extensions view in Visual Studio Code and searching for the extension. The list I have below has the precise names for each extension which you can use to search
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-24.png?w=630&ssl=1)
You can also install extensions from the command-line with
code --install-extension <extensionid>
code-insiders --install-extension <extensionid>
My Extensions
I am going to list these in alphabetical order by display name for ease (my ease that is!)
![](https://i2.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-1.png?fit=630%2C153&ssl=1)
Because Chrissy LeMaire and I are writing dbatools in a Month of Lunches using AsciiDoc, it makes sense to have an extension enabling previewing and syntax, you can find it here
![](https://i2.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-2.png?fit=630%2C140&ssl=1)
For interacting with Azure I use the Azure Account Extension – ms-vscode.azure-account
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-3.png?fit=630%2C183&ssl=1)
I use Azure CLI so I make use of the functionality of the Azure CLI Tools extension ms-vscode.azurecli
![](https://i2.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-4.png?fit=630%2C143&ssl=1)
For interacting with Azure Repos I use the ms-vsts.team extension
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-5.png?fit=630%2C117&ssl=1)
When creating ARM templates, this extension is very useful msazurermtools.azurerm-vscode-tools
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-6.png?fit=630%2C173&ssl=1)
I have a few theme extensions, this one is for fun in demos beardedbear.beardedtheme
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-7.png?fit=630%2C548&ssl=1)
The blackboard theme is my default one gerane.theme-blackboard
![](https://i2.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-8.png?fit=630%2C354&ssl=1)
Chasing closing brackets is much easier with the Bracket Pair Colorixer, I use the beta version coenraads.bracket-pair-colorizer-2
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-10.png?fit=630%2C135&ssl=1)
I am rubbish at spelling and typing so I use this to help point out the issues! streetsidesoftware.code-spell-checker
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-11.png?fit=630%2C263&ssl=1)
Using the Docker extension adds another view to Visual Studio Code to ease working with containers ms-azuretools.vscode-docker
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-12.png?fit=630%2C138&ssl=1)
As an open-source project maintainer it is good to be able to work with GitHub pull requests without leaving Visual Studio Code github.vscode-pull-request-githubPreview
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-13.png?fit=630%2C135&ssl=1)
GitLens is absolutely invaluable when working with source control. It has so many features. This is an absolute must eamodio.gitlens
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-14.png?fit=630%2C249&ssl=1)
Working with Kubernetes? This extension adds another view for interacting with your cluster ms-kubernetes-tools.vscode-kubernetes-tools
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-15.png?fit=630%2C151&ssl=1)
Visual Studio Live Share enables you to collaborate in real-time in Visual Studio Code with your colleagues or friends. I blogged about this here ms-vsliveshare.vsliveshare
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-16.png?fit=630%2C158&ssl=1)
I lvoe writing markdown and this linter assists me to ensure that my markdown is correct davidanson.vscode-markdownlint
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-17.png?fit=630%2C650&ssl=1)
The Material Icon Theme ensures that there are pretty icons in my editor! pkief.material-icon-theme
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-18.png?fit=630%2C159&ssl=1)
I have both the PowerShell extension ms-vscode.powershell and the PowerShell preview extension ms-vscode.powershell-preview installed but only one can be enabled at a time
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-19.png?fit=630%2C508&ssl=1)
This suite of extensions enables easy remote development so that you can develop your PowerShell scripts, for example, inside a ubuntu container running PowerShell 7 or inside Windows Subsystem for LInux ms-vscode-remote.vscode-remote-extensionpackPreview
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-20.png?fit=630%2C107&ssl=1)
Writing for cross-platform means looking out for line endings and this extension will display them and any whitespace in your editor medo64.render-crlf
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-21.png?fit=630%2C85&ssl=1)
An absolutely essential extension which enables me to backup all of my Visual Studio Code settings, shortcuts, extensions into a GitHub gist and keep all of my machines feeling the same. shan.code-settings-sync
![](https://i0.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-22.png?fit=630%2C184&ssl=1)
For working with SQL Server within Visual Studio Code and having a view for my instances as well as a linter and intellisense I use ms-mssql.mssql
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-23.png?fit=630%2C151&ssl=1)
Yaml files and spaces! I no longer get so confused with this extension to help me redhat.vscode-yaml
Workspaces
Now that is a lot of extensions and I dont need all of them everytime. I use workspaces to help with this. I will create a workspace file for the project I am working on.
I open or create the folders I will be working on and then click File and Save Workspace As and save the file in the root of the folder.
![](https://i2.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-25.png?w=630&ssl=1)
Now, the next time I want to open the workspace, I can open the workspace file or if I open the folder Visual Studio Code will helpfully prompt me
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-26.png?fit=630%2C180&ssl=1)
Now I can have all of my settings retained for that workspace
![](https://i2.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-27.png?fit=630%2C194&ssl=1)
For this folder, I am ensuring that the PowerShell extension uses the PSScriptAnalyzer Settings file that I have created so that it will show if the code is compatible with the versions of PowerShell I have chosen. I can define settings for a workspace in the settings file, which you can open using CTRL and ,
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-28.png?fit=630%2C231&ssl=1)
But I can also enable or disable extensions for a workspace
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-29.png?fit=630%2C218&ssl=1)
So everytime I open this workspace I am only loading the extensions I want
![](https://i1.wp.com/sqldbawithabeard.com/wp-content/uploads/2019/11/image-30.png?w=630&ssl=1)