Microsoft regularly updates Visual Studio Code. This changelog chronicles the key updates from version 1.17 through version 1.33. Credit: Thinkstock Microsoft’s open source development tool is an important piece of the developer’s toolkit. Built using GitHub’s cross-platform Electron framework, Visual Studio Code is a full-featured development editor that supports a wide selection of languages and platforms, from the familiar C and C# to modern environments and languages like Go and Node.js, with parity between Windows, MacOS, and Linux releases. Microsoft regularly updates Visual Studio Code. Keep track of the updates’ key features in this changelog. Where to download Visual Studio Code To download the editor for Windows, MacOS, and Linux, go to Microsoft’s Visual Code Studio website. It’s also available in Anaconda Python as an option in Distribution 51. Current version: What’s new in Visual Studio Code 1.33 Microsoft released Visual Studio Code 1.33 in April 2019 with the following new features and improvements. It is now easier to configure the display language. Running the Configure Display Language commands will open a Quick Pick listing of available locales based on the language picks installed, instead of having to open the JSON file. When a selection is made, the locale will be updated and the user prompted to restart Visual Studio Code. The Source Control view has been aligned to behave as other views, such as the File Explorer and Open Editors views. Repositories can be made visible or hidden using context menu actions. Order and sizing can be preserved. The Source Control view also resizes itself up to a certain number of source control providers. There are new settings to customize the IntelliSense display. The suggest.filteredTypes setting, for example, filters specific types from IntelliSense, with keywords filtered with: { "keyword": false }. A default document formatter can be designated. The Go To Definition behavior can be customized. A “Convert to named parameters” refactoring for TypeScript allows for quickly organizing long function parameters lists by converting the function to take a single named parameter object. A completion.triggerPropertyValueCompletion setting allows for disabling property value completion. Debugging support has been added for subsessions. Debug sessions can be displayed as a tree in the debugger UI. This functionality is available through a new extension API, meaning it requires adoption by debugger extensions. Only the Node.js debugger supports it now. A capability to automatically open a URL in a browser as soon as a specific message output is detected has been moved out of preview stage. This feature is useful for debugging web server source code. Extension activation failure notification has been improved when Visual Studio Code detects a missing extension dependency. An action is provided to install the missing dependency. Previous version: What’s new in Visual Studio Code 1.32 Microsoft released Visual Studio Code 1.32 in March 2019. Its new features include: Developers can preview and apply color and file icon themes right after installing an extension that provides them. There is no need to reload. It is now possible to edit the when clause of a key binding in the Keyboard Shortcuts editor. The Command bar with Quick Fix and Peek Problem actions was added to the Problems hover. Quick fixes can be applied from the hover while Peek Problem opens the peek view in the editor. Developers can navigate to the previous and next error or warning from a problem peek view. Extensions can mark a Code Action as “preferred” to indicate that it is the most-reasonable fix for a problem. You can configure the font size and family, and the line height in the Debug Console using settings including: console.fontSize, debug.console.fontFamily, and debug.console.lineHeight. HTML IntelliSense (smart completions) has been improved for ARIA (accessible rich internet applications) attributes. The Vetur extension provides IntelliSense for Vue.js interpolations. ES6 (ECMAScript 2015) is targeted in the new version of the editor. ES6 is much closer to TypeScript and produces less code, for faster loading times. (Visual Studio Code is written in TypeScript.) The editor now supports dynamic loading of TypeScript plugin extensions. Visual Studio Code 1.32 includes TypeScript 3.3.3, a small update with some bug fixes. Microsoft cautioned that Linux 32-bit support for Visual Studio Code will end soon. Developers are advised to update to the 64-bit version. The company also said it was making progress on reducing strict null errors in the editor. Previous version: What’s new in Visual Studio Code 1.31 Microsoft released Visual Studio Code 1.31 in February 2019 with these major changes: The editor no longer has to be reloaded whenever an extension is installed or updated. Reloads interrupted workflow and would disrupt the state of any running code within the editor. Note that extensions that rely on other extensions may require the editor to be reloaded, but most extensions should upgrade seamlessly. Also, many new extension authoring additions are available, such as the ability to open resources in a system web browser (e.g., a PDF file), or the ability to suggest changes via Visual Studio Code’s Quick Fixes system. The tree widget used in the editor (e.g., for the Explorer pane) has been rewritten from scratch to be faster, and to support new features including type to navigate within a tree, instead of only being able to use the search widget; more flexible command bindings for extensions that use the tree widget; expand/collapse all by holding the Alt key when opening/closing tree nodes; customizable indent sizes for tree nodes; and much more. The Problems panel now shows multi-line results in an expandable/collapsible view. This is useful for complex errors that involve showing code in context and for other detailed feedback. The integrated terminal reflows lines correctly when its width is changed. Previously, the output would become mangled. Windows users have the option to use the native Windows Console API for the terminal to solve many compatibility issues. Type-to-search in the terminal has also been improved. For example, type-to-search now finds all instances of a term used multiple times on a single line. Task and debug configurations can now accept user inputs — for instance, as a way to interactively choose which subfolder to run tests from. Also, Tasks can now be configured to provide output in a subdivided version of the current integrated terminal window instead of an entirely new one. Other changes include: A new “screencast mode” provides more visual feedback for the cursor and keystrokes. The Go menu for the application includes more commonly used options. The References system (for looking up the use of functions, etc.) has added a history, allowing for quick lookups of previously used code. Previous version: What’s new in Visual Studio Code 1.30 Visual Studio Code 1.30 was released in mid-December 2018. Some of the major additions in this version include the following: Visual Studio Code extensions can be easily reverted to a prior version if the current one proves buggy. You can do this by way of the Install Specific Version action from the Command Palette, or by selecting “Install Another Version” from the gear icon next to the extension in the Extensions view. TypeScript 3.2.2 is now supported. With this comes better support for callbacks in JavaScript and TypeScript (they are now shown with more context), improved handling of renames in both languages (renames now work in the context of a destructuring), and other useful JavaScript/TypeScript features. Search boxes in the UI now accept multi-line input, either pasted or typed by pressing Shift+Enter to insert a newline. Searches for multiline matches also don’t need regular expressions; they work as-is. The Find All References view, used to show all the places in a project that refer to a given variable or routine, now has a search history of its own. This was previously considered a preview feature, but is now promoted to full use. Debugging is now easier to set up for a new project — for instance, by making it easier to specify user input variables for debug configurations. It’s also now possible to clear old debug consoles, and debug Node.js processes directly from Visual Studio Code’s Process Explorer. Other improvements: Buggy extensions that hang Visual Studio Code are profiled. If an extension is chronically unresponsive, Visual Studio Code encourages the user to file an issue with the extension developer. Menus now have overflow hints and scroll hints, to accommodate menus potentially larger than the display. Snippets can now insert block comments with proper syntax for the language in use. Tasks can be configured to run automatically whenever a given folder is opened in Visual Studio Code. Previous version: What’s new in Visual Studio Code 1.29 The October 2018 update to Visual Studio Code, Version 1.29, added the following major features: Regular expression searches support multi-line mode. You can now match for an expression that spans one or more line breaks by including a newline literal (n) in a search expression. It’s also now possible to use back references and look-ahead assertions in regex, although you need to set the search.usePCRE2 option to “true” first. MacOS support now includes full-screen mode control. You can use either MacOS’s native full-screen mode or Visual Studio Code’s implementation of full-screen mode, which doesn’t create a MacOS space on the desktop. Visual Studio Code also has improved support for MacOS Mojave Dark Mode; the theming of Visual Studio Code more closely matches Dark Mode’s own theming when Dark Mode is enabled. Stack frames in the debugger can be collapsed for faster browsing of the call stack. A new fast command, List All References, opens a new sidebar view that provides a browsable list of references to a particular function or variable. Many new features are available for builders of extensions for Visual Studio Code, and the code samples in Microsoft’s repository have been cleaned up and made more consistent. Further, you can now build extensions without having to explicitly name a publisher—handy if you’re just throwing together an extension for internal use. Previous version: What’s new in Visual Studio Code 1.28 The September 2018 release of Visual Studio Code, Version 1.28, provides improvements to the code editor’s behavior, its convenience functions, and Git integration. Among the most notable improvements: Code snippets, a way to save and re-use common bits of boilerplate, can now be saved as part of a project and shared with others. Snippet titles, or prefixes, are no longer limited to a single string, making it easier to find a snippet by typing in one of a number of possible prefixes for it. Git now provides a more detailed UI for handling conflicting deletes, allows the length of a Git commit message to be constrained, has validation rules for the names of branches provided by way of a regular expression, and allows the latest stash to be applied to the workspace by executing a global command palette action. The editor now supports a wider range of suggestions for tab completion (including Shift-Tab to move backwards through suggestions), can automatically jump to the last edit location in a file by way of a keybinding, and allows files to be saved without autoformatting. This last is useful when editing a file provided by another team with different linting rules. TypeScript code can now be quickly refactored to use async/await commands. Previous version: What’s new in Visual Studio Code 1.27 The August 2018 release of Visual Studio Code, Version 1.27, includes many UI and UX improvements, debug extension changes, and additions to editing CSS and JSON files. The GUI-based user settings editor, rolled out in previous builds as an experimental feature, is now the default way to edit Visual Studio Code settings. It is still possible to edit the underlying JSON directly, but the settings editor provides options for a value, field validation, and other useful feedback. When editing CSS files, path completions for CSS, SCSS, and Less @import statements now appear automatically, and clicking on links defined by @import and url() statements jump to their definitions. JSON editing now supports features available in the latest schema draft, such as conditional evaluation of schemas. A feature contributed by the Node.js debug extension, the ability to see all loaded scripts in a dynamically updated view, is now available as a built-in debugger feature for all languages that can make use of such a metaphor. Newly proposed Extension APIs offer the ability to know which source control instances are selected, and include providers for inline comments in documents or workspaces (for instance, for Gitter-like chat between developers). Other changes of note include the following: Many new features for authoring extensions, such as an update to the Language Server Protocol that allows menu entries to be populated based on announcements from the language server. Enhanced customization of title bars and menus, so that (for instance) dark themes apply consistently, keyboard navigation behaves better in the menu bar, and the menu bar itself is less intrusive. Breadcrumb navigation within edited files, introduced in the last build, now honors editor themes and file exclusions. The “Tasks” menu, now named “Terminal,” now encompasses more functions from the integrated terminal. Key bindings can now be per-platform. Auto-closing of bracket characters in the editor can now be customized further. Previous version: What’s new in Visual Studio Code 1.26 The July 2018 release of Visual Studio Code, Version 1.26, offers improvements including breadcrumbs navigation, for jumping to files and symbols in a workspace. Breadcrumbs show the file path and, using extensions, the symbol path to the cursor position. Symbols shown match the Outline view and Go to Symbol. Developers can customize the appearance of breadcrumbs. To begin using breadcrumbs, enable it by choosing View > Toggle Breadcrumbsor via the breadcrumbs.enabledsetting. Other capabilities in Visual Studio Code 1.26 include: Quick fixes from the Problems panel let developers apply code fixes while reviewing errors and warnings. TypeScript and JavaScript error messages are now clearer. JSX tags are closed automatically when developers type > in a TypeScript or JavaScript file. This behavior matches what was already being done with HTML files. The user setup package for Windows is now available in a stable mode; administrator privileges are not needed to install it. Background updating is smoother. Column selection is supported in the integrated terminal, using Alt-click. The Add Missing Import quick fix can be applied to all missing imports in a JavaScript/TypeScript file. The fix only adds imports for symbols with a single potential definition. If there are potentially multiple definitions, developers must quick-fix the individual error and select the specific import. Searching for extensions been made easier by adding IntelliSense autocompletions to the extension search field. Extension packs can be managed as a single unit or by individual extension. A new settings editor, still in beta, includes a new header user experience and setting descriptions rendered as markdown. TypeScript 3.0.1 ships with the release. Previous version: What’s new in Visual Studio Code 1.25 The June 2018 release of Visual Studio Code, Version 1.25, promotes several preview features to stable and introduces some new editor layout functionality. The new features: Editors can now be laid out horizontally and vertically in a grid format. There are some behavioral changes in the ways editors are opened, manipulated, and closed, but people using only one or two editors at a time should not notice major changes. Outline view, now out of preview, allows a file’s contents to be shown in an overview format by way of a new API. For instance, you can now display a program file’s functions, constants, and attribute methods in a tree view. Users of IDEs like Eclipse have long enjoyed outline views, but some equivalent of it hasn’t been available in Visual Studio Code until now. Instances of Visual Studio Code can now be run from a self-contained directory, such as a USB drive or network share. Network traffic to and from services that implement the Language Server Protocol (LSP) can be inspected and analyzed. This is mostly for those developing LSP implementations, such as an extension for implementing LSP support for a given language. Python users have a new tutorial for making use of the Flask web framework. New in beta this time around is the Settings Editor. Normally, manually changing settings in Visual Studio Code involves editing JSON files that describe the settings—a tedious and error-prone process. The Settings Editor provides a more readable and navigable GUI front end for those files. Previous version: What’s new in Visual Studio Code 1.24 The May 2018 release of Visual Studio Code, Version 1.24, focuses on variable detection, file refactoring, and new editing functionality. Its new featuries include: The unused variable detection capability grays out these variables in JavaScript and TypeScript files. Parameters and imports are grayed out as well. Developers can use a Quick Fix to remove them automatically. For file refactoring, developers can pull classes and functions into their own files. Import paths in JavaScript and TypeScript are automatically updated when a file is moved or renamed. The feature requires TypeScript 2.9, which now ships with the editor. The Duplicate Workspace in New Window command does what it says: Duplicates the current workspace in another window. IntelliSense is being provided for variables, with predefined variables suggested as completions inside string values for json and launch.json configuration files. Font zoom commands increase or decrease the editor’s font size while the rest of UI is left as is. This feature helps with pair programming and presentations. Syntax-aware folding is enabled by default for TypeScript and JavaScript. Beta features being previewed in Version 1.24 include: The Settings Editor provides a GUI to discover and modify Visual Studio Code settings. The Outline view capability shows the symbol tree of the currently active editor. The debug toolbar location feature can float, dock or hide the toolbar. The editor grid layout feature allows for opening editors vertically and horizontally without limits. This feature will be available in the editor’s beta release early this month. Previous version: What’s new in Visual Studio Code 1.23 The April 2018 release of Visual Studio Code, Version 1.23, focuses on API work to support extension authors. Its featuries include: Highlighted indent guides to visualize source-code indenting. Extension authors can develop custom Activity Bar items. The NPM code-explorer capability supports running and debugging NPM scripts in a project. The codeActionsOnSave setting lets developers configure a set of code actions to be run when a file is saved. The editor has improved Unicode support. The problems-view filtering lets developers choose files that will display warnings and errors. For CSS, region folding allows creation of regions in CSS/SCSS/Less code. This provides helpful code folding. Also, new property support in CSS has been improved, with suggestions for experimental properties. The TypeScript and JavaScript Organize Imports feature is now in production, no longer in beta. Used this feature to remove unused imports and sort remaining imports in source code. TypeScript 2.8.3 ships with the upgrade, fixing some bugs. In the workbench, Git clone workflow has been improved Markdown has added support for workspace symbol search. For debugging, logpoint expressions support smart completions and displaying of structured objects. Previous version: What’s new in Visual Studio Code 1.22 Version 1.22 of Visual Studio Code, released in March 2018, offers improved syntax-aware code-folding as well as better support for large files. For syntax-aware code-folding, folding ranges in HTML, Less and Scss stylesheets, JSON, and Markdown now are computed by default based on the language’s syntax. The ranges no longer rely on well-formed indentation. You can also enable this feature for TypeScript and JavaScript via the setting ”typescript.experimental.syntaxFolding”: true. You also can switch back to indentation-based folding if desired. Microsoft is also proposing a new API for extensions so other languages can provide syntax-aware folding providers. The Version 1.22 upgrade’s other new features include: It is now easier to open large files. Previously, opening files in the 2GB range or more prompted a relaunch from the command line with a flag. Now, a notification appears that enables quick relaunch with more memory available. Automatic background updating in Windows is enabled. Improvements have been made to discoverability of JavaScript and TypeScript suggested code actions, with changes proposed to help improve source code. An example suggestion includes conversion of ECMAScript 5 classes to ECMAScript 6. Navigation of errors and warnings via F8 accounts for all reported errors. Rather than looping inside one file, it goes to the next file with errors and back. The new Auto Attach feature has been added to the editor’s Node.js debugger, which automatically attaches to Node.js processes launched in debug mode from the Visual Studio Code integrated terminal. Developers must enable this feature. A new command is featured to navigate to reference search results. Trigger Find All References on a symbol and use F4 and Shift-F4 This is useful for making edits in all places that reference a symbol, without having to move your fingers off the keyboard. Initial work is included in the development of logpoints. A logpoint is a variant of a breakpoint that does not break into the debugger but logs a message to the console. These are useful for injecting logging when debugging of production servers cannot be halted. The editor’s extension API now supports creation of “hint” diagnostics, which are suggestions on how to improve a project by, for example, running a particular refactoring. The editor now ships with TypeScript 2.8. The terminal now has command tracking, which tries to guess when a command is run and allows “easy” navigation and selection between them. A beta version of the Organized Imports command for JavaScript and TypeScript is provided; it removes unused imports and sorts remaining imports. Previous version: What’s new in Visual Studio Code 1.21 The February 2018 release of Visual Studio Code, Version 1.21, offers these new features: A notifications UI, to manage notifications. Integrated terminal splitting, in which the terminal can support multiple views at once, for easier terminal management. The Markdown preview capability adds bidirectional scrolling. Improvements to large file support, in which the text buffer has optimizations for large files. A centered editor layout capability to help developers stay focused on code while providing the most screen space for the editor. The ability to drag fies from the Windows File Explorer into a specific space of open folders. Files also can be dragged from the desktop into an open editors space. HTML path completion, to ease the import files in HTML. A beta horizontal search results view. A tutorial on deploying serverless Azure Functions in the Azure cloud. Previous version: What’s new in Visual Studio Code 1.20 Released in January 2018, Version 1.20 of Visual Studio Code features the ability to run actions on different files simultaneously. Other new features include: Developers can select multiple files in the File Explorer and Open Editors view, to run actions on multiple items. Error indicators are shown in the File Explorer and Open Editors view. The editor now ships with TypeScript 2.7.1. The Quick Fix capability for errors in JavaScript and TypeScript is included, with developers able to apply the same fix to all occurrences within a file. The improved Settings search capability uses natural language search to find the right setting. The Git submodule support debuts, to perform operations on nested Git repos. Files that need administrator privileges can be saved. Files larger than 256MB can be saved. Debugging for multiroot workspaces is added, to manage configurations among multiple projects. For extension authoring, custom views have been improved with additions to the API. Global snippets can be created; these are snippets not scoped to a single language but that can target any kind of files. Developers can zoom in on image previews. Terminal screen reader support is added, first step to making terminal use easier for people with vision impairment. Features in notable Visual Studio extensions What’s new in the C/C++ for Visual Studio Code extension In late February 2018, Microsoft made avaiable the C/C++ for Visual Studio Code extension that makes it easier to read code in Visual Studio Code. It grays out inactive code regions, which are controlled by conditional-compilation directives. Other features in the Version 0.15.0 extension include: Updates for the IntelliSense compiler with more C++ 17 support and bug fixes. Fixes for the highest-hitting crashes, which had impacted IntelliSense and Qt projects. Repair of a stuck IntelliSense process during shutdown. Addition of more macros for hint. Fixing of error popup appearing with non-workspace files when using compile-commands.json. Defining Unicode by default on Windows platforms. What’s new in the Visual Studio Code Debugger for Java extension Visual Studio Code has added new support for Java development. The 0.5.0 release of the Debugger for Java extension for Visual Studio Code adds expression evaluation and support step filters. With expression evaluation, developers can see the value of simple variables, single-line expressions, and short code fragments in the running context. Developers then can monitor and validate the change of a value while code is executed. Support step filters let developers configure packages to filter in a launch.json configuration file. Step filters usually are used to filter out types that developers do not want to see or step through when debugging. In the Debugger for Java 0.5.0 release, binaries can be published to a central Maven repository. Where to download Visual Studio Code extensions You can download extensions from the Visual Studio Marketplace. Here are popular extensions: C/C++ Debugger for Java Tomcat Maven Project Explorer Checkstyle Previous version: What’s new in Visual Studio Code 1.19 Visual Studio Code 1.19, the November 2017 release of the editor, focuses on product performance, data collection tools for better reporting, and GitHub issue cleanup. Key features include: Quicker startup. Addition of a command-line argument that prints diagnostics information to the terminal. This information can be shared with Microsoft in GitHub issues, with the intent of providing a better understanding of the editor at the time of the issue. New diagnostics, logging, and extension monitoring. Tabbed headers that can scale to available space. The IntelliSense capability remembers previous suggestion choices. The output of a terminal command can be piped directly into Visual Studio Code. Changes to images can be viewed side by side in a Git repository. Recipes for debugging Next.js and Meteor projects and applications. Previous version: What’s new in Visual Studio Code 1.18 The October 2017 release of Visual Studio Code, aka version 1.18, offers faster Windows startup, support for handling multiple projects via multiroot workspaces, and improvements to decorations (upon which features are built such as word highlights) that reduce slowdowns and memory usage. Other improvements include: Recommended extensions are identified by a badge to distinguish them from others in a list. Auto import for JavaScript and TypeScript is available to speed up coding with imports. TypeScript 2.6 is required for this capability. The source control status of a file shows up in the File Explorer. The Git status in File Explorer shows modified, added, conflicting, and ignored files with different colors and badges. Vertical panel layout lets developers move around the terminal and debug console, as well as switch between horizontal and vertical views. Developers also can access hidden panels when space is limited. The inline pending change review capability lets developers view source code changes in the standard editor. This feature is enabled in Git repositories out of the box, but requires support from other repositories. Previous version: What’s new in Visual Studio Code 1.17 The September 2017 release of Visual Studio Code, aka version 1.17, arrived with many improvements, including region markers to the code folding support and boosted performance of the built-in terminal. With code folding, developers can hide away regions of source code using folding icons on the gutter between the line numbers and the start of a line of code. The region markers allow you to specify with comments exactly where your foldable blocks begin and end. Markers have been defined for TypeScript, JavaScript, C and C++, C#, F#, PowerShell, and Visual Basic. Also new in the 1.17 release is a canvas-based rendering engine in the integrated terminal capability, improving rendering from five to 45 times, depending on the situation. “This change reduces the input latency, power usage, and increases the frame rate of the terminal significantly,” Microsoft said. The integrated terminal provides a convenience that can save developers from having to switch windows or alter an existing terminal state in order to quickly perform a command-line task. Other improvements in the September release include enhanced debugging messages, with output messages in the debug console optionally displaying the originating source location. Clicking on this origin opens the source file. Version 1.17 now automatically shows module and path suggestions for JavaScript and TypeScript. Visual Studio Code now has a source control providers section that provides an overview of multiple active repositories, which can be fed by multiple SCM providers. Git repositories, for example, could be maintained side-by-side with Microsoft Team Foundation Server workspaces. Users can leverage Ctrl+click or Shift-click capabilities to select multiple repositories, which appear as split views. For Mac users, Visual Studio Code 1.17 adds support for showing actions in the MacOS Touch Bar. Actions have been added to navigate in editor history and to control the debugger. Also, extensions can be used to add commands to the Touch Bar via the touchBar menu identifier. Native window tabs support has been added for MacOS Sierra as well. Finally, Visual Studio Code now offers new online documentation for Java developers. Java debugging recently was added to Visual Code via an extension. Development ToolsSoftware DevelopmentOpen SourceTechnology Industry