February 2020 (version 1.43) – Visual Studio Code

In this update Workbench Editor Accessibility Languages Debugging Integrated Terminal Tasks Preview features Contributions to extensions Extension authoring Debug Adapter Protocol Language Server Protocol Proposed extension APIs Engineering Notable fixes Thank you

Update 1.43.1: The update addresses these issues.

Update 1.43.2: The update addresses these issues.

Downloads: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap

Welcome to the February 2020 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 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. And for the latest Visual Studio Code news, updates, and content, follow us on Twitter @code!

After a few iterations stabilizing on Insiders, we are shipping Search Editors, which let you view workspace search results in a full-sized editor, complete with syntax highlighting and optional lines of surrounding context. This has been a highly requested feature for some time.

Below is a search for the word 'SearchEditor' with two lines of text before and after the match for context:

Theme: A Touch of Lilac, Font: Hasklig

In a Search Editor, results can be navigated to using Go to Definition actions, such as F12 to open the source location in the current editor group, or K F12 (Windows, Linux Ctrl+K F12) to open the location in an editor to the side. Additionally, double-clicking can optionally open the source location, configurable with the search.searchEditor.doubleClickBehaviour setting.

You can open a new Search Editor with the Search Editor: Open New Search Editor command, or using the Open New Search Editor button at the top of the Search view. Alternatively, you can copy your existing results from a Search view over to a Search Editor with the Open in Editor link added to the top of the results tree, or the Search Editor: Open Results in Editor command.

Note: You can try out the experimental Search Editor: Apply Changes extension to synchronize edits you make in a Search Editor back to source files:

Did you know you could resize two orthogonal sashes simultaneously by grabbing and dragging the intersection between them? This already worked for editor sashes, and now it also works in the edges between editors and views:

Theme: GitHub Sharp, Font: Fira Code

Visual Studio Code for macOS is now notarized by Apple, so you should no longer get the following dialog:

Read the investigation issue and Apple's developer documentation for more details.

Notifications that indicate a long running operation behave slightly differently starting with this release:

The later change helps you know that an operation is continuing to run in the background (such as a long running save operation) after you have dismissed the notification.

Below the operation is still running until the Cancel button is selected:

Theme: Dracula Official, Font: Fira Code

A new setting workbench.editor.untitled.labelFormat lets you control whether untitled editors should use the file contents as the title or not. Possible values are content or name. Configure 'workbench.editor.untitled.labelFormat': 'name' for the previous behavior, where untitled editors would have a short title, such as Untitled-1.

When pasting text into an untitled editor, VS Code now automatically tries to detect the language mode from the first line of text. For example, pasting XML will set the XML mode automatically upon paste if the first line contains the typical XML header .

VS Code supports opening files through protocol links (for example vscode://file/). In this milestone, we've expanded support to include opening folders or workspaces.

The syntax for folders or workspaces is the same as for files:

Welcome views are a new addition to the workbench, which allows a view to create starting experiences for users to create content or configure VS Code, whenever there isn't any meaningful content to be displayed. Some views have already adopted this infrastructure, for example the File Explorer, which will offer to open a folder or clone a Git repository to get you started.

Theme: GitHub Sharp

Thanks to the new Welcome view infrastructure, the Source Control view now provides a better experience for certain situations, in which it would otherwise appear empty. For example, it can now guide users to open folders or clone repositories or to install Git, when no installation is detected.

Theme: GitHub Sharp

There is a new setting, editor.minimap.size, which controls how the minimap uses vertical space:

Here the size is changed from proportional to fit, and then in a smaller file, from fit to fill:

There are now new colors for customizing the minimap and its slider. One of the new colors is minimap.background and when the color is defined to be transparent (lowering the #RRGGBBAA Alpha channel), the minimap will be rendered transparently:

There is a new global toggle, accessible via the Selection > Column Selection Mode menu item. Once this mode is entered, as indicated in the Status bar, the mouse gestures and the arrow keys will create a column selection:

You can also disable Column Selection mode from the Status bar.

The default value of the editor.renderWhitespace setting has changed from none to selection. Whitespace characters will now be rendered on highlighted text by default.

Here the tab and space whitespace characters are displayed in the selected region:

There is now more control over the behavior of the Go to Definition mouse gesture. By default, Go to Definition via mouse opens a separate editor but with the new setting editor.definitionLinkOpensInPeek as true, the gesture will open in a Peek view.

There's a new setting Editor: Unfold On Click After End of Line (editor.unfoldOnClickAfterEndOfLine) that controls what happens when you click in the empty space to the right of a folded line (after the ...). When set to true, you can click anywhere after the text on the folded line and not worry about exactly selecting the ellipses (...). By default, this option is off.

When undoing a rename or a Code Action that affects multiple files, VS Code will now allow you to undo the change in all the affected files.

A prompt will be presented when undoing a cross-file edit:

Note: File operations, like renaming a file, are not yet supported. For example, renaming a class name in Java (where the file name gets renamed as well) is not yet supported with cross-file undo.

The existing editor.rulers setting has been extended to allow defining rulers that have custom colors. In the following screenshot, there is a magenta ruler at column 80 and a red one at column 90:

It is now possible to reserve whitespace (number of pixels) at the top or bottom of the editor using editor.padding.top and editor.padding.bottom.

Here is the editor with a top padding of 50 pixels:

When trying to scroll vertically using a modern touchpad, it oftentimes happens that the file scrolls horizontally as well. There is now a new setting, editor.scrollPredominantAxis (which is set to true by default) which blocks "diagonal" scrolling. This forces scrolling gestures to be either vertical or horizontal (based on the highest absolute scroll delta), but never diagonal.

With 1.42, Shift+Insert was modified to paste from the selection clipboard. We received a lot of feedback that this was breaking existing muscle-memory and so we decided to roll back and have Shift+Insert paste from the regular clipboard, as before.

With the help of the community, we have been working on making VS Code accessible on Linux with the Orca screen reader. Orca and Chromium are still actively working on screen reader support, so there are a couple of things needed in order to have this fully working:

After enabling that setting, VS Code should work with the Orca screen reader.

VS Code now bundles TypeScript 3.8.3. This major update brings support for new language features including ECMAScript private fields, top-level await expressions, and the export * as ns syntax, along with many tooling features and improvements. The update also fixes a number of important bugs.

You can read more about TypeScript 3.8 on the TypeScript blog.

You can use the new Convert to template string refactoring for JavaScript and TypeScript to quickly convert string concatenations to template strings:

TypeScript 3.8 brings call hierarchy support in JavaScript and TypeScript.

IntelliSense now renders JS Doc @link inline tags for http and https links. In the example image below, notice how the @link for lightbulb menu is rendered in the hover:

@link to URLs work for both JavaScript and TypeScript and are rendered as clickable links in hovers, suggestion details, and signature help.

Semantic highlighting is now on by default for TypeScript and JavaScript. Semantic highlighting is provided by the TypeScript language server and goes on top of the syntax highlighting based on TextMate grammars. The default syntax (TextMate) highlighter classifies many tokens as variables and these are now resolved into namespaces, classes, parameters, and so on.

Semantic highlighting is controlled by the following setting:

When associating file names to schemas, you can now also use exclusion patterns. Exclusion patterns start with '!'. To match, at least one pattern needs to match and the last matching pattern must not be an exclusion pattern.

User studies revealed that new users have difficulties finding how to run their programs in VS Code. One reason is that the existing "Debugging" functionality is not something that they relate to "Running" a program. For that reason, we are making "Run" more prominent in the UI.

The VS Code Debug Console now supports output grouping. Debug extensions can indicate when Debug Console output should be grouped together under a common parent. For now, only the Mock Debug extension implements output grouping, but soon other debug extensions will follow - most notably the JavaScript debugger.

You can now turn off history suggestions in the Debug Console via the new debug.console.historySuggestions setting. By default, history suggestions are on.

The width of characters in the terminal now default to the Unicode 11 widths. What this means to most people is that emojis will be correctly showing up as wide characters.

The terminal has a feature that lets you Alt+Click on a cell and the cursor will navigate to that cell. Historically when in a shell's prompt, this only worked on a single line, even if it was wrapped. This has been improved to work on a full wrapped line.

Theme: Sapphire

Note that this may not work correctly on Windows yet but recent changes to ConPTY should improve this in the future.

The task Quick Pick, shown when the Run Task command is executed, has been updated to show you which task providers are still running. If you don't need tasks from that provider, the Stop Detecting button will immediately show you the tasks that have been detected so far, so you don't have to wait for any slow task providers.

Theme: One Dark Pro, Font: Fira Code

The tasks "runOptions" now includes an "instanceLimit", which specifies the number of instances of a task that are permitted. The default "instanceLimit" is 1.

The "promptString" user input type can have "password": true, which will cause the dropdown input box to obscure the typed content like a password.

Preview features are not ready for release but are functional enough to use. We welcome your early feedback while they are under development.

We have been working the last couple of months to support synchronizing VS Code settings, extensions, and keyboard shortcuts across machines (popular feature request #2743). In this milestone, we are happy to announce that this feature is ready for preview from our next 1.44.0 Insider release. You can now have your preferences synchronized in all your VS Code installs across all your machines. You can also bootstrap VS Code with your personal preferences on a fresh machine with minimal effort.

The following video demonstrates applying extensions and settings locally on a new machine:

Currently Settings, Keyboard Shortcuts, Extensions, and the Display Language are synchronized but we are planning to add more. You can review our list of proposed Setting Sync features.

Machine settings (with machine or machine-overridable scopes) are not synchronized by default. You can also add or remove settings in this list from the Settings editor or using the setting sync.ignoredSettings.

Theme: GitHub Sharp

Keyboard Shortcuts are synchronized per platform by default. If your keyboard shortcuts are platform-agnostic, you can synchronize them across platforms by disabling the setting sync.keybindingsPerPlatform.

All built-in and installed extensions are synchronized along with their global enablement state. You can skip synchronizing an extension, either from the Extensions view or using the setting sync.ignoredExtensions.

Theme: GitHub Sharp

Read the original:
February 2020 (version 1.43) - Visual Studio Code

Related Post

Reviewed and Recommended by Erik Baquero
This entry was posted in Dracula. Bookmark the permalink.

Comments are closed.