Skip to content

Latest commit

 

History

History
308 lines (196 loc) · 18.9 KB

v1_58.md

File metadata and controls

308 lines (196 loc) · 18.9 KB
Order TOCTitle PageTitle MetaDescription MetaSocialImage Date DownloadVersion
67
June 2021
Visual Studio Code June 2021
Learn what is new in the Visual Studio Code June 2021 Release (1.58)
1_58/release-highlights.png
2021-07-07
1.58.0

June 2021 (version 1.58)

Welcome to the Insiders build. These are the preliminary notes for the June 1.58 release of Visual Studio Code. As we get closer to the release date, you'll find details below about new features and important fixes.

Until the June milestone release notes are available, you can still track our progress:

  • June iteration plan - Review what's planned for the milestone.
  • Commit log - GitHub commits to the vscode open-source repository.
  • Closed issues - Resolved bugs and implemented feature requests in the milestone.

We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new.

If you find issues or have suggestions, you can enter them in the VS Code repository on GitHub.

Workbench

Settings editor

This iteration adds support for objects with a fixed number of boolean properties to the Settings editor, by rendering the properties as a list of checkboxes.

Bool object renderer demo

This iteration also adds additional support for arrays of enums, by using dropdowns in editing mode instead of plain textboxes.

Enum array renderer demo

Transient workspaces

A transient .code-workspace workspace behaves a bit differently than usual workspaces do, specifically:

  • Restarting or reloading VS Code will not attempt to open the workspace again.
  • Workspaces set as transient do not show up in the list of recently opened workspaces.

Designate a transient workspace by adding the transient property set to true in the workspace .code-workspace file:

{
    "folders": [],
    "transient": true
}

Settings Sync

Added troubleshoot view that contains all settings sync logs and last sync states to settings sync views. You can access this view by running the command Settings Sync: Show Synced Data and enabling it from Views sub-menu like below:

Settings Sync Troubleshooting

Theme: GitHub Light Theme

Integrated Terminal

Terminals in the editor area

Terminals can now be created in or moved to the editor area, enabling a multi-dimensional grid layout that persists and remains visible regardless of panel state.

Create terminals via the Create Terminal in Editor Area command.

Move a terminal from the panel to the editor by dragging and dropping from the tabs list, running Move Terminal into Editor Area with a terminal focused, or selecting the context menu action.

4 terminals in the editor area are laid out in a 2 by 2 grid

Canvas renderer

In a prior iteration, we removed the terminal.integrated.rendererType setting in favor of terminal.integrated.gpuAcceleration when we enabled the WebGL renderer by default. Some architectures have improved terminal performance when using the canvas renderer. To use the canvas renderer, set terminal.integrated.gpuAcceleration to canvas.

New terminal settings

Set terminal.integrated.defaultLocation to editor to direct newly created terminals to the editor area.

Set terminal.integrated.showLinkHover to false to disable link hovers in the terminal. This can be useful if you find them distracting, for example.

Languages

TypeScript 4.3.5

We now bundle TS 4.3.5. This minor update fixes a few important bugs, including auto imports not working in JSX.

Math formula rendering in the Markdown preview

VS Code's built-in Markdown preview can now render math equations using KaTeX

Math rendering in the built-in markdown preview

Inline math equations are wrapped in single dollar signs:

Inline math: $x^2$

While you can create a math equation block with double dollar signs:

Math block:

$$
\displaystyle
\left( \sum_{k=1}^n a_k b_k \right)^2
\leq
\left( \sum_{k=1}^n a_k^2 \right)
\left( \sum_{k=1}^n b_k^2 \right)
$$

You can set "markdown.math.enabled": false to disable this feature.

Markdown math formula syntax highlighting

We now also support highlighting of math equations in Markdown source:

Syntax highlighting of a math equation in a markdown file

This works both in normal markdown files and in Markdown cells inside notebooks.

Debugging

Remember chosen environment per file

When debugging is started without a launch.json file, VS Code looks at the active editor and based on the language mode of the active editor decides what debug extension to use. However, for some languages, there are multiple fitting debug extensions and in that case VS Code would prompt you to choose. To make starting debugging smoother, we are now remembering this choice per active file, so that the next time you start debugging, the session starts without any prompts.

Debug is started first time and the environment prompt is presented. The next time there is no prompt and it just starts

Debug console suggestions no longer accepted on Enter

The Debug Console suggestions are no longer accepted on Enter, but only on Shift+Enter and Tab. Previously it was very easy to accidently accept a suggestion when a user actually wanted to just evaluate what is already typed in the Debug Console input.

In order to make Tab more discoverable as a way to accept suggestions we are now rendering the suggestion status bar in the Debug Console input.

Debug console input box showing a status bar rendered in the bottom that says "Insert (Tab)"

Preview Features

TypeScript 4.4 support

This release includes initial support for the upcoming TypeScript 4.4 release. You can read more about the new language features and improvements in TypeScript 4.4 on the TypeScript blog.

To start using the TypeScript 4.4 nightly builds, just install the TypeScript Nightly extension.

Please share your feedback and let us know if you run into any bugs with TypeScript 4.4.

Extension authoring

Detailed completion item labels

We have added new API for more detailed and structured completion item labels. You can now use the vscode.CompletionItemLabel type for item's labels and it allows you to specify label, details, and description.

These new properties allow language extensions to show signatures or qualifiers but also other completion provider can utilize this. For instance, the Github Pull Request extension now shows full names alongside aliases.

Completion for Github aliases with full names

Details for modal messages

The API for showing modal information, warning, and error messages now allows to provide details. They are less prominent rendered than the actual message.

A modal dialog with details

The dialog above is produced with the following code snippet. Note that detail is only supported for modal messages.

vscode.window.showInformationMessage('This is the message', {
  modal: true,
  detail: 'This is the detail. Rendered less prominent, but with more space for, well, details.'
});

Terminal API

Extensions can now:

  • Customize a terminal's icon by providing an iconPath in TerminalOptions or ExtensionTerminalOptions.
  • Contribute terminal profiles via a TerminalProfileProvider.
  • Change the name of extension terminals by firing Pseudoterminal.onDidChangeName.

Contributions to extensions

Interactive window

We have started working on providing a built-in interactive window experience on top of the notebook ecosystem and the Jupyter extension has adopted it behind a setting jupyter.enableNativeInteractiveWindow. If the feature is enabled, the Jupyter extension will open the built-in editor instead of the webview implementation, when running code from Python files or directly launching from Command Palette. The built-in editor works with your customized keybindings/keymaps or language extensions since it's deeply integrated with the workbench.

Builtin interactive window demo

Language Server Protocol

A new next version of the language server protocol together with the corresponding npm modules has been published. The version contains the final proposal for the diagnostic pull model specification.

Engineering

ES2020

We have updated our TypeScript projects to allow using recent JavaScript APIs, like Promise.allSettled or String.replaceAll. We also output more modern JavaScript, ES2020, which reduces the overall size of our main bundle by a tiny little bit.

Progress for Electron sandbox support

This milestone we continued to make the VS Code window ready for enabling Electron's sandbox and context isolation features.

Specifically:

  • We removed our Node.js dependency for loading the resources needed to open VSCode windows in general.
  • We added searching to iframe elements to get behavior closer to the deprecated webview component, allowing us to drop webview in the future. This feature can be enabled by setting "webview.experimental.useIframes": true in the settings.json file.

Notable fixes

  • 126702: macOS: command line code . not working
  • 127716: Debug Hover: Allow keyboard to search through properties
  • 126211: Node process started via debugger is not killed when quitting VSCode
  • 125528: Deselect breakpoint in breakpoint view when no longer stopped on it
  • 125144: When thread is no longer stopped the focus is not automatically passed to another thread
  • 120956: iPad: can not trigger context menu outside of Editor
  • 124169: Try to not indent the active debugging line
  • 122448: Auto disable extensions if their dependencies are disabled

Thank you

Last but certainly not least, a big Thank You to the following people who contributed this month to VS Code:

Contributions to our issue tracking:

Contributions to vscode:

Contributions to vscode-extension-samples:

Contributions to vscode-html-languageservice:

Contributions to vscode-js-debug:

Contributions to vscode-languageserver-node:

Contributions to language-server-protocol:

Contributions to monaco-editor:

Contributions to monaco-languages:

Contributions to monaco-typescript: