|
|
|
@ -19,11 +19,11 @@ Welcome to the June 2020 release of Visual Studio Code. There are a number of up
|
|
|
|
|
* **[Single view Source Control](#single-view)** - All repositories rendered in a single view.
|
|
|
|
|
* **[Edit object settings](#edit-object-settings-from-the-settings-editor)** - Edit non-nested object settings from the Settings editor.
|
|
|
|
|
* **[Improved TypeScript 4.0 support](#typeScript-4.0-support)** - Indicator for deprecated symbols, context while refactoring.
|
|
|
|
|
* **[New HexEditor extension features](#hex-editor)** - Edit support and large file optimization.
|
|
|
|
|
* **[New HexEditor extension](#hex-editor)** - Edit files in hexadecimal format from within VS Code.
|
|
|
|
|
* **[Updates to Notebooks](#notebooks)** - Improved UX and undo/redo capabilities.
|
|
|
|
|
* **[Introductory Remote Development tutorials](#remote-development)** - Learn to develop inside Containers and use WSL.
|
|
|
|
|
* **[CMake tutorial](#cmake-tools-for-c++)** - New tutorial for developing C++ applications with CMake.
|
|
|
|
|
* **[Java Pack Installer for macOS](#java-pack-installer-for-macos)** - Get set up to develop in Java in VS Code on MacOS.
|
|
|
|
|
* **[Remote Development tutorials](#remote-development)** - Learn to develop over SSH, inside Containers, and in WSL.
|
|
|
|
|
* **[CMake tutorial](#documentation-and-extensions)** - New tutorial for developing C++ applications with CMake.
|
|
|
|
|
* **[Java Pack Installer for macOS](#java-pack-installer-for-macos)** - Get set up to develop in Java in VS Code on macOS.
|
|
|
|
|
|
|
|
|
|
>If you'd like to read these release notes online, go to [Updates](https://code.visualstudio.com/updates) on [code.visualstudio.com](https://code.visualstudio.com).
|
|
|
|
|
|
|
|
|
@ -33,25 +33,31 @@ Welcome to the June 2020 release of Visual Studio Code. There are a number of up
|
|
|
|
|
|
|
|
|
|
This milestone, we again received helpful feedback from our community, which helped us identify and tackle many [accessibility issues](https://github.com/microsoft/vscode/issues?q=label%3Aaccessibility+milestone%3A%22June+2020%22+is%3Aclosed). Highlights:
|
|
|
|
|
|
|
|
|
|
* Compact folders in Explorer now properly narrate expanded, collapsed state and the aria-level.
|
|
|
|
|
* Compact folders in the File Explorer now properly narrate expanded, collapsed state, and the ARIA level.
|
|
|
|
|
* Screen readers can now update cursor offset in the editor. As a result, the screen reader "Say All" command should work better when stopped and resumed.
|
|
|
|
|
* Same aria live messages will now properly be re-read by the screen reader.
|
|
|
|
|
* Same ARIA live messages will now properly be re-read by the screen reader.
|
|
|
|
|
|
|
|
|
|
## Workbench
|
|
|
|
|
|
|
|
|
|
### Edit object settings from the settings editor
|
|
|
|
|
|
|
|
|
|
Before, the Settings editor could only be used to edit the settings of primitive types, like strings and booleans. Now, you can edit non-nested object settings from the Settings editor. Extension authors can leverage this functionality to increase the visibility of these kinds of settings.
|
|
|
|
|
Before, the Settings editor could only be used to edit the settings of primitive types, like strings and booleans, and you needed to edit `settings.json` directly for more complicated settings types. Now, you can edit non-nested object settings from the Settings editor. Extension authors can use this functionality to increase the visibility of these kinds of settings.
|
|
|
|
|
|
|
|
|
|
#### Before
|
|
|
|
|
**Before**
|
|
|
|
|
|
|
|
|
|
![Object setting in the settings editor](images/1_47/object-settings-editor-before.jpg)
|
|
|
|
|
In the Settings editor:
|
|
|
|
|
|
|
|
|
|
![Object setting in the old Settings editor](images/1_47/object-settings-editor-before.jpg)
|
|
|
|
|
|
|
|
|
|
And in `settings.json`:
|
|
|
|
|
|
|
|
|
|
![Object setting in the JSON editor](images/1_47/object-settings-json-before.jpg)
|
|
|
|
|
|
|
|
|
|
#### After
|
|
|
|
|
**After**
|
|
|
|
|
|
|
|
|
|
![Object setting in the settings editor](images/1_47/object-settings-editor-after.jpg)
|
|
|
|
|
In the Settings editor:
|
|
|
|
|
|
|
|
|
|
![Object setting in the new Settings editor](images/1_47/object-settings-editor-after.jpg)
|
|
|
|
|
|
|
|
|
|
### Select and keep focus in a list view
|
|
|
|
|
|
|
|
|
@ -76,7 +82,7 @@ VS Code for Windows on ARM is now [available](https://aka.ms/win32-arm64-user) f
|
|
|
|
|
|
|
|
|
|
### New search editor arguments
|
|
|
|
|
|
|
|
|
|
The arguments `triggerSearch` and `focusResults` have been added to search editors to allow keybindings to configure whether a search should be run automatically, and further if the results of that search should be start out focused rather than the query.
|
|
|
|
|
The arguments `triggerSearch` and `focusResults` have been added to search editors to allow keybindings to configure whether a search should be run automatically, and if the results of that search should start out focused rather than the query.
|
|
|
|
|
|
|
|
|
|
## Editor
|
|
|
|
|
|
|
|
|
@ -136,17 +142,17 @@ When hovering over a source breakpoint in the BREAKPOINTS view, VS Code now show
|
|
|
|
|
|
|
|
|
|
## Tasks
|
|
|
|
|
|
|
|
|
|
### NPM
|
|
|
|
|
### pnpm package manager support
|
|
|
|
|
|
|
|
|
|
`pnpm` is now a valid choice for the `npm.packageManager` setting.
|
|
|
|
|
[pnpm](https://pnpm.js.org) is now a valid choice for the `npm.packageManager` setting, along with `npm` and `yarn`, to run your scripts.
|
|
|
|
|
|
|
|
|
|
## Source Control
|
|
|
|
|
|
|
|
|
|
### Single View
|
|
|
|
|
### Single view
|
|
|
|
|
|
|
|
|
|
The Source Control view has been consolidated into a single view:
|
|
|
|
|
|
|
|
|
|
![View & Sort in Source Control](images/1_47/scm.png)
|
|
|
|
|
![Source Control with a single view](images/1_47/scm.png)
|
|
|
|
|
|
|
|
|
|
All repositories are rendered in a single view, so you can get a better overview of the entire workspace status. Additionally, the Source Control view can now be moved to the panel and other views can be moved to the Source Control view container.
|
|
|
|
|
|
|
|
|
@ -168,9 +174,9 @@ VS Code now bundles TypeScript 3.9.6. This minor update fixes a few bugs, includ
|
|
|
|
|
|
|
|
|
|
## Extensions
|
|
|
|
|
|
|
|
|
|
### Install VSIX through drag'n'drop
|
|
|
|
|
### Install VSIX through drag and drop
|
|
|
|
|
|
|
|
|
|
VS Code now supports installing an extension VSIX file through drag'n'drop onto the Extensions view.
|
|
|
|
|
VS Code now supports installing an extension VSIX file through drag and drop onto the Extensions view.
|
|
|
|
|
|
|
|
|
|
## Browser support
|
|
|
|
|
|
|
|
|
@ -178,7 +184,7 @@ VS Code now supports installing an extension VSIX file through drag'n'drop onto
|
|
|
|
|
|
|
|
|
|
You can now upload large files and folders to the web version of VS Code and progress will be reported accurately so that you can track the number of bytes that have been uploaded and the upload speed.
|
|
|
|
|
|
|
|
|
|
![Web upload indicator in bottom status bar](images/1_47/web-upload.gif)
|
|
|
|
|
![Web upload indicator in bottom Status bar](images/1_47/web-upload.gif)
|
|
|
|
|
|
|
|
|
|
### Towards text file encoding support
|
|
|
|
|
|
|
|
|
@ -187,7 +193,7 @@ During this milestone, a lot of work went into full support for text encodings i
|
|
|
|
|
* [`iconv-lite`](https://github.com/ashtuchkin/iconv-lite) to read and write encodings
|
|
|
|
|
* [`jschardet`](https://github.com/aadsm/jschardet): to guess encodings from textual content
|
|
|
|
|
|
|
|
|
|
This work will continue in July and should be generally available very soon.
|
|
|
|
|
This work will continue in July and should be generally available soon.
|
|
|
|
|
|
|
|
|
|
## Preview features
|
|
|
|
|
|
|
|
|
@ -207,15 +213,15 @@ We've also improved progress information when turning on sync.
|
|
|
|
|
|
|
|
|
|
This iteration, we've continued improving our support for [TypeScript 4.0](https://devblogs.microsoft.com/typescript/announcing-typescript-4-0-beta/). Some highlights include:
|
|
|
|
|
|
|
|
|
|
Rendering of calls to deprecated symbols in the editor.
|
|
|
|
|
**Highlight calls to deprecated symbols in the editor with strikethrough**
|
|
|
|
|
|
|
|
|
|
![Call to a deprecated function rendered in the editor](images/1_47/ts-deprecated.png)
|
|
|
|
|
|
|
|
|
|
Surfacing reasons why a given refactoring cannot be applied.
|
|
|
|
|
**Explain reasons why a given refactoring cannot be applied**
|
|
|
|
|
|
|
|
|
|
![Displaying the reason a refactoring cannot be applied](images/1_47/ts-refactor-reason.png)
|
|
|
|
|
|
|
|
|
|
Improved auto imports, which you can read about in the [TypeScript 4.0 blog post](https://devblogs.microsoft.com/typescript/announcing-typescript-4-0-beta/#smarter-auto-imports).
|
|
|
|
|
**Improved auto imports** - Read more in the [TypeScript 4.0 blog post](https://devblogs.microsoft.com/typescript/announcing-typescript-4-0-beta/#smarter-auto-imports).
|
|
|
|
|
|
|
|
|
|
You can try out these features today by installing the [TypeScript nightly extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next).
|
|
|
|
|
|
|
|
|
@ -225,13 +231,13 @@ The TypeScript 4.0 beta also brings a new feature that should help reduce the ti
|
|
|
|
|
|
|
|
|
|
When you open a JavaScript or TypeScript file in VS Code, the TypeScript language service determines which project that file belongs to and then loads the associated project for it. Sometimes this project can be quite large, such as with the core VS Code codebase, which consists of many thousands of TypeScript files. While a project is being loaded, VS Code able to handle basic syntax operations, such as getting the document outline and enabling code folding, but it cannot currently provide IntelliSense or other more advanced language features because they depend on understanding the entire project. In order to provide auto imports, for example, the TypeScript language service needs to know all exported symbols in a project.
|
|
|
|
|
|
|
|
|
|
The changes in TypeScript 4.0 make it possible for VS Code provide IntelliSense and other more advanced language features while a large project is still loading. The caveat is that the IntelliSense we can provide is limited to consulting the current file instead of the entire project. This means that features such as suggestions and go to definition will work, but we will only show suggestions from the current file and you can only run go to definition to jump to another symbol in the current file.
|
|
|
|
|
The changes in TypeScript 4.0 make it possible for VS Code provide IntelliSense and other more advanced language features while a large project is still loading. The caveat is that the IntelliSense we can provide is limited to consulting the current file instead of the entire project. This means that features such as suggestions and **Go to Definition** will work, but we will only show suggestions from the current file and you can only run **Go to Definition** to jump to another symbol in the current file.
|
|
|
|
|
|
|
|
|
|
If you work with large JavaScript and TypeScript projects, we are interested in hearing your feedback on this new feature. You can try it today using the [TypeScript nightly extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next). Our hope is that it allows you to start work with your code almost instantly until the more complete, project-wide IntelliSense becomes available.
|
|
|
|
|
|
|
|
|
|
### Undo/Redo for Code Action
|
|
|
|
|
|
|
|
|
|
We are working on being able to undo and redo code actions and refactorings. A prominent sample is Java class rename which makes a textual change as well as renaming the file on disc. This can now be undone but it still requires triggering undo two times. Stay tuned as we further improve this and please provide early feedback.
|
|
|
|
|
We are working on being able to undo and redo Code Actions and refactorings. A prominent example is the Java class rename refactoring, which makes a textual change as well as renaming the file on disk. This can now be undone but it still requires triggering undo two times. Stay tuned as we further improve this and please provide early feedback.
|
|
|
|
|
|
|
|
|
|
## Contributions to extensions
|
|
|
|
|
|
|
|
|
@ -239,7 +245,7 @@ We are working on being able to undo and redo code actions and refactorings. A p
|
|
|
|
|
|
|
|
|
|
**Updated UX**
|
|
|
|
|
|
|
|
|
|
We've updated the visual look of notebook cells for a more compact design. We've also updated the cell selection state to utilize shadows to make the selection more obvious.
|
|
|
|
|
We've updated the visual look of Notebook cells for a more compact design. We've also updated the cell selection state to utilize shadows to make the selection more obvious.
|
|
|
|
|
|
|
|
|
|
![Notebook UX](images/1_47/notebook-ux.gif)
|
|
|
|
|
|
|
|
|
@ -257,7 +263,7 @@ We added support for extensions to contribute to the Undo/Redo stacks. Extension
|
|
|
|
|
|
|
|
|
|
**Create Untitled Notebook**
|
|
|
|
|
|
|
|
|
|
We extended New File command (`kb(workbench.action.files.newUntitledFile)`) to support creating new untitled notebook files. For example, you can use below keybindings to quickly create a GitHub issue notebook and run queries
|
|
|
|
|
We extended New File command (`kb(workbench.action.files.newUntitledFile)`) to support creating new untitled Notebook files. For example, you can use below keybindings to quickly create a GitHub issue Notebook and run queries
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
@ -273,29 +279,29 @@ We extended New File command (`kb(workbench.action.files.newUntitledFile)`) to s
|
|
|
|
|
|
|
|
|
|
**Notebook color tokens**
|
|
|
|
|
|
|
|
|
|
We've also added the following color tokens for notebooks:
|
|
|
|
|
We've also added the following color tokens for Notebooks:
|
|
|
|
|
|
|
|
|
|
* `notebook.cellBorderColor`: The border color for notebook cells
|
|
|
|
|
* `notebook.cellBorderColor`: The border color for Notebook cells
|
|
|
|
|
* `notebook.cellHoverBackground`: The background color of a cell when the cell is hovered
|
|
|
|
|
* `notebook.cellInsertionIndicator`: The color of the notebook cell insertion indicator
|
|
|
|
|
* `notebook.cellInsertionIndicator`: The color of the Notebook cell insertion indicator
|
|
|
|
|
* `notebook.focusedCellBackground`: The background color of a cell when the cell is focused
|
|
|
|
|
* `notebook.focusedCellBorder`: The color of the cell's top and bottom border when the cell is focused
|
|
|
|
|
* `notebook.focusedCellShadow`: The color of the cell shadow when cells are focused
|
|
|
|
|
* `notebook.focusedEditorBorder`: The color of the notebook cell editor border
|
|
|
|
|
* `notebook.focusedEditorBorder`: The color of the Notebook cell editor border
|
|
|
|
|
|
|
|
|
|
**Two new samples show how to support debugging in notebooks**
|
|
|
|
|
**Two new samples show how to support debugging in Notebooks**
|
|
|
|
|
|
|
|
|
|
* [Debugging in a JavaScript Notebook](https://github.com/microsoft/vscode-nodebook/blob/master/README.md)
|
|
|
|
|
|
|
|
|
|
This sample shows how to implement notebook debugging functionality based on existing VS Code debugger extensions.
|
|
|
|
|
This sample shows how to implement Notebook debugging functionality based on existing VS Code debugger extensions.
|
|
|
|
|
|
|
|
|
|
![Running and evaluating notebook cells](images/1_47/debugging-in-nodebook.gif)
|
|
|
|
|
![Running and evaluating JavaScript Notebook cells](images/1_47/debugging-in-nodebook.gif)
|
|
|
|
|
|
|
|
|
|
* [Jupyter Notebook Debugging with the Xeus Kernel](https://github.com/microsoft/vscode-simple-jupyter-notebook/blob/master/README.md)
|
|
|
|
|
|
|
|
|
|
This sample shows how to implement notebook debugging functionality based on the xeus kernel and its native support for the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/).
|
|
|
|
|
This sample shows how to implement Notebook debugging functionality based on the xeus kernel and its native support for the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/).
|
|
|
|
|
|
|
|
|
|
![Running and evaluating notebook cells](images/1_47/debugging-cells.gif)
|
|
|
|
|
![Running and evaluating Jupyter Notebook cells](images/1_47/debugging-cells.gif)
|
|
|
|
|
|
|
|
|
|
### Remote Development
|
|
|
|
|
|
|
|
|
@ -304,6 +310,7 @@ Work continues on the [Remote Development extensions](https://marketplace.visual
|
|
|
|
|
Feature highlights in 1.47 include:
|
|
|
|
|
|
|
|
|
|
* Remote - SSH: Remote server can listen on socket instead of port.
|
|
|
|
|
* Remote - Containers: Prompt to open repository in a volume.
|
|
|
|
|
* Introductory Remote Development tutorials:
|
|
|
|
|
* [Working over SSH](https://code.visualstudio.com/docs/remote/ssh-tutorial)
|
|
|
|
|
* [Developing inside Containers](https://code.visualstudio.com/docs/remote/containers-tutorial)
|
|
|
|
@ -328,9 +335,9 @@ To learn about all the new features and updates, you can see the full [changelog
|
|
|
|
|
|
|
|
|
|
### Hex Editor
|
|
|
|
|
|
|
|
|
|
The [HexEditor](https://marketplace.visualstudio.com/items?itemName=ms-vscode.hexeditor) extension continues to be improved upon to provide a native hex editing experience within VS Code. The major updates to the extension this release include simple editing support (allowing users to undo, redo, edit existing hex cells, and add new cells to the end of the document) and large file optimization allowing users to open files above 18 megabytes which previously wasn't possible.
|
|
|
|
|
The [HexEditor](https://marketplace.visualstudio.com/items?itemName=ms-vscode.hexeditor) extension continues to be improved upon to provide a native hexadecimal editing experience within VS Code. The major updates to the extension this release include simple editing support (allowing users to undo, redo, edit existing hex cells, and add new cells to the end of the document) and large file optimization allowing users to open files above 18 megabytes, which previously wasn't possible.
|
|
|
|
|
|
|
|
|
|
![Hex Editor Editing](images/1_47/hex-editor-editing.gif)
|
|
|
|
|
![Editing with the HexEditor extension](images/1_47/hex-editor-editing.gif)
|
|
|
|
|
|
|
|
|
|
A full list of notable changes can be found in the [README](https://github.com/microsoft/vscode-hexeditor/blob/master/README.md#110). Any feedback or issues experienced can be filed against the [vscode-hexeditor repository](https://github.com/microsoft/vscode-hexeditor/blob/master/README.md#110).
|
|
|
|
|
|
|
|
|
@ -338,11 +345,11 @@ A full list of notable changes can be found in the [README](https://github.com/m
|
|
|
|
|
|
|
|
|
|
### AccessibilityInformation
|
|
|
|
|
|
|
|
|
|
We have finalized the `AccessibilityInformation` in the `TreeItem`, `StatusBarItem`, and `TimelineItem` elements to support screen readers. `AccessibilityInformation` contains a `label` and a `role`. The `label` is read out by a screen reader once the item has focus. `role` of the item defines how a screen reader interacts with it. The `role` should be set in special cases when, for example, a tree-like element behaves like a checkbox. If `role` is not specified VS Code will pick the appropriate `role` automatically.
|
|
|
|
|
We have finalized the `AccessibilityInformation` in the `TreeItem`, `StatusBarItem`, and `TimelineItem` elements to support screen readers. `AccessibilityInformation` contains a `label` and a `role`. The `label` is read out by a screen reader once the item has focus. `role` of the item defines how a screen reader interacts with it. The `role` should be set in special cases when, for example, a tree-like element behaves like a checkbox. If `role` is not specified, VS Code will pick the appropriate `role` automatically.
|
|
|
|
|
|
|
|
|
|
### Fallback message for "go to location"
|
|
|
|
|
|
|
|
|
|
The `editor.action.goToLocations`-command can now show a fallback message when no locations could be found. This allows extensions to implement features like "Go to Super Type" that behave just like built-in features, e.g like "Go to Definition". The snippet below is a full sample of an extension invoking this command:
|
|
|
|
|
The `editor.action.goToLocations` command can now show a fallback message when no locations could be found. This allows extensions to implement features like **Go to Super Type** that behave just like built-in features, for example **Go to Definition**. The snippet below is a full sample of an extension invoking this command:
|
|
|
|
|
|
|
|
|
|
```ts
|
|
|
|
|
vscode.commands.executeCommand(
|
|
|
|
@ -357,7 +364,7 @@ vscode.commands.executeCommand(
|
|
|
|
|
|
|
|
|
|
### Guidelines for improving the single file debug experience
|
|
|
|
|
|
|
|
|
|
For debug extensions that want to improve the single file debug experience by adding a "Run" and/or "Debug" button to the editor, we recommend to follow these guidelines for a consistent look and feel:
|
|
|
|
|
For debug extensions that want to improve the single file debug experience by adding a "Run" and/or "Debug" button to the editor, we recommend following these guidelines for a consistent look and feel:
|
|
|
|
|
|
|
|
|
|
* Contribute Run and/or Debug commands in the package.json (see [Mock Debug](https://github.com/microsoft/vscode-mock-debug/blob/dc3ccfeb2195a1d2e5876f40fc9436b3b6f58a40/package.json#L82-L93)):
|
|
|
|
|
* Use the command titles "Run File"/"Debug File" or "Run Python File"/"Debug Python File".
|
|
|
|
@ -400,7 +407,7 @@ We've introduced a secondary button style to be used when needing to make a butt
|
|
|
|
|
|
|
|
|
|
You can now add [GitHub Workflow badges](https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#adding-a-workflow-status-badge-to-your-repository) to the list of badges of a published extension, since `github.com` was added to the [list of Approved Badge sources](https://code.visualstudio.com/api/references/extension-manifest#approved-badges).
|
|
|
|
|
|
|
|
|
|
![GIthub Workflow badge](images/1_47/github-badge.png)
|
|
|
|
|
![GitHub Workflow badge](images/1_47/github-badge.png)
|
|
|
|
|
|
|
|
|
|
### Enabling Proposed API through argv.json
|
|
|
|
|
|
|
|
|
@ -449,7 +456,7 @@ If `compact` is false or missing, the parent node stays visible (which is the cu
|
|
|
|
|
|
|
|
|
|
### Markdown hovers in trees
|
|
|
|
|
|
|
|
|
|
There is new proposed API that allows the `tooltip` of a `TreeItem` to be a `MarkdownString`. In addition to allowing markdown for the tooltip, there is also a new `resolveTreeItem` on the `TreeDataProvider`. The idea behind `resolveTreeItem` is that properties that might take longer to calculate (currently only the `tooltip`) can be resolved later, instead of calculated up front for every tree item. You can see `resolveTreeItem` and the markdown `tooltip` in use in the [GitHub Pull Requests and Issues extension](https://github.com/microsoft/vscode-pull-request-github/commit/c94ce87cc2f66d372d891ab19052b54f31ae6146#diff-ec21c136b5245a574a4d0925bf536fef).
|
|
|
|
|
There is new proposed API that allows the `tooltip` of a `TreeItem` to be a `MarkdownString`. In addition to allowing Markdown for the tooltip, there is also a new `resolveTreeItem` on the `TreeDataProvider`. The idea behind `resolveTreeItem` is that properties that might take longer to calculate (currently only the `tooltip`) can be resolved later, instead of calculated up front for every tree item. You can see `resolveTreeItem` and the Markdown `tooltip` in use in the [GitHub Pull Requests and Issues extension](https://github.com/microsoft/vscode-pull-request-github/commit/c94ce87cc2f66d372d891ab19052b54f31ae6146#diff-ec21c136b5245a574a4d0925bf536fef).
|
|
|
|
|
|
|
|
|
|
## Engineering
|
|
|
|
|
|
|
|
|
|