This commit is contained in:
Greg Van Liew 2023-10-02 16:22:45 -07:00
Родитель 1a5e466d5a
Коммит ff561bda9c
4 изменённых файлов: 91 добавлений и 79 удалений

Просмотреть файл

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:31419fc6578e87361726c613619e9342399f89e6e9d3245fe7734c1f1332d75c
size 57777

Просмотреть файл

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a189a6aa9841d8905ee042a9d585f0ab4e0b63d6034e9038ef5bcf9d3f3ceda2
size 58708

Просмотреть файл

@ -54,6 +54,14 @@ Let us know what you think!
The `window.density.editorTabHeight` setting allows users to reduce the tab height to a more compact size.
#### Default editor tab height
![Editor tabs with default height](images/1_83/editor-tab-height-default.png)
#### Compact editor tab height
![Editor tabs with compact height](images/1_83/editor-tab-height-compact.png)
### Pinned editor tabs on separate row
A new setting `workbench.editor.pinnedTabsOnSeparateRow` has been added. When activated, pinned tabs are displayed on a separate row above the other tabs. The editor tabs automatically pin or unpin when dragged between the tab rows.
@ -75,27 +83,15 @@ _Theme: [Light Pink](https://marketplace.visualstudio.com/items?itemName=mgwg.li
When the number of editor actions exceeds the available space, they overflow into the `...` **More Actions** menu. We have refined this logic and some vital actions, like close or split editor, are now excepted. This means that they will always be visible, even if the available space is limited.
### Command Center and Debug toolbar
### Color Theme picker now shows theme identifier
There is a new experimental setting that allows you to show the Debug toolbar inside the Command Center. Make sure to have the Command Center enabled and configure the `debug.debugToolbarLocation` setting:
```json
"debug.toolBarLocation": "commandCenter"
```
![Debug Controls inside Command Center](images/1_83/cc-debugtoolbar.png)
_Theme: [GitHub Light Colorblind (Beta)](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme) (preview on [vscode.dev](https://vscode.dev/theme/GitHub.github-vscode-theme))_
### Color Theme picker now shows the ID
The Color Theme picker now shows the localized name of the color theme and the ID next to it. This was done to help users who use a non-English language pack but only know the English name of the theme.
The Color Theme picker now shows the localized name of the color theme and it's string identifier next to it. This was done to help users who use a non-English language pack but only know the English name of the theme.
![Color Theme Picker in Korean displaying English theme IDs next to the localized name](images/1_83/color-theme-id.png)
### Icons for Profiles
### Icons for profiles
You can now associate an icon with a profile. This icon will be shown in the Activity Bar in the place of the **Manage** gear icon. This is useful if you have multiple profiles and want to quickly identify which profile is currently active.
You can now associate an icon with a [profile](https://code.visualstudio.com/docs/editor/profiles). This icon will be shown in the Activity Bar in the place of the **Manage** gear icon. This is useful if you have multiple profiles and want to quickly identify which profile is currently active.
Following picture shows the icon selection dialog while creating a new profile.
@ -107,38 +103,33 @@ Following picture shows the active profile icon in the Activity Bar.
### Comments
### Comment Editor size
### Comment editor size
The Comment editor now expands as lines are added, up to a maximum height dependent on the size of the editor that the comment is in.
![Comment editor expanding as lines are added](images/1_83/expanding_comment_editor.gif)
### Open Comments View on Unresolved Comments
### Open Comments view on unresolved comments
The setting `"comments.openView"` has a new possible value `"firstFileUnresolved"`. Setting `firstFileUnresolved` will cause the Comments view to open the first time per session that a file with unresolved comments is opened.
The setting `comments.openView` has a new possible value `firstFileUnresolved`. Setting `firstFileUnresolved` will cause the Comments view to open the first time per session that a file with unresolved comments is opened.
### Automatically Collpase Resolved
### Automatically collapse resolved comments
By default, when you resolve a comment thread, it will now collapse. This feature can be disabled with the setting `"comments.collapseOnResolve"`.
## Editor
### Nearest Quick Fix keyboard shortcut
There is a new setting that allows you to activate the nearest Quick Fix in a line from `kb(editor.action.quickFix)` (command ID `editor.action.quickFix`), no matter where your cursor is in that line.
The command highlights the source code that will be refactored or fixed with Quick Fixes. Normal Code Actions and non-fix refactorings can still be activated at the cursor location. To enable this feature, check **Code Action Widget: Include Nearby Quickfixes** (`editor.codeActionWidget.includeNearbyQuickfixes`).
![Example of new Quick Fix behavior, showing activation on nearest errors, and showing how all Code Actions can still be utilized at the cursor location](images/1_83/nearest-quick-fix.gif)
### Code Actions on Save and Auto Save
You can now enable Code Actions on Auto Save in the editor. This triggers Code Actions when you save or Auto Save with Window Change or Focus Change. To enable this feature or update your current settings, check **Editor: Code Actions On Save** (`editor.codeActionsOnSave`) and change each Code Action's setting to `always`.
You can now enable Code Actions on Auto Save in the editor. This triggers Code Actions when you save or Auto Save with window change (`onWindowChange`) or focus change (`onFocusChange`). To enable this feature or update your current settings, check **Editor: Code Actions On Save** (`editor.codeActionsOnSave`) and change each Code Action's setting to `always`.
The setting values are also being updated, with the current boolean values to be deprecated in favor of the string equivalent. The options are:
- `explicit`: Triggers Code Actions when explicitly saved. Same as `true`.
- `always`: Triggers Code Actions when explicitly saved and on Auto Saves from Window or Focus Changes.
- `never`: Never triggers Code Actions on save. Same as `false`.
The setting values are also being updated, with the current boolean values to be deprecated in favor of the string equivalent.
The options are:
* `explicit`: Triggers Code Actions when explicitly saved. Same as `true`.
* `always`: Triggers Code Actions when explicitly saved and on Auto Saves from Window or Focus Changes.
* `never`: Never triggers Code Actions on save. Same as `false`.
Boolean values will still be supported in this release.
@ -148,39 +139,44 @@ Boolean values will still be supported in this release.
With the `notebook.gotoSymbols.showAllSymbols` enabled, the **Go to Symbol** Quick Pick will now be populated with all code symbols in the notebook.
<video src="images/1_83/goto-notebook-symbol.mp4" autoplay loop controls muted title="Goto code symbol in notebooks"></video>
<video src="images/1_83/goto-notebook-symbol.mp4" autoplay loop controls muted title="Go to Symbol in notebooks"></video>
### Scrolling on cell execution
You can now configure how much of the next cell is revealed when running `notebook.cell.executeAndSelectBelow` with `Shift+Enter`: the full next cell, just the first line, or don't scroll at all.
You can now configure how much of the next cell is revealed when running `notebook.cell.executeAndSelectBelow` with `kbstyle(Shift+Enter)`: the full next cell, just the first line, or don't scroll at all.
`"notebook.scrolling.revealNextCellOnExecute": "firstLine"` is shown below.
<video src="images/1_83/notebook-scroll-to-firstline.mp4" autoplay loop controls muted title="Goto code symbol in notebooks"></video>
<video src="images/1_83/notebook-scroll-to-firstline.mp4" autoplay loop controls muted title="Notebook scrolling to the first line"></video>
### Whitespace Trimming Support
### Whitespace trimming support
Notebooks now respect the following three whitespace-related settings: `files.trimTrailingWhitespace`, `files.trimFinalNewlines`, and `files.insertFinalNewline`. These settings will be applied on save, including autosave.
Notebooks now respect the existing three whitespace-related settings:
* `files.trimTrailingWhitespace` - Trim trailing whitespace when saving a file.
* `files.trimFinalNewlines` - Trim all newlines after the final newline in a file.
* `files.insertFinalNewline` - Automatically insert a final newline at the end of a file.
These settings will be applied on save, including Auto Save.
<video src="images/1_83/nb-trim-whitespace.mp4" autoplay loop controls muted title="Notebook using files trim whitespace settings on save."></video>
### Finalized Notebook Code Action API
### Finalized notebook Code Action API
Notebooks now fully support contributed Code Actions, and have a dedicated Code Action Kind to support them. If an Extension Author defines an action with a `kind` prefixed `notebook.soure.`, on Save, the notebook editor will run that provided action against the entire notebook, rather than every cell individually. To edit the Code Actions that will run on save, see **Notebook: Code Actions on Save** in the settings UI or edit `"notebook.codeActionsOnSave"` in your `settings.json` file.
Notebooks now fully support contributed Code Actions, and have a dedicated Code Action Kind to support them. If an extension author defines an action with a `kind` prefixed `notebook.source.`, on Save, the notebook editor will run that provided action against the entire notebook, rather than every cell individually. To edit the Code Actions that will run on save, you can set **Notebook: Code Actions on Save** in the Settings editor or edit `"notebook.codeActionsOnSave"` in your `settings.json` file.
The current enablements for Code Actions being updated, with the current boolean values to be deprecated in favor of the enum equivalent. The options are:
- `"explicit"`: Triggers Code Actions when explicitly saved. Same as `true`.
- `"never"`: Never triggers Code Actions on save. Same as `false`.
A third enablement `"always"` will be coming soon to fully match Editor Code Actions, giving users the option to trigger Notebook Code Actions upon multiple autosave reasons: `onFocusChange` and `onWindowChange`.
* `"explicit"`: Triggers Code Actions when explicitly saved. Same as `true`.
* `"never"`: Never triggers Code Actions on save. Same as `false`.
A third option `"always"` will be coming soon to fully match editor Code Actions, letting users trigger notebook Code Actions upon Auto Save settings `onFocusChange` and `onWindowChange`.
## Languages
### Perl 5/Raku
The Perl 5 language has been renamed to Raku, and Raku will be automatically selected as the language for `.raku` files.
## Terminal
The Perl 5 language has been renamed to Raku (language identifier `raku`), and Raku will be automatically selected as the language for `.raku` files.
## Debug
@ -190,7 +186,7 @@ The Perl 5 language has been renamed to Raku, and Raku will be automatically sel
The JavaScript debugger can now debug code compiled into WebAssembly if it includes DWARF debug information. For example, C++ code compiled using [Emscripten]((https://emscripten.org/)) can be debugged:
![](/docs/nodejs/images/nodejs-debugging/wasm-dwarf.png)
![Debugger stopped on a breakpoint in C++ source code](/docs/nodejs/images/nodejs-debugging/wasm-dwarf.png)
_Theme: [Codesong](https://marketplace.visualstudio.com/items?itemName=connor4312.codesong) (preview on [vscode.dev](https://vscode.dev/theme/connor4312.codesong))_
@ -198,17 +194,15 @@ To enable this, you'll want to install the [DWARF debugging extension](https://m
WebAssembly debugging is built upon the [C/++ Debugging Extension](https://github.com/ChromeDevTools/devtools-frontend/tree/main/extensions/cxx_debugging) from the Chromium authors, and was made possible with their support.
#### Improved Call Stack View
#### Improved Call Stack view
Methods and functions in the **Call Stack** view will not include the name of function (`this`) context. For example, a call stack for method `bar` on class `Foo` is now displayed as `Foo.bar`.
## Source Control
## Remote Development
### Source Control Sync View
The [Remote Development extensions](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack), allow you to use a [Dev Container](https://code.visualstudio.com/docs/devcontainers/containers), remote machine via SSH or [Remote Tunnels](https://code.visualstudio.com/docs/remote/tunnels), or the [Windows Subsystem for Linux](https://learn.microsoft.com/windows/wsl) (WSL) as a full-featured development environment.
This milestone's release contains an early version of the "Source Control Sync" view, that is meant to provide details about the local changes that have not been pushed to the remote branch (outgoing) and changes that have not been pulled down locally from the remote branch (incoming). The view also enables users to publish a branch and sync changes (pull/push) with a remote branch. This new view is currently in the experimental phase and we will continue to improve it in the coming milestones based on user feedback. You can enable the new view by enabling the `scm.experimental.showSyncView` setting. Please try it out and provide feedback in [issue #192290](https://github.com/microsoft/vscode/issues/192290).
![Source Control Sync View](images/1_83/scm-sync-view.png)
This release adds the ability to connect to Dev Containers using [Tunnels](https://code.visualstudio.com/docs/remote/tunnels) similar to over SSH. You can learn more about this new feature in the [Remote Development release notes](https://github.com/microsoft/vscode-docs/blob/main/remote-release-notes/v1_83.md).
## Contributions to extensions
@ -222,7 +216,7 @@ We have improved `/tests` - for the Chat view and inline chat. It is now better
Inline chat now keeps all prompts of the current session, which enables you to refer to previous messages and to reply to questions.
<video src="images/1_83/chat-history.mp4" controls title="Multi-turn inline chat session"></video>
<video src="images/1_83/chat-history.mp4" autoplay loop controls muted title="Multi-turn inline chat session"></video>
#### Ask GitHub Copilot defaults to the Chat view
@ -311,6 +305,32 @@ Review the [changelog for the 0.74.0](https://github.com/microsoft/vscode-pull-r
## Preview Features
### Nearest Quick Fix keyboard shortcut
There is a new setting that allows you to activate the nearest Quick Fix in a line from `kb(editor.action.quickFix)` (command ID `editor.action.quickFix`), no matter where your cursor is in that line.
The command highlights the source code that will be refactored or fixed with Quick Fixes. Normal Code Actions and non-fix refactorings can still be activated at the cursor location. To enable this feature, check **Code Action Widget: Include Nearby Quickfixes** (`editor.codeActionWidget.includeNearbyQuickfixes`).
![Example of new Quick Fix behavior, showing activation on nearest errors, and showing how all Code Actions can still be utilized at the cursor location](images/1_83/nearest-quick-fix.gif)
### Source Control Sync view
This milestone's release contains an early version of the "Source Control Sync" view, that is meant to provide details about the local changes that have not been pushed to the remote branch (outgoing) and changes that have not been pulled down locally from the remote branch (incoming). The view also enables users to publish a branch and sync changes (pull/push) with a remote branch. This new view is currently in the experimental phase and we will continue to improve it in the coming milestones based on user feedback. You can enable the new view by enabling the `scm.experimental.showSyncView` setting. Please try it out and provide feedback in [issue #192290](https://github.com/microsoft/vscode/issues/192290).
![Source Control Sync View](images/1_83/scm-sync-view.png)
### Command Center and Debug toolbar
There is a new experimental setting that allows you to show the Debug toolbar inside the Command Center. Make sure to have the Command Center enabled and configure the `debug.debugToolbarLocation` setting:
```json
"debug.toolBarLocation": "commandCenter"
```
![Debug Controls inside Command Center](images/1_83/cc-debugtoolbar.png)
_Theme: [GitHub Light Colorblind (Beta)](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme) (preview on [vscode.dev](https://vscode.dev/theme/GitHub.github-vscode-theme))_
## Extension Authoring
### Support for Unicode character class escapes for string setting validation
@ -358,35 +378,29 @@ If you are using `keytar` directly in your extension still, there are a couple o
* **(recommended)** Use the [SecretStorage API](https://code.visualstudio.com/api/references/vscode-api#SecretStorage) that VS Code provides on the [ExtensionContext](https://code.visualstudio.com/api/references/vscode-api#ExtensionContext). This API is cross-platform and will work on all platforms that VS Code supports. It is also maintained by the VS Code team and will continue to be maintained and has been a part of the VS Code API for years at this point.
* **(not recommended)** You can bundle the [keytar](https://github.com/atom/node-keytar) module with your extension. Keep in mind that `keytar` is a native node module, which means that you will need to [publish a platform specific extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#platformspecific-extensions) for each platform you want to support.
#### --disable-keytar is now deprecated
#### --disable-keytar is renamed to --use-inmemory-secretstorage
The `--disable-keytar` flag disabled persisting secrets on the machine when the `SecretStorage` API was used. This was primarily used in CI environments that often didn't have a keyring configured because without it, VS Code would throw an error when the `SecretStorage` API was used without a keyring available.
Since we've removed `keytar`, this flag needed a new name. We've now marked `--disable-keytar` as deprecated in favor of `--use-inmemory-secretstorage`. In the future we will consider removing `--disable-keytar`, but it's not going away in the near future.
Since we've removed `keytar`, this flag needed a new name. We've now marked `--disable-keytar` as deprecated in favor of `--use-inmemory-secretstorage`. In the future, we will consider removing `--disable-keytar`, but it's not going away in the near future.
Lastly, we want to thank all the incredible extension authors that acted quickly to move off of `keytar` and ensure their users have a great and secure experience with secrets in VS Code!
## Language Server Protocol
New versions of the [Language Server Protocol](https://microsoft.github.io/language-server-protocol)npm packages have been released (protocol@3.17.5, client@9.0.1 and server@9.0.1). Highlights of the realease are:
New versions of the [Language Server Protocol](https://microsoft.github.io/language-server-protocol) npm packages have been released (protocol@3.17.5, client@9.0.1 and server@9.0.1).
Highlights of the release are:
* Added proposed inline completion request.
* Added proposed formatting ranges request.
* Added proposed refresh request for folding ranges. This changed the shape of the folding range feature since the API needs to expose the event emitter. The change is breaking. To get to the provider, you now need to use the following code:
- added proposed inline completion request.
- added proposed formatting ranges request.
- added proposed refresh request for folding ranges. This changed the shape of the folding range feature since the API needs to expose the event emitter. The change is breaking. To get to the provider you now need to use the following code:
```ts
client.getFeature(lsclient.FoldingRangeRequest.method).getProvider(document)?.provider;
```
- various [bug fixes](https://github.com/microsoft/vscode-languageserver-node/milestone/46?closed=1)
## Proposed APIs
Every milestone comes with new proposed APIs and extension authors can try them out. As always, we want your feedback. Here are the steps to try out a proposed API:
1. [Find a proposal that you want to try](https://github.com/microsoft/vscode/tree/main/src/vscode-dts) and add its name to `package.json#enabledApiProposals`.
1. Use the latest [@vscode/dts](https://github.com/microsoft/vscode-dts) and run `npx @vscode/dts dev`. It will download the corresponding `d.ts` files into your workspace.
1. You can now program against the proposal.
You cannot publish an extension that uses a proposed API. There may be breaking changes in the next release and we never want to break existing extensions.
* Various [bug fixes](https://github.com/microsoft/vscode-languageserver-node/milestone/46?closed=1).
## Engineering
@ -406,7 +420,7 @@ Cross origin isolation is now enabled for [vscode.dev](https://vscode.dev). This
### Settings Sync troubleshooting
We have added a new developer command **Developer: Download Settings Sync Activity** that downloads all your Settings Sync activity on cloud and on your local machine including the logs. This will help us troubleshoot issues with Settings Sync. We have developed a new view to browse the downloaded activity. You can open the view by running the command **Settings Sync: Show Synced Data** and enabling **SYNC ACTIVITY (DEVELOPER)** view. You can load the downloaded sync activity by selecting the **Load Sync Activity** button in the view as shown below.
We have added a new developer command **Developer: Download Settings Sync Activity** that downloads all your [Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync) activity, both on cloud and on your local machine, including the logs. This will help us troubleshoot issues with Settings Sync. We have also created a new view to browse the downloaded activity. You can open the view by running the command **Settings Sync: Show Synced Data** and enabling **SYNC ACTIVITY (DEVELOPER)** view. You can load the downloaded sync activity by selecting the **Load Sync Activity** button in the view as shown below.
![Sync activity (developer) view ](images/1_83/sync-activity-developer-view.png)

Просмотреть файл

@ -1,15 +1,7 @@
# September 2023 (version 1.83)
## Core
## SSH
## Tunnels
## Dev Containers
### Connect to Dev Containers over Tunnels
Similar to SSH, you can now connect to Dev Containers over Tunnels. Only the Tunnel machine needs Docker installed, the Dev Container will be built and run on the Tunnel's target machine where the workspace folder needs to be located. Currently the Tunnel machine needs to run Linux for Dev Containers to work, we will remove this limitation in a future milestone.
## WSL