Extension Updates Highlight VS Code 1.23 (April 2018 Edition)
Microsoft said the newest monthly release of its open source, cross-platform Visual Studio Code editor focused on APIs to help developers create third-party extensions.
Extensions available through the Visual Studio Code Marketplace provide the bedrock of the VS Code experience, opening up the popular code editor to all kinds of new technologies and development functionality, such as Python and Java development and much more.
Among the many enhancements to ease the process of writing VS Code extensions are the following:
- The ability to contribute custom view extensions to the Activity Bar in addition to the File Explorer, which was getting a bit cluttered. This helps the editor scale up as more custom views and other extensions are added.
- Associated with the above, extension authors can contribute Source Control Management (SCM-related custom views into the Source Control view container in the Activity Bar and hide and re-order these views just as in the File Explorer.
- Extensions can now serve files and folders from ftp-servers and other arbitrary sources, and the editor will handle them just like regular files.
- A new API to read diagnostics and provide notifications when diagnostics change.
- The webview API allows extensions to create fully customizable views within VS Code. For example, the built-in Markdown extension uses webviews to render Markdown previews. Webviews can also be used to build complex user interfaces beyond what VS Code's native APIs support.
The VS Code team also contributes or maintains many extensions for the code editor, and this month the Sublime Text Keymap extension is now able to import settings from Sublime.
Several proposed extension APIs have been added to this release, which will be made stable in a future release as the team becomes more confident in them. They include:
- Integrated Terminal API, to help extension authors access all terminals while enabling multiplexing of terminals across different machines (previously an extension could only access the terminal which it created).
- Task API, a proposed API to enhance task querying and execution from an extension.
- Protocol Handler API to help extensions handle system-wide URIs, useful for cross-application integrations as it lets other applications send URIs to specific extensions.
- Folding Provider API, which was a proposal in v1.22 and now is official, letting language extensions provide syntax-aware folding ranges.
Other new features include: an NPM script explorer; a new tutorial for deploying a static Web site to Azure Storage; highlighted index guides to help visualize source code indenting; automatic execution of actions like Organize Imports when saving a project; and more.
In addition to the above and extension-related updates, many new changes were highlighted by the VS Code team including:
- Editor -- Better Unicode file support, more stable editor positioning.
- Workbench -- Copy search results, better Git clone workflow, VS Code process explorer.
- Debugging -- Logpoint expressions support smart completions and displaying structured objects.
Dozens of community volunteers helped with the new release and were thanked by name by the VS Code team.
David Ramel is the editor of Visual Studio Magazine.