October 2018 (version 1.29)

Update 1.29.1: The update addresses these issues.

Downloads: Windows | Mac | Linux 64-bit: .tar.gz .deb .rpm | Linux 32-bit: .tar.gz .deb .rpm


Welcome to the October 2018 release of Visual Studio Code. There are a number of significant 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.
You can also check out this 1.29 release highlights video from Cloud Developer Advocate Brian Clark.

The release notes are arranged in the following sections related to VS Code focus areas. Here are some further updates:

  • Workbench - Platform specific end-of-line characters, highlight modified file tabs.
  • Integrated Terminal - Split terminal cwd options, Cmd+Backspace to delete to start of line.
  • Languages - Display CSS Specificity on hover, handle unknown CSS properties.
  • Debugging - Multiple debug consoles, start with stop on entry, style console.log messages.
  • Extension Authoring - Active terminal API, more control over custom views.

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!

VS Code now supports multiline search! Same as in the editor, a regex search executes in multiline mode only if it contains a \n literal. The Search view shows a hint next to each multiline match, with the number of additional match lines.

Multiline search

This feature is possible thanks to the work done in the ripgrep tool to implement multiline search.

It is also now possible to use backreferences and lookahead assertions in regex searches, by setting "search.usePCRE2": true. This configures ripgrep to use the PCRE2 regex engine. While PCRE2 supports many other features, we only support regex expressions that are still valid in JavaScript, because open editors are still searched using the editor's JavaScript-based search.

Fancy regex search

If you are still missing lookbehind assertions, don't worry! That feature is just recently supported by JavaScript and should come to VS Code in a later Electron shell update.

We've added a setting search.showLineNumbers which will display the line number for each match in the Search view.

Disable search and replace preview

There is a new setting search.useReplacePreview which allows you to disable the preview diff that appears when doing a search/replace in the Search view.

line numbers

Git allows you to configure a global gitignore file using the core.excludesfile config property. By default, search does not respect the global gitignore file, but you can now change this by enabling the new setting search.useGlobalIgnoreFiles.

Workbench

macOS Mojave Dark Mode support

The macOS Mojave Dark Mode is now better supported in VS Code. Previously, VS Code menus and dialogs would show with the default light theme, even if macOS was running in dark theme. Now, all native UI elements will show with the Dark Mode if enabled.

macOS Mojave Dark Mode

macOS full screen support

A new setting window.nativeFullScreen was introduced that, if set to false, will enable full screen mode for VS Code that does not use the native macOS full screen feature. This has the advantage that entering full screen mode will not create a macOS space on the desktop. By default, VS Code will still use macOS native full screen.

New default for files.eol: auto

The files.eol end of line setting now has a new default value auto. When set to auto, the end of line character for new files is specific to the operating system. It is \r\n on Windows and \n on macOS and Linux. You can also still explicitly set file.eol to \n or \r\n.

Highlight modified tabs

A new setting workbench.editor.highlightModifiedTabs displays a thick border at the top of editor tabs whenever the editor is dirty (has unsaved changes). This makes it easier to find files that need to be saved. The color of the border can be customized (see below).

Highlight modified tabs

Centered editor layout auto resize

Centered layout view will now automatically resize to max width when more than 1 editor group is open. This should make centered layout easier to use and require less manual toggling. This behavior is controlled by a new setting workbench.editor.centeredLayoutAutoResize which is enable by default.

Symbol order in Breadcrumbs

There is a new setting that controls how symbols in the Breadcrumbs picker are ordered: breadcrumbs.symbolSortOrder.

Allowed values are:

  • position - position in the file (default)
  • name - alphabetical order
  • type - symbol type order

The example below shows the Breadcrumbs symbol list ordered by name:

Breadcrumb picker ordered by name

Breadcrumbs and preview editors

When middle clicking items in the Breadcrumbs navigation, they now open in a new editor and don't reuse the preview editor. This behavior now matches middle clicking files in the Explorer.

Notifications automatically hide even when showing buttons

Previously, VS Code would never hide notifications if they included buttons. This resulted in the potential for notifications to pile up in the lower right corner and cover parts of the editor. With this release, notifications are hidden after a timeout even if they show buttons.

There are two exceptions:

  • Notifications with error severity will not be hidden on the assumption that the user needs to take some action.
  • A few specific notifications from VS Code will remain open. For example, the notification that asks if you'd like to install an extension after browsing the VS Code Marketplace.

Note: Even if notifications are hidden, you can always access all notifications from the Notification Center, either by clicking on the little bell icon in the Status bar or via the Show Notifications (notifications.toggleList) command.

Panel position button to context menu

In order to preserve horizontal space and reduce clutter, we removed the toggle Panel position button (Move to Right, Move to Bottom) from the Panel title area. The action is now available in the Panel title area context menu and also in View > Appearance > Toggle Panel Position main menu. Another reason for removing this button was that we believe users set their layout once and don't normally toggle back and forth.

Move panel

Updated file icons per file type

In the previous release, we added custom icons for common VS Code file types. We now added those icons to smaller views so they will appear in a list view.

Updated file icons

In the Settings editor, we show a hint when a setting is configured in a scope (User, Workspace) other than the currently selected scope. The other scope hint is now a link that will take you to the setting in the other scope.

modified in link

Tree widget performance

The VS Code tree widget control is used in many places in the VS Code UI but was hitting performance limits in some specific use cases (Problems panel, Outline view). We have been working on faster virtual tree widget implementations which can accommodate different levels of performance versus API convenience. You can read here to learn more.

The new ObjectTree widget is now being used in the Problems panel and we've already seen significant improvements. We were able to dramatically raise the number of problem items the workbench can handle as well as increase the speed of certain operations (such as Collapse All) and advanced filtering scenarios. These improvements now make it feasible to work with larger collection sizes.

Workbench navigation commands

Four commands are added to improve workbench navigation:

  • workbench.action.nextSideBarView: Go to next view in Side Bar.
  • workbench.action.previousSideBarView: Go to previous view in Side Bar.
  • workbench.action.nextPanelView: Go to next Panel.
  • workbench.action.previousPanelView: Go to previous Panel.

By default, the commands do not have keyboard shortcuts.

Two context keys, sideBarFocus and panelFocus were also added. This allows using the same keybinding for different commands in different Workbench areas:

[
  { "key": "cmd+]", "command": "workbench.action.nextEditor" },
  { "key": "cmd+[", "command": "workbench.action.previousEditor" },
  {
    "key": "cmd+]",
    "command": "workbench.action.nextSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "cmd+[",
    "command": "workbench.action.previousSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "cmd+]",
    "command": "workbench.action.nextPanelView",
    "when": "panelFocus"
  },
  {
    "key": "cmd+[",
    "command": "workbench.action.previousPanelView",
    "when": "panelFocus"
  }
]

workbench-navigation

Show view group parent

The Open View command (view in Quick Open) now shows each view group's parent to better represent the view hierarchy. For example, the Explorer group now show as Side Bar / Explorer, and Terminal group as Panel / Terminal.

structured-view

Editor

File and folder icons in IntelliSense

The IntelliSense widget now shows file and folder icons for file completions based on your File Icon theme. This provides a unified look and helps you quickly identify different file types.

File Icons in IntelliSense

Format Selection

To speed up small formatting operations, the Format Selection command without an editor selection will now format the current line.

Show error codes

The editor now shows the error code of a problem if an error code is defined. The error code is displayed at the end of the line in square brackets.

Below you can see that TypeScript is displaying the error code '2339':

error codes

Integrated Terminal

Split terminal can inherit working directory

A setting terminal.integrated.splitCwd was added to control the current working directory (cwd) of the new terminal when a terminal is split:

  • workspaceRoot - The previous behavior; a new split terminal will use the workspace root as the working directory. In a multi-root workspace, a choice for which root folder to use is offered.
  • initial - A new split terminal will use the working directory that the parent terminal started with.
  • inherited - On macOS and Linux, a new split terminal will use the working directory of the parent terminal. On Windows, this behaves the same as initial.

Cmd+Backspace to delete to the start of the line

A new keybinding was added on macOS for Cmd+Backspace which sends \u0015 (Ctrl+U) to the terminal. In bash, this deletes from the cursor to the start of the line, in zsh, it deletes the whole line.

Experimental buffer improvements

A new setting terminal.integrated.experimentalBufferImpl allows changing how the terminal stores its buffer to a TypedArray/ArrayBuffer-based implementation. If you would like to opt-in, you can expect performance improvements across the board, including reduced memory usage and garbage collection, and an overall increase to the throughput of the terminal.

{
  "terminal.integrated.experimentalBufferImpl": "TypedArray"
}

This is just the beginning, we're expecting further improvements to throughput and memory usage over the next couple of releases before making this the default implementation. A special thanks to @jerch from the xterm.js team, who has been the main driving force behind this multi-month project.

Tasks

Clear terminal before executing task

A new property clear was added to the task presentation configuration. Set the clear property to true to clear the terminal before the task is run.

Debugging

Collapsible stack frames

Sometimes call stacks in the debugger contain stack frames which are not interesting to the user (external code, skipped files etc...). To reduce clutter and save on vertical space, we now render those uninteresting stack frames as collapsed.

stack frames

Improved Loaded Scripts view

In this milestone, we updated the Loaded Scripts view to support file icons and added the capability to show related resources as child elements. Debug extensions can use this feature to show the source file(s) that were transpiled into a script.

The following picture from the Node.js debugger shows the TypeScript source for JavaScript files (as available in source maps):

loaded scripts view

Please note that the related resources feature requires opt-in by debug extensions. In the October release, only node-debug has experimental support for this feature for Node.js versions < 8.0 (aka "legacy").

Multiple debug consoles

When debugging multiple debug sessions, we now show their output in different debug consoles. This makes it easier to distinguish which debug session is responsible for which output and evaluation.

multiple debug consoles

Start debugging with stop on entry

For Node.js debugging, we have added a new command Debug: Start Debugging and Stop On Entry (extension.node-debug.startWithStopOnEntry). Use this command if you would like to start debugging and immediately stop on the entry of your program. The default keybinding is F11 (Windows, Linux F10). Note that is command is only available if your selected launch configuration is of type node.

Node debugging supports console.log styling

When debugging Node.js (or Chrome using the "Debugger for Chrome" extension), you can now style messages from console.log using %c, similar to what Chrome DevTools supports. Supported properties are color, background, font-weight: bold, and text-decoration: underline.

console styles

Breakpoint widget expands to multiple lines

The Breakpoint widget can now expand to multiple lines, use Shift+Enter to insert an additional line, or simply paste a multiline condition or log message. This should help when editing more complex conditions and log messages.

breakpoint widget

Languages

TypeScript 3.1.4

This release includes TypeScript 3.1.4, a small update that fixes a few important bugs.

Markdown snippet improvements

The built-in Markdown snippets, such as those for links and code blocks, now use the currently selected text by default. This allows you to create keybindings that turn the currently selected text into a link or header:

{
  "key": "cmd+k",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "langId": "markdown",
    "name": "Insert link"
  }
}

CSS Specificity in hover message

The CSS hover now shows you the CSS Specificity.

css-specificity

Handle unknown CSS properties

With CSS pre-processors such as PostCSS, you might use invalid properties that are compiled to valid properties during development time. The [css/less/scss].lint.validProperties setting prevents VS Code from marking those invalid properties as erroneous.

Improved CSS zero unit warning

CSS now lints zero units used in CSS shorthand property values. For example, 0px will now cause a warning:

.foo {
  outline: black 0px solid;
}

Graceful handling of JSON schema loading error

If VS Code is unable to download a JSON schema used for IntelliSense or error-checking JSON files, a warning will be shown in the Status Bar:

json-schema-loading

In the past, you would have seen an error in the editor.

Engineering

Continued Electron 3.0 exploration

During this milestone, we continued to explore bundling Electron 3.0.0 into VS Code. This is a major Electron release and comes with Chrome 66 and Node.js 10.x (a major leap forward compared to our current version that has Chrome 61 and Node.js 8.x). We plan to push out the update to our Insiders users in the near future to gather additional feedback. If you are interested in helping out, make sure to install VS Code Insiders.

Strict null checking core VS Code

This milestone, we also started work to enable TypeScript's strict null checks in the core VS Code source. Strict null checks help catch many common programming mistakes and make the intent of the programmer more explicit. We've seen clear benefits using strict null checks for VS Code's built-in extensions.

Since VS Code's core source contains several thousand files, we are adopting strict null checking incrementally. We started by strict null checking files that have no imports and are now iteratively enabling strict null checks in files that only import other strict null checked files. This will continue until the entire code base is converted.

Enabling strict null checks is a major engineering effort but we think the payoff in terms of source code and product quality will be worth it. You can track our strict null checking progress here.

Miscellaneous

Low contrast menu bar

If you are using Ubuntu 18.10 or a GTK theme that mixes light or dark context menus with the opposite theming for the application menu bar, you may experience a low contrast menu bar that is difficult to read.

There are two possible workarounds for this:

  • Try out the VS Code custom title bar style by configuring the setting window.titleBarStyle to custom.
  • Change your GTK theme. You can do this by installing the Gnome Tweaks application and using the previous default theme Adwaita.

Information on this issue can be tracked in issue 62593.

Electron update

In this release, we updated from Electron 2.0.9 to 2.0.12.

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.

References View

There is a new command Find All References, which displays a dedicated Side Bar view showing reference search results. This complements the existing Peek view presentation and provides a more stable list of references. In the context menu, select Find All References (⇧⌥F12 (Windows, Linux Shift+Alt+F12)) and references are shown in a separate view, just like search results.

References View

Results are stable and individual results can be cleared, which is great if you use the view as a To Do list. You can use F4 and ⇧F4 (Windows, Linux Shift+F4) to navigate through results without taking your hands off the keyboard.

Let us know what you think and we'll be refining the experience in our next update.

Extension Authoring

Normalized extension samples

The VS Code extension samples at vscode-extension-samples have been updated for consistency.

Each extension sample now includes:

  • Uniform coding style and structure.
  • A README that explains the sample's functionality with a short animation.
  • A listing of the vscode API or Contribution Points used in each sample.

Bundling extensions

Bundled extensions load faster. We therefore created a sample that shows how to webpack an extension.

Develop extensions without requiring a publisher

In an effort to simplify initial extension development, the publisher field was removed from the Yeoman Extension Generator template. For extensions without a publisher identifier, VS Code now loads them with undefined_publisher as their publisher. However, the vsce publishing tool will warn you if you are missing a valid publisher when attempting to publish extensions to the Marketplace.

Active terminal APIs

The proposed APIs that give access to the active terminal, window.activeTerminal and window.onDidChangeActiveTerminal, are now stable.

Notifications with buttons hide after a timeout

If your extension is using the showInformationMessage or showWarningMessage API with the non-modal option and buttons, note that these notifications will now hide after a certain timeout. Only notifications triggered via showErrorMessage and having buttons will stay open as before. If you must get immediate input from the user or need to show a message prominently, you can still use modal: true as an option. This will bring up a modal dialog that blocks the user from doing anything until dismissed. We do however discourage overuse of this option because it interrupts the user.

Custom views: Expand revealed elements

You can now expand an element to reveal using the expand option in the reveal API. It also supports recursively expanding child elements by passing the number of levels.

NOTE: You can only expand to a maximum of 3 levels.

/**
 * Reveals the given element in the tree view.
 * If the tree view is not visible then the tree view is shown and element is revealed.
 *
 * By default revealed element is selected.
 * In order to not to select, set the option `select` to `false`.
 * In order to focus, set the option `focus` to `true`.
 * In order to expand the revealed element, set the option `expand` to `true`. To expand recursively set `expand` to the number of levels to expand.
 * **NOTE:** You can expand only to 3 levels maximum.
 *
 * **NOTE:** [TreeDataProvider](#_TreeDataProvider) is required to implement [getParent](#_TreeDataProvider.getParent) method to access this API.
 */
reveal(element: T, options?: { select?: boolean, focus?: boolean, expand?: boolean | number }): Thenable<void>;

New theme colors

There are new theme colors:

  • tab.activeModifiedBorder: Border on the top of modified (dirty) active tabs in an active group.
  • tab.inactiveModifiedBorder: Border on the top of modified (dirty) inactive tabs in an active group.
  • tab.unfocusedActiveModifiedBorder: Border on the top of modified (dirty) active tabs in an unfocused group.
  • tab.unfocusedInactiveModifiedBorder: Border on the top of modified (dirty) inactive tabs in an unfocused group.
  • editor.stackFrameHighlightBackground: Background color of the top debug stack frame highlight in the editor. By default this color is yellow.
  • editor.focusedStackFrameHighlightBackground: Background color of the focused debug stack frame highlight in the editor. By default this color is green.

Git extension API additions

The Git extension API has been updated to expose details on the actual changes each repository has.

Additionally, the following methods have been exposed:

Using Azure Pipelines for extension CI

We've updated our documentation on how to setup a continuous integration solution for your extension using Azure Pipelines. The new guide provides a configuration with which you can run your extension tests simultaneously on Windows, macOS and Linux.

Azure Pipelines CI results

Proposed Extension APIs

Every milestone comes with new proposed APIs and extension authors can try them out. As always we are keen on 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.

Note that you cannot publish an extension that uses a proposed API. We may likely make breaking changes in the next release and we never want to break existing extensions.

Clipboard API

We have a proposed API to access the clipboard. It follows the up-coming browser Clipboard API and currently allows reading and writing of text:

export interface Clipboard {
  readText(): Thenable<string>;
  writeText(value: string): Thenable<void>;
}
export namespace env {
  const clipboard: Clipboard;
}

Completion text insert rules

There is a new proposed API to modify the insert behavior of completion items. By default, multiline completions get 're-formatted' to match in the indentation of the current line. Sometimes this indentation is unwanted and the new proposed API allows a completion to turn it off. CompletionItemInsertTextRule is a bitmask that has a KeepWhitespace rule that a completion can set.

Custom views

Collapse All action

You can add Collapse All action to your view by just setting showCollapseAll option to true while creating the TreeView.

/**
 * Options for creating a [TreeView](#_TreeView]
 */
export interface TreeViewOptions<T> {

    /**
     * A data provider that provides tree data.
     */
    treeDataProvider: TreeDataProvider<T>;

    /**
     * Whether to show collapse all action or not.
     */
    showCollapseAll?: boolean;
}

namespace window {

    export function createTreeView<T>(viewId: string, options: TreeViewOptions<T>): TreeView<T>;

}

VS Code provides the Collapse All functionality and shows it with same icon and location for all opted-in views.

Collapse All

TreeItem label highlights

You can highlight the TreeItem label by providing ranges using the highlights option. Since it is a proposed API, you have to use TreeItem2 to update highlights.

/**
 * Label describing the [Tree item](#_TreeItem)
 */
export interface TreeItemLabel {

    /**
     * A human-readable string describing the [Tree item](#_TreeItem).
     */
    label: string;

    /**
     * Ranges in the label to highlight. A range is defined as a tuple of two number where the
     * first is the inclusive start index and the second the exclusive end index
     */
    highlights?: [number, number][];

}

export class TreeItem2 extends TreeItem {
    /**
     * Label describing this item. When `falsy`, it is derived from [resourceUri](#_TreeItem.resourceUri).
     */
    label?: string | TreeItemLabel | /* for compilation */ any;

    /**
     * @param label Label describing this item
     * @param collapsibleState [TreeItemCollapsibleState](#_TreeItemCollapsibleState) of the tree item. Default is [TreeItemCollapsibleState.None](#_TreeItemCollapsibleState.None)
     */
    constructor(label: TreeItemLabel, collapsibleState?: TreeItemCollapsibleState);
}

Label highlights

Hide Source Control input box

There is a new proposed API property on SourceControlInputBox instances which will let you hide the input box at the top of a source control provider UI view.

export interface SourceControlInputBox {

    /**
    * Controls whether the input box is visible (default is  true`).
    */
    visible: boolean;
}

SignatureHelpContext

The proposed SignatureHelpContext gives SignatureHelpProviders additional information about why signature help was requested:

export interface SignatureHelpProvider {
  provideSignatureHelp(document: TextDocument, position: Position, token: CancellationToken, context: SignatureHelpContext): ProviderResult<SignatureHelp>;
}

The SignatureHelpContext includes:

  • What action caused signature help to be triggered
  • The trigger character (if any)
  • Was this was a re-trigger? (signature help was already showing)
/**
 * Contains additional information about the context in which a
 * [signature help provider](#_SignatureHelpProvider.provideSignatureHelp) is triggered.
 */
export interface SignatureHelpContext {
  /**
   * Action that caused signature help to be requested.
   */
  readonly triggerReason: SignatureHelpTriggerReason;

  /**
   * Character that caused signature help to be requested.
   *
   * This is `undefined` when signature help is not triggered by typing, such as when invoking signature help
   * or when moving the cursor.
   */
  readonly triggerCharacter?: string;

  /**
   * Whether or not signature help was previously showing when triggered.
   *
   * Retriggers occur when the signature help is already active and can be caused by typing a trigger character
   * or by a cursor move.
   */
  readonly isRetrigger: boolean;
}

/**
 * How a [Signature provider](#_SignatureHelpProvider) was triggered
 */
export enum SignatureHelpTriggerReason {
  /**
   * Signature help was invoked manually by the user or by a command.
   */
  Invoke = 1,

  /**
   * Signature help was triggered by a trigger character.
   */
  TriggerCharacter = 2,

  /**
   * Signature help was triggered by the cursor moving or by the document content changing.
   */
  ContentChange = 3,
}

Additionally, the proposal allows SignatureHelpProvider to be registered with a set of triggerCharacters and a distinct set of retriggerCharacters:


export interface SignatureHelpProviderMetadata {
  readonly triggerCharacters: ReadonlyArray<string>;
  readonly retriggerCharacters: ReadonlyArray<string>;
}

namespace languages {
  export function registerSignatureHelpProvider(
    selector: DocumentSelector,
    provider: SignatureHelpProvider,
    metadata: SignatureHelpProviderMetadata
  ): Disposable;
}

retriggerCharacters only cause a signature help provider to be invoked if signature help is already showing.

Contributions to Extensions

Our team maintains or contributes to a number of VS Code extensions. Most notably this month:

Go

Below are some of the key features the Go extension now supports when you use the new Go modules in Go 1.11:

  • Code navigation (Go to Definition, Signature Help, Symbol info on hover)
  • Code completion
  • Code coverage
  • Code diagnostics
  • Package related commands like Go: Add Import and Go: Browse Packages

For more details, please read the wiki on the Go modules support in Visual Studio Code.

Other notable features in the Go extension are:

  • Language Server from Sourcegraph is now supported in Windows as well.
  • The auto completion widget now shows documentation for the suggested symbols. Press ⌃Space (Windows, Linux Ctrl+Space) to expand/collapse the details section of the auto-completion widget.
  • Auto-completion is now supported when cross-compiling. This is especially helpful when you are trying out the new WebAssembly support in Go 1.11.
  • Context menu with Copy Value, Copy as expression and Add to Watch options are now available in the Variables pane of the Debug view.
  • Option to lint just the current file on file save.

TypeScript TSLint plugin

The new TypeScript TSLint plugin enables TSLint as a TypeScript language service plugin. These plugins work in any editor that uses the TypeScript language service including VS Code, Visual Studio, Atom, and Sublime Text.

We've also shipped an extension that bundles the TypeScript TSLint plugin so that you don't have to configure the plugin in your workspace.

GitHub Pull Requests

This milestone we worked on improvements to the GitHub Pull Requests extension. The extension now supports editing and deleting comments, both within the editor and on the description page, and has better caching for comments that are not yet submitted. You can read the full release notes for the extension here.

New Documentation

Deploy Python tutorials

There are two new Python tutorials showing how to deploy Python web applications with VS Code.

Debugging recipes

There are new VS Code debugging recipes for PHP, Python, and Ruby on Rails.

Notable Fixes

  • 54214: startDebugging method in vscode still return true even when the build fails
  • 57289: Settings UI should remember its search on reload
  • 57321: Show "Clear Search" and "Clear Filters" buttons when settings search returns no results
  • 59305: Show a "Open Workspace" button in .code-workspace files
  • 59430: Can no longer break in node internals files
  • 61711: All breakpoints are unverified
  • 62085: PauseRequest not being received by the debugAdapter
  • 62346: Can't cancel a debug session while it's initializing
  • 62354: Remote debugging issues after Node 10.12

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 vscode-eslint:

Contributions to vscode-languageserver-node:

Contributions to language-server-protocol:

Contributions to vscode-html-languageservice:

Contributions to vscode-css-languageservice:

Contributions to vscode-json-languageservice:

Contributions to debug-adapter-protocol:

Contributions to vscode-debugadapter-node:

Contributions to vscode-chrome-debug-core:

  • @digeff
    • We adapt to the latest version of Node.js which uses file:/// and we don't send sourceRef for files that exist PR #373
    • Fix not hitting BPs on the first line of NTVS unit tests PR #369
    • Fix node not hitting breakpoints in network paths PR #368
  • @rdegelo
    • Improving Debug Console Styling. Adding underline and background support PR #374
    • Added support for basic color escape sequencies on Debug Console PR #367

Contributions to vscode-generator-code:

Contributions to vscode-vsce:

Contributions to vscode-extension-samples:

Contributions to vscode-recipes:

Contributions to inno-updater:

Contributions to localization:

There are almost 1400 members in the Transifex VS Code project team with about 100 active contributors every month. We appreciate your contributions, either by providing new translations, voting on translations, or suggesting process improvements.

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

  • Bosnian: Dario Fuzinato.
  • Bulgarian: Любомир Василев.
  • Catalan: joanmiro pisa.
  • Czech: Vít Staniček, Kryštof Černý, Michal Franc.
  • Dutch: Gerald Versluis, Vincent Verbist.
  • English (United Kingdom): Matthew John Cheetham, Alexander Ogilvie.
  • Finnish: Petri Niinimäki, Feetu Nyrhinen.
  • French: Antoine Griffard, Adrien Clerbois.
  • German: J.M. Rütter, Volkmar Rigo.
  • Greek: Dimitris Siakavelis, Christos Koutsiaris.
  • Hindi: Ashwini Gupta, Bimal ., Brahma Dev, Rahul Bhammarker.
  • Hungarian: Tar Dániel.
  • Chinese Simplified: Joel Yang, pluwen, Zijian Zhou, Simon Chan.
  • Chinese Traditional: Duran Hsieh, Poy Chang, Alan Tsai, Kevin Yang, Winnie Lin.
  • Indonesian: Rizki A. Wibowo, Laurensius Dede Suhardiman, Fahmi Irsyad khairi, Wildan Mubarok, G-RiNe Project, Pratikto Ariestyadi, Joshua Siagian, William Tantiono, Herman Prawiro, Febrian Setianto (Feber), Angger Rafi Akbar, Joseph Aditya P G, Oka bRionZ, rodin.
  • Italian: Alessandro Alpi, Riccardo Cappello, Marco Dal Pino, Roberto Albano, Andrea Dottor, Luigi Bruno.
  • Japanese: Shunya Tajima, Yuichi Nukiyama, Satoshi Kajiura, Yoshihisa Ozaki.
  • Kannada: Sanjay !.
  • Korean: Kyunghee Ko, Junseong Jang.
  • Lithuanian: Martynas Jusys.
  • Malayalam: Ajith S Punalur, Anand Chalakkal Jose Mohan, Kiren Paul.
  • Norwegian BokmÃ¥l: Espen Klein Nilsen.
  • Polish: Artur, Andrzej Supermocny, Jan Bońkowski, Mateusz Wyczawski, Warchlak.
  • Portuguese (Brazil): Rodrigo Crespi, Roberto Fonseca, Danilo Dantas, Thiago Aragão, Thiago Moreira de Souza Arrais, Atílio Dadalto, Marcelo Fernandes, Douglas Heydt, Robson Cassiano, Lucas Miranda, Thiago Custodio.
  • Portuguese (Portugal): Diogo Barros, António Santos, Antonio Lourenco.
  • Russian: Ivan Kuzmenko, Roman Slauta, Michael Crane.
  • Spanish: José M. Aguilar, Matias Menich, Alberto Poblacion, Daniel J. Pérez Nieto, Andrés Reyes Galgani.
  • Tamil: Nadar Solomon Sunder, Sarath Jasrin, Sakthi Raj, rajakvk, Avinash, ஜெகன் லங்கா சாமி துரை, Anand AV, Jeyanthinath Muthuram, Narayanan Singaram.
  • Telugu: Rama Chandu, Hari Jujjavarapu, Sai Pavan Koundinya Upadhyayula.
  • Ukrainian: Svitlana Galianova, Borys Lebeda, Dmytro Kyrychuk, Victor Kubrak, Volodymyr Holovka.
  • Urdu: Haseeb Anwer, Saqib Ameen, Ahmad Awais.
  • Vietnamese: Thanh Phu, Daniel Nguyen, Nguyễn Nhật Tân, Hung Nguyen, Vuong.