What's New in version 1.56.2:

  • C# syntax highlighting incorrect in 1.56
  • Use shell/shellArgs over defaultProfile if specified
  • HTML files now require an extension to run
  • The default Monokai highlight color is displayed incorrectly
  • No longer scaling toolbar icon
  • On PC 'Delete' key not working on insiders for approx last week
  • Version control icons became minuscule with latest update

What's New in version 1.56.1:

The update addresses these security issues:

  • Do not invoke resolveWithInteraction over terminal settings
  • Change grunt, gulp and jake task auto detection to be off by default

What's New in version 1.56.0:

  • Improved hover feedback - Helps you quickly find clickable editor actions.
  • Terminal profile improvements - Create a custom default terminal profile.
  • Debugger inline values - Display variable values inline during debugging sessions.
  • Notebook KaTeX support - Math support in notebook Markdown cells.
  • Remote - Containers Volume view - Manage mounted volumes within Docker containers.
  • winget installation - VS Code is available via the Windows Package Manager.
  • New introductory videos - Videos for getting started with VS Code as well as working with C++.
  • Terminal tabs preview - Get a first look at managing open terminals with the new tabs view.

What's New in version 1.55.1:

The update addresses these issues:

  • Proxy agent is hijacking requests and redirecting them to localhost
  • Remote extensions are not installed automatically from devcontainer.json
  • ECONNREFUSED debugging browsers in WSL2

What's New in version 1.54.3:

The update addresses this issue:

  • February Recovery 3
  • VS Code is unable to activate a debugger extension because of path casing discrepancies

What's New in version 1.54.2:

The update addresses these issues:

  • Listener leak in Ports view
  • Close terminal warning shows even if no terminal is open
  • Command 'View: Join all editor groups' not working after update
  • Pick up TS 4.2.3
  • Cannot find module 'worker_threads' using js debugger auto attach
  • Completed tiles of 'Getting Started' don't reopen
  • List focus background needs proper migration
  • Renaming a folder adds it to history
  • FileSystemProvider extension: throwing a FileSystemError in readFile does not report to user
  • Hide pty host unresponsive notification when it becomes responsive again
  • Terminal pty host unresponsive after closing a VS Code window
  • Prevent env var relaunch from extension owned terminals

What's New in version 1.54.1:

The update addresses an issue with an extension dependency:

  • Jupyter Extension cannot use Proposed API in Stable VS Code

What's New in version 1.53.2:

The update addresses these issues:

  • January 2021 Endgame Recovery 2
  • TS Server fatal error: Cannot read property 'indexOf' of undefined
  • <> in all files
  • Minimap keeps disappearing
  • Fresh install won't open any windows or allow me to open any windows
  • First call to activeDebugConsole.appendLine() while debugging JavaScript doesn't appear in the debug console
  • Cannot unset StatusBarItem background from errorBackground
  • tasks.json npm script does not work with arguments since 1.53
  • v1.53 creates debug.log automatically
  • The default extension for untitled files is not .txt
  • Emmet suggestions bug in SASS files
  • VSCode emmet SASS snippets
  • IME ON at Alt+' key, Focus ALT Menu

What's New in version 1.53.1:

Security issues:

  • Bundle TypeScript 4.1.4
  • Dragging files from explorer to terminal may execute a command
  • Pick up new distro version and bump version

What's New in version 1.53.0:

Welcome to the January 2021 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include:

  • Wrap tabs - Wrap editor tabs in the workbench instead of having a scrollbar.
  • Configure tab decorations - Add editor tab status decorations.
  • Customize search mode - Use the Search view or open a new Search editor.
  • JavaScript debugging - Support for conditional exception breakpoints and Node.js worker_threads.
  • Notebook UX updates - Outline view for Notebook cells, and breadcrumbs for improved navigation.
  • Markdown preview image auto update - Preview automatically updates when images change.
  • Emmet improvements - Faster performance and supporting the latest features.
  • Extension guidelines - Documented best practices for extension authors.
  • Remote Development video series - Learn to create and configure container-based environments.

What's New in version 1.52.1:

Update 1.52.1: The update addresses these issues:

  • November 2020 Recovery Endgame
  • Check for all possible localhost string when checking if a tunnel already exists
  • Can not set breakpoint in PHP files
  • notebook status bar icon colors missing

What's New in version 1.51.1:

The update addresses these issues:

  • 'Reveal In Side Bar' does not work if the file is opened from external apps
  • New ThemeIcon color in tree views can pollute other nodes

What's New in version 1.51.0:


More prominent pinned tabs:

  • Pinned tabs will now always show their pin icon, even while inactive, to make them easier to identify. If an editor is both pinned and contains unsaved changes, the icon reflects both states.

Extension trees use custom hover:

  • Instead of using the native tooltip in extension tree views, we now use a custom hover that is consistent cross-platform and fits better with the overall UX.

Install an extension without synchronizing:

  • You can now install an extension without synchronizing it while settings sync is enabled.

Install an extension from Explorer:

  • VS Code now supports installing an extension VSIX file from the Explorer by right-clicking on a VSIX file and choosing the Install Extension VSIX context menu item.

Input blur command:

  • A new internal workbench.action.blur command is now available, which removes focus from any focusable input. You can assign a keyboard shortcut for this command in the Keyboard Shortcuts Preferences

Integrated Terminal:

Local Echo:

  • Making modifications in the terminal traditionally requires information to be sent to the terminal process, processed, and returned to VS Code in order to be affected. This can be slow when working on a poor or distant connection to an SSH server or Codespace.
  • This release adds a 'local echo' mode to the terminal, which attempts to predict modifications and cursor movements made locally and show them in the UI without requiring a round trip to the server. By default, predicted characters show as 'dimmed'

There are two settings you can use to configure this:

  • terminal.integrated.localEchoLatencyThreshold configures the detected delay threshold, in milliseconds, at which local echo will activate. This can be set to 0 to turn on the feature all the time, or -1 to disable it. Defaults to 30.
  • terminal.integrated.localEchoStyle configures the style or color of local character, defaults to dim


Resizable suggestions:

  • This milestone, we've made several improvements to the suggestions UI. First and foremost, it can now be resized. Drag the sides or corners to resize the control.
  • The size of the suggestions list will be saved and restored across sessions. The size of the details pane is only saved per session, since that size tends to be more variable. Also, the editor.suggest.maxVisibleSuggestions setting has become obsolete

Status bar for suggestions:

  • The suggestions control can now also show its own status bar at the bottom of the window. Enable it using the editor.suggestStatusBar.enable setting. It makes toggling details simpler, and shows if a completion supports inserting, replacing, or both.

Move cursor to select suggestions:

  • Last but not least, you can now move the cursor while suggestions are showing. For instance, you can trigger suggestions at the end of a word, move left to see more suggestions, and then use replace to overwrite the word.


  • Custom snippets in Emmet are back. Additionally, snippets now automatically refresh upon saving the snippets file or updating the emmet.extensionsPath setting

Source Control:

Source Control input box saves commit message history:

  • This addresses a feature request to navigate SCM commit history. Press Up and Down to display the prior and next commits, respectively. To move directly to the first and last position of the input box, press Alt in conjunction with the corresponding arrow key.

Git: Tag commands in submenu:

  • Tag related Git commands have been added to the ... Git menu.

Git: Rebase command:

  • A new Git: Rebase branch... command has been added which lets you rebase a branch using the UI.

Git: Recursive clone command:

  • With the Git: Clone (Recursive) command, you can now recursively clone Git repositories, including its nested Git submodules.

Timeline: Emoji shortcode rendering:

  • We now render emoji shortcodes, such as :smile:, in the Timeline View.


Markdown smart select:

Expand and shrink selection in Markdown documents using the following new commands:

  • Expand: Shift+Alt+Right
  • Shrink: Shift+Alt+Left

Selection applies to the following, and follows a traditional hierarchical pattern:

  • Headers
  • Lists
  • Block quotes
  • Fenced code blocks
  • Html code blocks
  • Paragraphs

Empty brace formatting option for JavaScript and TypeScript:

  • The new javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces and typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces formatting configuration option controls if spaces are inserted between empty braces. The default value for these settings is true

Browser support:

Download folders (Edge, Chrome):

  • Leveraging the new File System Access API, VS Code running in a browser can now offer a download action for folders from the File Explorer to download all files and folders to disk

Open Workspace notification:

  • If you open a folder that contains .code-workspace files at the top level, you'll now see a notification asking you to open it. This was always the case in VS Code for desktop, and will now work in the browser too.

Prevent accidental close:

  • A new setting window.confirmBeforeClose was added to show a confirmation dialog before closing or leaving the workbench.

Possible values are:

  • keyboardOnly The confirmation will only be shown when you use a keybinding to close (for example, Ctrl+W). (default)
  • always: The confirmation dialog will always be shown, even if you close from a mouse gesture.
  • never: The confirmation will never be shown.

Contributions to extensions:

GitHub Pull Requests and Issues:

  • Work continues on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues.
  • To learn about all the new features and updates, you can see the full changelog for the 0.22.0 release of the extension.

Remote Development:

  • Work continues on the Remote Development extensions, which allow you to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.

Feature highlights in 1.51 include:

  • Ability to persist/reconnect to terminal sessions.
  • Improved port forwarding experience.

Preview features:

  • Preview features are not ready for release but are functional enough to use. We welcome your early feedback while they are under development.

Settings sync:

  • Settings sync now synchronizes extensions' global state. Extensions will have to provide the state to sync using the newly introduced setKeysForSync API.

Remember proxy credentials:

  • We are overhauling the login dialog that shows when a network connection requires authentication with a proxy. A new setting, window.enableExperimentalProxyLoginDialog: true, will enable this new experience that we plan to make the default in a future release.
  • he dialog will appear inside the VS Code window and offer a way to remember the credentials so that you do not have to provide them each time you start VS Code. Credentials will be stored in the OS standard credential store (keychain on macOS, Windows Credential Manager on Windows, and gnome keyring on Linux).
  • We still only show this dialog once per session, but might revisit this decision in the future. You will see the dialog appear again in case the credentials you selected to be remembered are not valid. Providing them again allows you to change them.
  • Please enable this option and let us know if something does not work as expected through our issue tracker

TypeScript 4.1 beta support:

  • VS Code supports the TypeScript 4.1 beta and nightly builds. The 4.1 update brings some new TypeScript language features, such as support for recursive conditional types, as well as tooling improvements. One focus area has been adding initial support for @see tags in JSDoc comments.
  • To start using the TypeScript 4.1 nightly builds, just install the TypeScript Nightly extension. Please share feedback and let us know if you run into any bugs with TypeScript 4.1.

Extension authoring:

Updated extension samples:

We've updated some of our extension samples to include VS Code default styles that are hooked up to our color theme tokens. This means that common elements (text, buttons, inputs) will be themeable and match the default styles in the product. Below are the extensions that include this:

  • custom-editor-sample
  • webview-sample
  • webview-view-sample

Codicon colors in trees:

  • With the finalization of the ThemeIcon color API, extension authors can use theme colors on codicons in custom tree views.

Sync Global State:

  • Extensions can now sync their global state by providing the keys, whose values should be synchronized when Settings Sync is enabled, using the newly introduced setKeysForSync API in globalState memento.

Comment thread reply button visibility:

  • Comment extensions can now control the visibility of the reply button in a comment thread with a new property, CommentThread#canReply. When it's set to false, users will not see the reply button or comment box in the comment thread

Proposed extension APIs:

Every milestone comes with new proposed APIs and extension authors can try them out. As always, we want your feedback. This is what you have to do to try out a proposed API:

  • You must use Insiders because proposed APIs change frequently.
  • You must have this line in the package.json file of your extension: 'enableProposedApi': true.
  • Copy the latest version of the vscode.proposed.d.ts file into your project's source location.
  • You cannot publish an extension that uses a proposed API. There may be breaking changes in the next release and we never want to break existing extensions.

Folding range providers change event:

  • Folding range providers can signal to the editor that folding ranges need to be updated using the onDidChangeFoldingRanges event.
  • For more details and to provide feedback, please use issue #108929.

Password APIs:

  • As part of continued work on Authentication Providers, we have introduced API for storing and retrieving sensitive information. Internally, this acts as a wrapper of the keytar library that VS Code uses for storing secrets.


Making VS Code Trusted Types compliant:

  • We have continued the effort to make VS Code 'Trusted Types' compliant. The goal is to prevent DOM-based cross site scripting vulnerabilities. You can learn more about trusted types at the Trusted Types site and follow our progress in issue #103699


Getting started:

  • We are focusing on ways to make getting started with the editor easier. We've created a new 'Learn to Code' landing page on our website with coding packs and new content geared towards folks who are new to coding.

Partner extensions:

Coding Pack for Python (Windows):

  • The Coding Pack for Python installs Python 3.8, specific Python libraries, VS Code, and essential extensions like Python and LiveShare, making it easy for new coders to get started. It is currently available for Windows.

New commands:

  • unassigned Focus Left Editor Group (do not wrap around) workbench.action.focusLeftGroupWithoutWrap
  • unassigned Focus Right Editor Group (do not wrap around) workbench.action.focusRightGroupWithoutWrap
  • unassigned Focus Above Editor Group (do not wrap around) workbench.action.focusAboveGroupWithoutWrap
  • unassigned Focus Below Editor Group (do not wrap around) workbench.action.focusBelowGroupWithoutWrap
  • unassigned Focus Activity Bar workbench.action.focusActivityBar

Notable fixes:

  • 43819: Windows: when deleting a folder with files that are in use, then there is no error message shown
  • 71315: Should maintain row focus after deleting a file
  • 96522: User input variables not working for launch configuration in multi-root workspace
  • 100255: Moving a file should load the model directly with the contents it had before
  • 108578: Extensions with a onDebugDynamicConfigurations are eagerly activated at startup in v1.50
  • 109088: Send vscode.workspace.onWillCreateFiles/onDidCreateFiles events for folders
  • 109226: Debug hover moves while expanding/collapsing

What's New in version 1.50.1:

Update 1.50.1: The update addresses these issues:

  • macOS: high CPU from file watcher in presence of cyclic symbolic links in workspace
  • relativeFileDirname` gives empty string when the Dirname equals to current working directory
  • Multiple prompt to grant access to login keychain

What's New in version 1.50.0:

  • Accessible settings editor - Interact with the settings list like any other list in VS Code.
  • Pinned tabs improvements - Resize pinned tabs, unpin with one click, and more.
  • Linux ARM builds - VS Code is now available for both Linux ARMv7 and ARM64.
  • Improved debugging experience - Improved hover and filtering in debug console.
  • New JS debugger features - Toggle auto attach flows and see performance in real-time.
  • Panel layout improvements - New panel maximization settings and bottom panel size.
  • Webview Views support - Build extensions with webview views in the sidebar and panel.
  • Updated 'Create a Dev Container' tutorial - Get started with Development Containers.

What's New in version 1.49.3:

  • A Recovery Endgame 3 endgame-plan
  • (Assumed) Fix for CVE-2020-16881 can be bypassed

What's New in version 1.49.2:

  • August Recovery Endgame 2
  • V1.49 creates debug.log automatically

What's New in version 1.49.1:

The update addresses these issues:

  • August 2020 Recovery Endgame
  • Completions which use spaces are broken after updating from July to August version
  • EPIPE write failure while debugging after upgrading to 1.49
  • proxy authentication does not work on 1.49

What's New in version 1.49.0:

There are a number of updates in this version that we hope you will like, some of the key highlights include:

  • Format modified text - Limit formatting to just the code you've changed.
  • Change casing on Search and Replace - Change text casing during global Search and Replace.
  • Source Control repositories view - Display pending changes per repository.
  • Filter Debug Console output - Quickly filter and find debugging output.
  • Improved JS debugger Auto Attach - "Smart" Auto Attach to Node.js scripts or test runners.
  • TypeScript optional chaining refactoring - Convert multiple checks to a concise optional chain.
  • JSDoc @deprecated tag support - IntelliSense clearly shows APIs marked as deprecated.
  • Notebook UX updates - Cell Status bar contributions, enhanced notebook diff editor.

What's New in version 1.48.2:

The update addresses these issues:

  • avoid lookups to for invalid package names
  • July 2020 Recovery 2 Endgame
  • Client should retry the request when receiving 409
  • Unable to open editor: Unexpected token JSON at position

What's New in version 1.48.2:

The update addresses these issues:

  • avoid lookups to for invalid package names
  • July 2020 Recovery 2 Endgame
  • Client should retry the request when receiving 409
  • Unable to open editor: Unexpected token JSON at position

What's New in version 1.48.0:

There are a number of updates in this version that we hope you will like, some of the key highlights include:

  • Settings Sync to Stable - Settings Sync is now available for preview in stable.
  • Updated Extensions view menu - Simplified menu with additional filtering options.
  • New Git View submenus - Refactored overflow menu for Git in the Source Control view.
  • Updated in-browser debugging - Debug in the browser without writing a launch configuration.
  • Publish a public repository - Choose whether to publish to a public or private GitHub repository.
  • Notebook UX updates - New Cell menu, enhanced drag and drop.
  • New Remote Container topics - Learn how to attach to a container and create a new dev container.
  • Java lightweight mode - Start working with your Java source files more quickly.

What's New in version 1.47.3:

The update addresses these issues:

  • June 2020 Recovery 3 Engame
  • ERR_INVALID_ARG_TYPE when testing extension on 1.47.1
  • Uninstall hook not executing

What's New in version 1.47.2:

The update addresses these issues:

  • June 2020 Recovery 2 Engame
  • Menus: Dropdown menu gets tiny when opened near the edge of the workbench
  • SCM: View becomes empty, with errors in dev tools
  • Snippets | Clipboard is not working
  • 'Proposed API is only available...' error in v1.47
  • 'Duplicate Workspace in New Window' just creates new window and opens workspace.json file
  • Output channel Log (Window) does not appear until window reload for the first time
  • Creating files will add 2 times BOM (UTF-8, 16)
  • Reading from stdin via tmp file and pipe raise an exception
  • Extensions issues after update to vscode 1.47.0
  • [node-debugger] Debugger spams 'Could not read sourcemaps' messages
  • Node version detection causes issues with old Electron versions + Node >=12 on the PATH
  • Double pasting in a webview with latest insiders
  • Can't debug node application

What's New in version 1.47.1:

Security Fix:

CVE-2020-1416 | Visual Studio and Visual Studio Code Elevation of Privilege Vulnerability:

  • An elevation of privilege vulnerability exists in Visual Studio and Visual Studio Code when they load software dependencies. A local attacker who successfully exploited the vulnerability could inject arbitrary code to run in the context of the current user. If the current user is logged on with administrative user rights, an attacker could take control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights.
  • To exploit this vulnerability, a local attacker would need to plant malicious content on an affected computer and wait for another user to launch Visual Studio or Visual Studio Code.
  • The update address the vulnerability by modifying the way Visual Studio and Visual Studio Code load software dependencies.