Extension authoring · code.visualstudio.com

Update 1.35.1: The update addresses these issues.

Downloads: Windows: x64 | Mac: Intel | Linux 64-bit: deb rpm tarball snap | 32-bit: deb rpm tarball


Welcome to the May 2019 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:

If you'd like to read these release notes online, go to Updates on code.visualstudio.com.

Insiders: Want to see new features as soon as possible? You can download the nightly Insiders build and try the latest updates as soon as they are available. And for the latest Visual Studio Code news, updates, and content, follow us on Twitter @code!

Updated Visual Studio Code icon

Over the past two months, we've been working on updating the VS Code product logo. We've taken feedback from the community (thank you to everyone who responded) and we are happy to release the new logos for Stable and Insiders. We are also using same logo on all platforms.

Stable Insiders
Stable logo Insiders logo

Note: Depending on your platform, you may still see the earlier logo due to the operating system caching the application icon. If you do encounter caching issues, follow these steps to clear your icon cache.

Editor

Go to Definition improvements

We have polished the Go to Definition action and its friends, Go to Declaration, Go to Type Definition, and Go to Implementation.

  • Earlier, we added the editor.gotoLocation.multiple: goto option to disable showing a Peek view when a symbol has multiple definitions. However, it would only show the first definition and ignore the rest. This is now much better, as multiple results are shown in the Status bar and pressing F12 jumps to each definition.

Go to Definition, no Peek view

  • Go to Definition now honors the workbench.editor.revealIfOpen setting. This means that an editor that is already open in another group can be reused (or not) when going to a symbol. Note that the old, hard-coded behavior was to reuse the current editor and the default for revealIfOpen is not to reuse.
  • The Peek view now supports search and filter, like the results tree, to allow you to quickly narrow down on a result.
  • Last but not least, you can now cancel long running requests for definitions by pressing Escape.

Breadcrumbs for quick file and symbol navigation are now on by default. This can be toggled in the View menu View > Show Breadcrumbs command.

breadcrumb navigation on by default

Languages

TypeScript 3.5

VS Code now ships with TypeScript 3.5.1. This update brings TypeScript language improvements, along with tooling enhancements for both JavaScript and TypeScript. It also fixes a number of important bugs, including fixes for performance issues that some users were seeing when working with styled-components.

Smart selection for JavaScript and TypeScript

JavaScript and TypeScript now support smart selection. This feature uses semantic knowledge to intelligently expand selections for expressions, types, statements, classes, and imports:

Smart selection in a TypeScript file

Use the new Extract to type alias refactoring for TypeScript to quickly extract part type into its own type alias:

Extracting part of complex type to a type alias

The Extract to type alias refactoring has a kind of refactor.extract.type. You can configure a single keybinding that extracts either constants or type aliases using:

"commands": [{
    "command": "extension.sayHello",
    "title": "Hello Enablement",
    "enablement": "editorHasSelection"
}],
"menus": {
    "editor/context": [{
        "command": "extension.sayHello",
    }]
}

Disabled commands are shown as grayed-out in menus:

Disabled contributed command

Note that certain menu implementations, like the Command Palette, don't show commands that are disabled. There is also some semantic overlap between enablement of commands and the when clause of menu items. The enablement clause defines the enabled state for all representations of a command while the when clause defines when a command should be included in a menu. For instance, an explorer context menu item might only make sense for certain file types, such as TypeScript files, while enabling that command might depend on another condition, for example "TypeScript server running". You can learn more about commands and menus in the Command Extension Guide.

Updated Octicons

We have added new icons to the Octicon library:

New Octicons icons

$(error) $(info) $(info-outline) $(smiley) $(smiley-outline) $(warning)

We have also updated existing icons to be a consistent size:

Updated Octicons icons

$(beaker) $(bell) $(info-outline) $(tools)

Note: We also changed the default for $(info) $(smiley) to be a solid version and the previous Octicons were renamed to $(info-outline) $(smiley-outline).

New theme color for active tab of an inactive editor group

A new color tab.unfocusedActiveBackground allows you to control the background color of the active tab in an editor group that does not have focus. This color inherits from the tab.activeBackground color.

Webviews that set retainContextWhenHidden can now receive messages when in the background

Webviews that set retainContextWhenHidden can now receive messages even if they are not visible. Previously, only visible webviews could receive messages using .postMessage.

Keep in mind that for a good user experience, webviews should not perform complex operations such as DOM manipulation or network requests while in the background.

We have finalized the Comments API for extensions to provide commenting support within VS Code. For example, the GitHub Pull Request extension uses the Comments API to create and update comments for open pull requests directly in the editor and a dedicated Comments Panel.

You can play with the comment sample extension to get a better understanding of the API or take a deep look at the GitHub Pull Request extension repository.

Uninstall extension command

There is a new command, workbench.extensions.uninstallExtension, to programmatically uninstall an installed extension.

// Create a background terminal
const terminal = window.createTerminal({ runInBackground: true });

// Show the terminal in the panel
terminal.show();

This is useful if you need an interactive terminal session but don't want to display it to the user unless something goes wrong.

New documentation

Remote Development topics

The VS Code Remote Development extensions are still in preview but there is extensive documentation to help you get started.

There are specific topics for each Remote Development extension:

  • Remote - SSH - Connect to any location by opening folders on a remote machine/VM using SSH.
  • Dev Containers - Work with a sandboxed toolchain or container-based application inside (or mounted into) a container.
  • WSL - Get a Linux-powered development experience in the Windows Subsystem for Linux.

Under the Remote table of contents, you will also find a Tips and Tricks guide as well as FAQ.

Notable improvements

  • Collapse All list and tree command with ⌘← (Windows, Linux Ctrl+Left) keyboard shortcut.
  • The history of the References view can now be cleared.
  • When running the Format With... command, the default formatter is now pre-selected.
  • When debugging is paused on a line, the whole line is read out by the screen reader.
  • Multiple item paste in the Explorer is run in parallel for improved performance.
  • The Open Folder button in an empty File Explorer is scoped to folder even on macOS.

Notable fixes

  • 15749: Potential data loss for files that changed on disk meanwhile after a backup was made
  • 17115: Preserve picked language for files across restarts
  • 74446: Completion providers with resolve methods leak memory
  • 74457: URI: Should invalidate cached _fsPath when crossing platforms
  • 73783: Make workbench.dialogs.useSimplified a real setting
  • 68793: Clicking anywhere on the "debug console" pane should "focus" on input box
  • 73457: Breakpoint lines are not correct when saving the source file after modifying the file
  • 68812: Typescript task detection is now cross-platform

Thank you

Last but certainly not least, a big Thank You! to the following folks that helped to make VS Code even better:

Contributions to vscode:

Contributions to our issue tracking:

Please see our Community Issue Tracking page, if you want to help us manage incoming issues.

Contributions to language-server-protocol:

Contributions to vscode-languageserver-node:

Contributions to vscode-vsce:

Contributions to node-jsonc-parser:

Contributions to localization:

There are over 800 Cloud + AI Localization community members using the Microsoft Localization Community Platform (MLCP), with over about 100 active contributors to Visual Studio Code. We appreciate your contributions, either by providing new translations, voting on translations, or suggesting process improvements.

Here is a snapshot of contributors. For details about the project including the contributor name list, visit the project site at https://aka.ms/vscodeloc.

  • Bosnian: Ismar Bašanović, Ernad Husremovic.
  • Bulgarian: Иван Иванов.
  • Danish: René Pape, Lars Vange Jørgensen, Martin Liversage, Lasse Stilvang.
  • Dutch: Leroy W, Maxim Janssens, Tom Meulemans.
  • English (United Kingdom): Martin Littlecott, Alexander Ogilvie, Fabio Zuin, Mohit Nain.
  • French: Thierry DEMAN-BARCELÒ, Antoine Griffard.
  • Greek: Θοδωρής Τσιρπάνης, Charalampos Fanoulis.
  • Hungarian: Boldi Kemény.
  • Chinese Simplified: Justin Liu, Pluwen, 斌 项, paul cheung, Chen Yang, 建 周, Yiting Zhu, 涛 罗, 张锐, 雨齐 刘, Joel Yang, cuibty wong, XIANG ZUO.
  • Chinese Traditional: Winnie Lin.
  • Indonesian: Hendra Widjaja, Don Nisnoni, Bervianto Leo Pratama, Rifani Arsyad, Laurensius Dede Suhardiman.
  • Italian: Aldo Donetti.
  • Korean: 우현 조.
  • Latvian: Kaspars Bergs, Andris Vilde.
  • Lithuanian: Andrius Svylas, Tautvydas Derzinskas, Karolis Kundrotas, Martynas J..
  • Norwegian: Dag H. Baardsen, Ole Kristian Losvik.
  • Polish: Marcin Weksznejder, Grzegorz Miros.
  • Portuguese (Brazil): Alessandro Trovato, Weslei A. de T. Marinho, Alessandro Fragnani, Judson Santiago, Guilherme Pais, Emmanuel Gomes Brandão, Fabio Lux.
  • Portuguese(Portugal): Nuno Carapito, Pedro Daniel, Diogo Barros.
  • Romanian: Stefan Gabos.
  • Russian: Анатолий Калужин.
  • Spanish: Thierry DEMAN.
  • Swedish: Johan Spånberg.
  • Tamil: Merbin J Anselm, Jeyanthinath Muthuram, Nithun Harikrishnan.
  • Turkish: meryem, Ömer Sert, Anıl MISIRLIOĞLU, Bruh Moment.
  • Vietnamese: Van-Tien Hoang, Chủ Tất.

Read the original on code.visualstudio.com ↗