Update 1.71.1: The update addresses this security issue.
Update 1.71.2: The update addresses these issues.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Welcome to the August 2022 release of Visual Studio Code. August is when many of the engineers on VS Code take their vacations, but there are still many updates in this version that we hope you'll like:
- Merge editor improvements - Easier transition between text and merge editors.
- Expanded codecs support - To help display embedded audio and video in notebooks and webviews.
- File rename selection - Pressing F2 selects filename, whole name, or file extension.
- New Code Action UI - Quickly find the Code Action you're looking for.
- Terminal updates - Shell integration for fish and Git Bash, new smooth scrolling.
- Jupyter notebook image pasting - Paste and preview image files in notebook Markdown cells.
- TypeScript livestreams - Watch TS "Crash Course" or "Tips and Tricks" on YouTube.
- Live Preview extension - Live Preview now supports multi-root web projects.
- Markdown Language Server blog post - Learn how Markdown support moved to a Language Server.
If you'd like to read these release notes online, go to Updates on code.visualstudio.com.
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build and try the latest updates as soon as they are available.
Workbench
Merge editor improvements
Opening the merge editor from files with conflicts
A file that has a conflict will now automatically show an Open in Merge Editor button to transition between the text and merge editors.
Merge editor file not modified on open
VS Code no longer modifies the result file when opening it in the merge editor (conflicting regions were replaced with base). Instead, the conflict markers remain in the file but are hidden in the result view. The checkboxes can be used to replace the conflict markers with either side, a combination of both sides or, by unchecking them, with base.
Restoring old conflict decorators
The old inline conflict decorators are no longer disabled, so the merge editor and inline experience can be used together. When the merge editor opens, you can get the previous experience with a single click in the editor toolbar:
By clicking the same icon next to the file name in the Source Control view, you can skip the merge editor entirely.
However, you can switch between the new and old experience at any time and even use them in parallel:
Checkbox improvements
We now make sure that the checkboxes of a conflict are always visible, even when the conflict is larger than the viewport. Colors are used to emphasize the checkboxes for unhandled conflicts.
Diffing algorithm improvements
We started exploring alternative diffing algorithms to improve the quality of conflicts. A new experimental diffing algorithm can be enabled with the following setting:
"terminal.integrated.smoothScrolling": true
Underline styles and colors
Underline styles and colors are now supported using the escape sequences originally pioneered by the kitty terminal. For supporting programs, these new underlines should light up automatically, provided they send these sequences to the VS Code terminal.

Included in this change is improved underline rendering when GPU acceleration is enabled, which avoids glyphs with long descenders and the underline overlapping:
![]()
Underline styles and colors are currently not supported on Windows due to an outstanding issue in ConPTY.
Rendering improvements
Several improvements were made to terminal rendering:
-
A longstanding bug that sometimes caused blurriness when the workbench was zoomed in or out has been fixed!

-
When minimum contrast ratio is enabled and the text luminance needs to be flipped to ensure the ratio is met, the text's hue will now be retained.

-
The new theme key
terminal.inactiveSelectionBackgroundis available to show a different selection background color whether the terminal is focused or not to better align with the editor.
-
Custom Powerline glyph rendering has improved edge clipping. This is most noticeable on the semi-circle characters, which should now be a smooth curve.

Tasks
Reconnection on window reload
Watch tasks now get reconnected to on window reload, enabling uninterrupted work when VS Code is updated or an extension's state changes. Task reconnection is enabled by default, but can be disabled with the task.reconnection setting.
Debugging
suppressMultipleSessionWarning option in launch.json
When you try to start debugging with a launch configuration, but there is already an active debug session for that configuration, VS Code will show a warning dialog before starting the second instance. This is easy to do by accident and is usually not what you meant to do. However, if running multiple instances of the same configuration is part of your workflow, you can now disable this warning by adding "suppressMultipleSessionWarning": true to your launch.json configuration file.
Filtering
The Comments view has a new filter where you can filter by comment text and by resolved/unresolved state.
Editor decoration
The Comments editor gutter decoration now uses codicons and has new styling.
Languages
TypeScript 4.8
VS Code now ships with TypeScript 4.8.2. This major update brings language improvements for type checking and inference. On the tooling side, you also should see some nice performance improvements and bug fixes!
Check out the TypeScript 4.8 announcement for more about this update.
TypeScript livestreams
And if you missed the VS Code livestreams on TypeScript, have a look at two recent sessions with Matt Pocock.

Contributions to extensions
Jupyter
Notebook image pasting
The Jupyter extension now lets users paste screenshots or image files into Markdown cells inside their notebooks. Currently only supported for the image/png mime type. To use the feature, add/enable the following settings:
export enum TerminalExitReason {
Unknown = 0,
Shutdown = 1,
Process = 2,
User = 3,
Extension = 4
}
Enum settings enumItemLabels documentation
Enum settings in the Settings editor support the enumItemLabels key, which allows the extension author to specify the values to be shown in the dropdowns corresponding to the enum values.

Theme: Light Pink (preview on vscode.dev)
New activeWebviewPanelId context key
The new activeWebviewPanelId context key tracks the viewType of the currently focused webview panel. You can use it in when clauses to enable commands or menu items when your webview is focused.
"main": "out/main.js",
"browser": "out/main.browser.js"
The browser entrypoint must be a JavaScript module that exports a default function that activates the plugin:
">PR #51