Extension Authoring · code.visualstudio.com

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:

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.

The terminal can now display straight, double, curly, dotted, and dashed underlines in any color

Included in this change is improved underline rendering when GPU acceleration is enabled, which avoids glyphs with long descenders and the underline overlapping:

An example showing that characters with descenders such as 'g' and 'p' no longer overlap with underlines

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!

    Text is now more crisp as canvas is no longer stretched, which caused anti-aliasing to look poorly

  • 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.

    Bold yellow text on red in some themes will now display as dark yellow instead dark grey

  • The new theme key terminal.inactiveSelectionBackground is available to show a different selection background color whether the terminal is focused or not to better align with the editor.

    Most themes now dim the selection background color when not focused

  • Custom Powerline glyph rendering has improved edge clipping. This is most noticeable on the semi-circle characters, which should now be a smooth curve.

    Powerline glyphs are no longer cut off on the edges

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.

VS Code livestreams page

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.

Example of enumItemLabels with a mock setting. The select box displays the label value, and the dropdown options display both the label value and the enum value, though the enum values are rendered less prominently.

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
            

Read the original on code.visualstudio.com ↗