Visual Studio Code update: First steps with profile support

Microsoft and the Visual Studio Code (VS Code) team have rolled out version 1.67 of the Electron-based editor that has become the world’s favorite IDE – StackOverflow’s last survey reckoned it was used by 71.06% of respondents, more than double the usage of second-placed Visual Studio.

It has become a monster project and issues are opened every few minutes on GitHub.

Sometimes small changes make the biggest impact, and that may be the case with bracket pair colorization, a feature that was originally an extension but became part of VS Code’s core in August 2021 – with a claimed 10,000 times performance improvement.

Deeply nested code in curly brace languages like JavaScript, Java, C and C# can be difficult to navigate or correct when it goes wrong, and inadvertently deleting a brace can cause the editor to report hundreds of errors. Colour-coding the pairs is a great help, and also works with brackets to help disentangle long lines of code.

In this latest release it is on by default, which means those developers who had not discovered it before may wonder how they managed without it.

Color-coded bracket pairs help with navigating and correcting code – now on by default

Markdown editing is improved. Authors can create links to files by drag and drop from the Explorer or from a web browser while holding down shift, handy for documentation. Another new Markdown feature is find all references, which works for headers, links, file references, and URLs.

Related is the new ability to rename link destinations including headers, file links, and reference links, while automatically updating any links that target them. This makes updating a large document without breaking links much easier.

Perhaps the most strategic change in this release though is a preview feature, the ability to import and export settings profiles. This includes which extensions are installed as well as UI customizations such as which items are visible in the Activity Bar – the bar with icons for key functions like Explorer, Search and source control.

It does not yet include all settings but more comprehensive import and export is planned. Use cases include standardising settings for a development team, or providing students with a pre-configured setup.

The concept could have value in tailoring VS Code for specific types of work. The popularity of the editor and the vast number of extensions can lead to a bloated setup and impact performance. A developer may want to use one set of extensions for TypeScript or JavaScript, and another for Python work, for example.

It is already possible to have language-specific settings but combining with profiles would make this more powerful. Caution is required though since importing profiles overwrites existing settings.

Java coders benefit in this release from lazy variable resolution, a debugger feature which defers retrieval of values for what the team describes as “an expensive variable” until it is explicitly viewed.

Python support has also been updated. The official Python extension was getting too big so the team is breaking into separate extensions to improve performance.

A new extension now supports the Black Python code formatter which its authors describe as “uncompromising” because “you agree to cede control over minutiae of hand-formatting.”

There are also improvements to the Jupyter notebook support. The extension can now be used as a web extension with the browser version of VS Code, though with limited functionality, and many more features are planned for this, so it will work in environments such as Microsoft’s vscode.dev.