What’s new in Microsoft Visual Studio Code 1.50

Microsoft updates Visual Studio Code monthly. This changelog tracks the new features and improvements through version 1.50.

What’s new in Microsoft Visual Studio Code 1.50
Thinkstock

Microsoft’s Visual Studio Code has become one of the most popular developer tools around. Built using GitHub’s cross-platform Electron framework, Visual Studio Code is a full-featured, extensible, open source code editor that supports a wide selection of programming languages and frameworks, from the familiar C, C++, and C# to modern languages like Go, Rust, and Node.js. And Visual Studio Code is avalable for Windows, MacOS, and Linux.

Where to download Visual Studio Code

To download the editor for Windows, MacOS, and Linux, go to Microsoft’s Visual Code Studio website

What’s new in Visual Studio Code 1.50

Published on October 8, 2020, Visual Studio Code 1.50 features the following:

  • Pinned tab improvements include a new setting, editor.pinnedTabSizing, which allows developers to configure how large a pinned tab should appear. Further, editors now can be pinned when tabs are disabled, and a new tab.lastPinnedBorder color can be assigned to draw a border to the right of the past pinned tab.
  • New editor context keys have been introduced, with some existing ones deprecated: groupActiveEditorDirty was renamed to activeEditorIsDirtyeditorPinned was renamed to activeEditorIsNotPreview, and editorSticky was renamed to activeEditorIsPinned
  • Two resource (explorer-related) context keys have been added for resources: resourceDirname, for the folder path of the resource, equivalent to dirname(uri.fsPath), and resourcePath, for the full path of the resource, equivalent to uri.fsPath
  • A more accessible settings editor.
  • The language hover is now available while debugging and the debug hover width and height now automatically adapt to the size of the hover contents. Also, the Debug Console now supports filtering, making it easier to find output or hide irrelevant logging output. 
  • The flame chart extension now will show a real-time view of performance metrics while debugging JavaScript. 
  • A new setting, opensMaximized, lets users adjust to their own preference whether or not the panel always opens maximized when toggled with Toggle Panel.
  • The Microsoft C/C++ extension now is out of preview.
  • Visual Studio Code now is available for both ARMv7 and ARM64 architectures. Developers now can use Visual Studio Code on Raspberry Pi, Chromebook, and other ARM-based devices.

What’s new in Visual Studio Code 1.49

Published September 10, Visual Studio Code 1.49 has the following main features:

  • A new command, Format Modified Lines, has been added to format only new and changed lines. Also, a new setting, formatOnSaveMode, makes Format and Save apply only to modified lines. These changes were made to address a situation in which the Format and Save and Format Document commands could introduce unwanted reformatting of lines that have not changed, which could result in large pull requests that are hard to review and impact code that was not supposed to be modified.
  • The Source Control Repositories view, formerly known as the Source Control Providers view, was reintroduced to allow finer-grained control over which source control repositories should be visible in the Source Control view.
  • The JavaScript debugger has been improved, with Auto Attach now debugging processes without manually passing an --inspect flag to them. For sourcemap handling, VS Code now processes a stack trace to use source locations. This helps when debugging web apps that use bundlers like Webpack. In another improvement, developers can choose to stop when a conditional breakpoint throws an error by toggling the debug.javascript.breakOnConditionalError setting.
  • The Debug Console now supports filtering to make it easier to find output or hide irrelevant logging output. Exclude patterns are supported as well. The filter applies to program output but not to user-run evaluations.
  • The editor ships with TypeScript 4.0.2, featuring optional chain refactoring that converts multiple checks to a concise optional chain. 
  • The @deprecated JSDoc tag is now supported in JavaScript and TypeScript files.

In addition to unveiling Visual Studio Code 1.49, Microsoft on September 14 announced general availability of the 1.0 version of the C++ extension for Visual Studio Code, offering capabilities for editing and IntelliSense code completion, debugging across Linux, Windows, and MacOS, and support for Linux on Arm and Arm64. Access the C/C++ Extension Pack to try out the extension.

What’s new in Visual Studio Code 1.48

Visual Studio Code 1.48, released in August 2020 and featuring features and fixes from July, has the following enhancements:

  • Settings Sync, for sharing configurations such as settings, keybindings, and installed extensions across machines, is now available for preview in the stable release.
  • Extensions view filter actions now are displayed under a separate filter action (funnel button).
  • The Git View and More Actions (…) menu has been refactored to improve organization of several commands. Also, when publishing to a GitHub repo, developers now have the option to make the repo public, as opposed to the previous default of private.
  • A Debug: Open Link command is intended to enable quick debugging of any URL. 
  • A GitHub Issue Notebooks extension, still in a preview stage, allows for searching of GitHub issues and pull requests.
  • The Language Support for Java extension now supports a lightweight mode for quickly working with Java source files.

What’s new in Visual Studio Code 1.47

Published in July 2020, Visual Studio Code 1.47 brings the following new capabilities and changes:

  • Visual Studio Code for Windows on ARM is now available for the stable release.
  • A new JavaScript debugger, which was made the default debugger for JavaScript on the insiders edition of the editor last month, is now the default debugger for JavaScript in Visual Studio Code.
  • Non-nested object settings can be edited from the settings editor. Extension authors can use this capability to increase the visibility of these settings.
  • A new command, selectAndPreserveFocus, lets developers select an item from a list while keeping focus in that list. This is useful for selecting multiple files from a list, such as the File Explorer, without having focus switch to the file editor.
  • The searchEditor.defaultNumberOfContextLines setting has been updated to have a value of 1 instead of 0, meaning one context line will be shown before and after each result line in the Search Editor.
  • The Source Control view now shows all repositories in a single view, providing a better overview of the entire workspace status. Also, the Source Control view can be moved to the panel and other views can be moved to the Source Control view container.
  • The Visual Studio Code for Java Pack Installer downloads dependencies and extensions for Java development on MacOS.
  • The HexEditor extension, for native hexadecimal editing, has been improved with simple editing support (undo, redo, edit cells, add cells) and large file optimization, which now allows you to open files greater than 18 megabytes.
  • View options and sort options have been consolidated into a new View and Sort menu item in the context menu. Also, support has been added for sorting changes in the source control view by name, path, and state when using the list view option.
  • For accessibility, compact folders in the File Explorer now properly narrate expanded/collapsed state and the ARIA level. Also, screen readers can update the cursor offset in the editor. As a result, the screen reader “Say All” command should work better when stopped and resumed.
  • An extension VSIX file now can be installed by dragging and dropping it onto the Extensions view.
  • TypeScript 3.9.6 is bundled with the editor while support for TypeScript 4.0 has been improved, with capabilities such as better auto imports.

What’s new in Visual Studio Code 1.46

Released in June 2020, Visual Studio Code 1.46 has capabilities including:

  • A GitHub repository now can be added as a remote to local repositories using the Git: Add Remote command.
  • Automatic debug configurations have been improved. There is now an option to save a configuration into a JSON file to open it up for editing. It is also now possible to show all automatic debug configurations from the Run and Debug start view.
  • If the editor detects that a developer is working in a CommonJS-style JavaScript module, auto imports now will use require instead of import.
  • Refactorings for JavaScript and TypeScript, such as Extract to Method and Move to New File, now attempt to preserve original formatting of the refactored source code.
  • To improve accessibility, the Status Bar now supports keyboard navigation. There also are new commands to make it easier to start and end selections using the keyboard: Set Selection Anchor (⌘K ⌘B), Select from Anchor to Cursor (⌘K ⌘K), Cancel Selection Anchor (Escape), and Go to Selection Anchor.
  • A Synced Machines view has been added to display the list of machines synchronizing VS Code preferences.
  • The Synced Data view has been enhanced, with developers now able to see the machine from which data was being synced. Developers also can restore to a specific state using the Restore action available on the data entry in the view. Also, data on the cloud can be reset using the Reset Synced Data action available under the More Action (…) button in the view header.
  • Tabs now can be pinned from either the context menu or via the new command, action.pinEditor (⌘K ⇧Enter). 
  • Official builds for Windows for ARM 64-bit are available on the Insiders download page. These builds work with Microsoft Surface Pro X.
  • Electron preload scripts have been added for exposing certain Electron APIs to the window. This is a step toward a fully sandboxed window. 
  • Features for flexible layout are now ready for general use, such as moving views between Sidebar and Panel and grouping of views. 

What’s new in Visual Studio Code 1.45

Published in May 2020, Visual Studio Code 1.45 adds the following capabilities:

  • Faster syntax highlighting, done through a dedicated WebAssembly binding optimized for usage by the editor’s TextMate interpreter. By avoiding memory allocations in inner loops and using new APIs, Microsoft has been able to increase the speed of syntax highlighting for regular programming files by as much as three times.
  • With semantic token styling, semantic theming can be customized in user settings. Semantic coloring is available for TypeScript and JavaScript, with support for Java and C++ in development.
  • Support has been added for automatic authentication against GitHub repositories. Developers can clone, pull, and push to and from public and private repos without configuring a credential manager.
  • The new JavaScript debugger, in a preview stage, is installed by default on the Insiders release and can be installed from the Marketplace in VS Code stable. New features include capturing of CPU profiles from Node.js or browser applications by clicking the new Profile button in the Call Stack view or using the Debug: Take Performance Profile command. Auto Attach, for automatically attaching to Node.js processes, now debugs child processes automatically.
  • New accessibility commands Focus Next Part and Focus Previous Part make it easy to navigate across a workbench. The status bar now can be read by screen readers when focused.
  • Improvements have been made to the Remote Development extensions (which let developers use a container, a remote machine, or Windows Subsystem for Linux as a full-featured development environment) including container configuration recommendations, WSL2 Docker and Podman engines support, and new devcontainer.json variables for local and container folders.

What’s new in Visual Studio Code 1.44

Also known as the March 2020 release (although it was published in April 2020), Visual Studio Code 1.44 features the following improvements:

  • Usability improvements including a more navigable diff view and clearer role designations set for UI controls. Also, the behavior of the Quick Widget has been tuned.
  • The Timeline view for visualizing time series events such as Git commits and file saves is now out of preview mode, by default. The Quick Open control for files has been rewritten. It also has new features such as having inputs preserved when switching providers. There is also a new setting, "quickOpen.history.filterSortOrder": "recency", that allows you to sort editor history by the most recently opened items.
  • A number badge has been added to the Extensions view to show the number of extensions in the pack.
  • Visual Studio Code now will keep the Undo/Redo stack of a file when the file is closed. When the file is reopened and contents have not changed, the Undo/Redo stack will be restored.
  • Work continues on the Remote Development extensions that enable the use of a container, remote machine, or Windows Subsytem for Linux (WSL) as a full-featured development environment. Among the milestones in Visual Studio Code 1.44: A pull request can be checked out directly into a container.
  • A Settings Sync preview lets developers share snippets and UI state across machines.
  • Two new tutorials are featured for Python, including one on building a Python application in a Docker container and one on using Python data science libraries to create a machine learning model.
  • The 1.0 version of Microsoft’s Docker extension for Visual Studio Code is now available.

What’s new in Visual Studio Code 1.43

Released in March 2020, Visual Studio Code 1.43 offers the following improvements and changes:

  • Search Editors that display workspace search results in a full-sized editor, with syntax highlighting and optional lines of surrounding text.
  • Support for the Orca screen reader on Linux.
  • Draggable sash corners, with support extended to the edges between views and editors. Previously with editor sashes, users could resize two orthogonal sashes simultaneously by dragging the intersection between them. Now this also works in edges between editors and views.
  • Notarized MacOS builds for the editor, so users no longer receive a warning dialog that Visual Studio Code cannot be opened because Apple cannot check it for malicious software.
  • A new setting, minimap.size, controls how the minimap uses vertical space.
  • A Column Selection mode has been added for creating a column selection.
  • The default value of renderWhitespace setting has been changed from none to selection. Whitespace characters now will be rendered by default on highlighted text.
  • A Convert to template string refactoring for JavaScript and TypeScript can quickly convert string concatenations to template strings, also known as template literals.
  • A TypeScript/JavaScript call hierarchy view is provided via TypeScript 3.8, which is bundled with Visual Studio Code 1.43.
  • A preview is offered for a Settings Sync capability to share settings and key bindings across machines.
  • Work continues on Remote Development extensions, which allow for the use of a container, remote machine, or Windows Subsystem for Linux as a full-featured development environment. There is support for Windows and MacOS SSH (Secure Shell) hosts and SSH connection sharing.

What’s new in Visual Studio Code 1.42

Visual Studio Code 1.42, released in February 2020, includes these updates:

  • Rename changes can be previewed. When renaming, developers can confirm a new name and see the Refactor Preview panel.
  • New settings limit the number of open editors.
  • The addition of a background highlight makes folded code regions easier to discover.
  • The Debug Console input now uses the language mode of the current active editor, meaning this input supports syntax coloring, auto closing, indentation, auto closing of quotes, and other language capabilities. Also, the presentation of input and output in the Debug Console has been tuned to make it more distinguishable. VS Code displays an arrow next to the input expression only. A new setting, console.closeOnEnd, controls whether the Debug Console will automatically close when debugging ends.
  • Tasks declared inJSON now are supported at the User Settings level.
  • The bundled version of TypeScript has been upgraded to version 3.7.5, a minor update with bug fixes. Among the bug fixes: IntelliSense works for projects not stored on C: drives on Windows.
  • The panel holding the Output, Debug Console, Terminal, and Problems panes now can be moved to the left side of the editor. The command “View: Toggle Panel Position” was removed in favor of the commands “View: Move Panel Left,” “View: Move Panel Right,” and “View: Move Panel to Bottom.”
  • The debugger for Java now supports Data Breakpoints, for creating breakpoints that will get hit when the value of a variable changes.
  • Work continues on Remote Development extensions, for using a remote machine or container as a full-featured development environment. Improved support for Windows servers, including automatic OS detection, is highlighted.
  • A Timeline view feature, now in an early preview status, provides a unified view to visualize time series events such as Git commits, file saves, and test runs for a resource such as a file or folder.

What’s new in Visual Studio Code 1.41

Visual Studio Code 1.41 was released on December 12, 2019, with the following new capabilities:

  • Compact folders, in which single child folders in File Explorer now are rendered in a compact form. Single child folders will be compressed in a combined tree element. This is useful for Java package structures, for example.
  • Support has been improved for opening repositories in Docker containers. This has been done via ongoing work on Remote Development extensions.
  • Results of full text searches now will update as the developer types.
  • When comparing two files that are editable, such as from File Explorer or when running a global Search and Replace, the left-hand side can now be edited and saved.
  • Errors and warnings now are highlighted inline in the minimap (code overview). The color of these decorations can be changed with new theme colors.
  • Additional predefined filters were added to the Problems panel. Problems can be filtered by type. Developers can see problems scoped to the current active file.
  • An HTML “mirror cursor” capability now allows you to edit opening and closing HTML tags simultaneously. This is control by setting the mirrorCursorOnMatchingTag tag, on by default.
  • Optional chaining, which produces shorter, simpler expressions when accessing a chain of properties, is supported for JavaScript and TypeScript.
  • Extract to Interface refactoring lets developers quickly extract an inline type to an interface so it can be reused.

What’s new in Visual Studio Code 1.40

Visaul Studio Code 1.40, released November 7, 2019, introduced these new features:
  • VS Code is now built with TypeScript 3.7, and supports TypeScript 3.7 directly too. VS Code also now uses Electron 6.0 for its desktop edition.
  • A new experimental version of VS Code can be run directly in the browser. It requires making a copy of the VS Code source repository. Use yarn web to activate it from there, and view the results at http://localhost:8080.
  • The Activity Bar has been revamped slightly to better indicate which activity is selected and to improve overall contrast. Window borders in VS Code can now be themed.
  • The Outline view and breadcrumb navigator have new settings to control which symbols are shown.
  • New settings let you control the size of editors when they are split.
  • GPU hardware acceleration can be disabled in Preferences, for systems that experience issues with GPU rendering.
  • The scale of the code minimap can be set via the editor.minimap.scale setting, for those using 21:9 or high-DPI displays.
  • Highlighting of matching brackets appears when you are anywhere within the bracketed region, not just when you have the cursor next to one of the brackets.
  • A “Duplicate selection” command duplicates the selection or the current line when nothing is selected.
  • Improved rendering of Unicode combining characters, with the Unicode code point count (as opposed to just a column count) shown in the status bar.
  • More font control options, such as the ability to enable or disable specific font features.
  • The diff editor’s timeout for computing changes can now be altered from its default of five seconds. Set the timeout to 0 to always compute changes no matter how long it might take. The editor can show or ignore trailing whitespace differences on lines.
  • NPM scripts can be run from a folder using a File Explorer context menu selection.
  • Slow-running tasks generate a warning, and task autodetection can be turned off to improve performance.
  • Breakpoints show up in the file overview ruler, not just in the margin to the left of the line numbers in the code editor.
  • TypeScript users can change the memory settings for the TypeScript server instance that VS Code runs for IntelliSense.
  • The integrated terminal has a number of new features:
    • Selected chorded keybindings can be passed directly to VS Code instead of being evaluated in the terminal.
    • Pressing Alt while using the mouse wheel will scroll faster based on the editor.fastScrollSensitivity setting.
    • The right-click action can be configured to always paste in the terminal.
  • VS Code’s Git tools have added these new features:
    • Untracked files in Git can now be hidden entirely, or shown in a separate list of changes.
    • A “Reveal in Explorer” action is now available for right-clicked files in the Git list.
    • Git clone actions have a progress meter.
  • Extensions have many new APIs, color tokens for symbols, and new methods for retrieving data from an external URI to the extension.

What’s new in Visual Studio Code 1.39

Visual Studio Code 1.39, released October 9, 2019, and otherwise known as the September 2019 release, contains the following highlights:

  • Text selections are displayed in minimap (code outline), with developers able to see regions in the minimap overview. Also, the minimap slider now can be dragged with touch.
  • A folding region can be expanded with the Toggle Fold command.
  • The Source Control view was updated to use the latest tree widget. Users can toggle between a list and a tree view with the Toggle View Mode on the Source Control title bar.
  • A new command enables creation of terminals with a custom current working directory (cwd).
{
     "key": "cmd+shift+h",
     "command": "workbench.action.terminal.newWithCwd",
     "args": {
         "cwd": "${fileDirname}"
      }
}
  • Autocompletion and hover information for HTML ARIA attributes now have a reference to the corresponding WAI-ARIA.
  • CSS property completion now inserts a semicolon at the end of a line. Also, when completing CSS variables, if the original variable is a code string, VS Code now will show the completion item with its color.
  • For debugging, VS Code now shows breakpoint candidate locations inline, making it easier to place a breakpoint in the correct position.
  • When sessions or threads are shown in the Call Stack view, debug actions now are shown inline on hover. This will make it easier to control the debug flow when debugging multiple threads or sessions.

What’s new in Visual Studio Code 1.38

Visual Studio Code 1.38, released in September 2019, offers the following new features and improvements:

  • The process of creating top-level files and folders in the Explorer has been improved. There are now three ways to create a file or folder in the root of the File Explorer, involving scrolling beyond the last element, pressing Escape to clear focus and selection, or using a context menu on the scroll bar.
  • The settings editor now displays errors for array-of-strings items when the current value does not specify the minItems, maxItems, enum, or item.pattern schema.
  • The cancel search icon has been updated to better represent the action when running long searches.
  • In the editor, developers now can customize the number of visible lines to display around the cursor when moving the cursor toward the beginning or end of a file.
  • A new setting, incrementalNaming, controls duplicate file naming, which can have the values simple or smart.
  • Multiline text search and replace is now supported in the editor Find control.
  • A prompt is now shown before opening outgoing links.
  • New actions are featured for copying or reverting deleted content when using the inline diff editor.
  • The Preserve Case option added to the Find/Replace control in release 1.37 is now available as the AB icon in global search and replace. A new case preservation mode can be applied to hyphen-separated words.
  • Support for the Less.js CSS extension has been improved, with support for features such as root functions and map lookups.
  • From the Variables view, developers now can create data breakpoints that will get hit when the value of the underlying variable changes.
  • TypeScript 3.6.2 is included, bringing language improvements such as stricter generators.
  • JSDoc comments no longer merge for IntelliSense. 
  • Semicolon-aware editing is offered for JavaScript and TypeScript.
  • A Toggle Editor Group Sizes command will toggle between maximizing the active editor group and evening out editor group widths.
  • The workbench’s layout engine has been rewritten to use the same grid widget as the editor. The setting, useExperimentalGridLayout, will be enabled by default.
  • A touchbar.ignored setting can selectively remove Visual Studio Code commands from the MacOS touch bar.
  • New editor group context keys are included.
  • The Screencast mode has been improved, with highlights such as a limit on the length of the screencast binding label and improvements to the keyboard shortcuts render style.

What’s new in Visual Studio Code 1.37

Visual Studio Code 1.37, published in August 2019, offers the following new capabilities and improvements:

  • The Settings editor now supports editing array-of-string settings.
  • Developers no longer see warnings for unsupported or unknown in settings.json files. Inactive settings are faded similar to unused source code, with a hover to explain why. Users also do not see warnings for settings or extensions that are disabled.
  • In the File context menu, the new Reveal in Explorer command navigates a file in File Explorer.
  • The editor.renderWhitespace setting adds support for the selection option. Whitespace characters are shown just on selected text.
  • The NPM Scripts Explorer is collapsed in the File Explorer when there is a package.json file at the root of the workspace.
  • Minimap (code outline) search results’ visibility has been improved.
  • Users can preserve case when doing a replacement in the editor’s Find widget. Also, the Find widget’s button toggle’s active state has been updated with a filled background so developers can more easily tell when they are focused on an active toggle.
  • Navigation has been improved for SCSS@import.
  • CSS property value completion has been improved.
  • A previously experimental setting that split the TypeScript server that powers Visual Studio Code’s JavaScript and TypeScript language features into separate syntax and semantic servers is now on by default. Syntax-based operations such as code folding should be available more quickly.
  • For extension authoring, a new API is included for extensions to manage, read, and write files and folders. This is an alternative to the Node.js fs file system module. Access to files from contributed file systems is enabled.
  • The proposed TerminalRenderer API introduced in 2018 has gone through a major change and has been deprecated in favor of Extension Terminals.
  • For the integrated terminal, a search UX improvement aligns with other terminal emulators, with the search starting from the bottom of the buffer and searching upward, leading to less disoriented experience. Previously, searching from the terminal started at the top of the terminal viewport and searched downward.
  • Error reporting and diagnostics have been improved in the terminal.
  • Updated product icons are uniform in color, size, and style.

What’s new in Visual Studio Code 1.36

Visual Studio Code 1.36, published in July 2019, offers the following new capabilities and improvements:

  • A context menu for the status bar to show and hide individual entries.
  • Support in the tree widget for indent guides, making these guides available in available in the File Explorer, search view, debug views, and elsewhere.
  • A new JavaScript and TypeScript nightly extension uses the nightly build of TypeScript for the editor’s TypeScript IntelliSense, making it easier to test the latest TypeScript features and provide feedback.
  • A Visual Studio Code Installer for Java helps developers set up a Java environment.
  • An improved default shell selector is available for MacOS and Linux, exposing the shells registered on the system by reading the /etc/shells.
  • Control is offered for the order of task and subtask execution.
  • A new debug command, Jump to Cursor, lets developers move program execution to a new location without executing any code in between. This capability debuts for the C# extension but more extensions will be added.
  • A console.wordwrap setting controls whether word wrap is enabled in the debug console.
  • Folders now can be copied by being dragged and dropped from outside Visual Studio Code into the File Explorer.
  • Work continues on remote development extensions, in a preview form, enabling developers to use a container, remote subsystem, or the Windows Subsystem for Linux as a full-featured development environment.

What’s new in Visual Studio Code 1.35

Visual Studio Code 1.35, which arrived in June 2019, had these improvements:

  • Smart selection for JavaScript/TypeScript, using semantic knowledge to expand selections for classes, imports, statements, and types.
  • Go to Definition has been improved with faster navigation through multiple definitions.
  • Breadcrumbs are now on by default for quick file and symbol navigation.
  • Suggestion sorting for JavaScript and TypeScript have been tuned to prioritize suggestions for local variables over suggestions for globals or auto-imports.
  • A merge-conflict.diffViewPosition enables opening up of the diff view in a new editor group when comparing merge conflicts. 
  • True color support, with the terminal now supporting programs that use true color (24-bit) escape sequences, rendering the correct color rather and an approximation.
  • The upgrade ships with TypeScript 3.5.1.
  • Remote development extensions are in preview, allowing developers to use a container, remote machine, or the Windows Subsystem for Linux as a full-featured development environment. Extensions run in the context of the remote workspace just as they would in a local workspace.
  • An updated Visual Studio Code icon makes its debut.

What’s new in Visual Studio Code 1.34

Visual Studio Code 1.34 arrived in May 2019, with these new features and improvements:

  • CodeLens, which provides actionable contextual information in source code, has received an enhancement in which CodeLens locations are cached and restored immediately after switching editors.
  • For debugging, the new showSubSessionsInToolBar setting controla whether debug subsessions are shown in the debug tool bar. When the setting is false, the stop command on a subsession stops the parent session. This setting default is false.
  • CSS property values with dash, such as -ms-grid now come after grid completion.
  • The revealProblems task property lets developers automatically show the Problems panel. The property values are always, never, and onProblem.
  • For extension authoring, developers can debug more than one extension at a time. This helps when developing a set of tightly coupled or interdependent extensions.
  • The “Deploy Python to Azure Functions” tutorial describes how to create serverless Azure functions.

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.

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.

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.

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.

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. 

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.

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.

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.

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. 

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.

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.

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.

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.

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:

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.

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.

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.

Copyright © 2020 IDG Communications, Inc.