This commit is contained in:
gregvanl 2022-08-03 22:20:00 -07:00
Родитель 67bc43584a
Коммит 5849cab303
2 изменённых файлов: 60 добавлений и 61 удалений

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

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:91e72f87efdd163f428f49fd6b96d0250d908836c86857ec30c64e5e1bdfa5b6
size 38590
oid sha256:661ff77dd5c4a77b32d2fad7b4f390aeaa7e60bbc2f0c3d53a76f1877d503db9
size 39788

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

@ -13,13 +13,13 @@ DownloadVersion: 1.70.0
Welcome to the June 2022 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include:
* **[Title bar customization](#easier-title-bar-customization)** - Hide/show menus, Command Center, or layout control.
* **[Title bar customization](#easier-title-bar-customization)** - Hide/show menu bar, Command Center, or layout control.
* **[Fold selection](#fold-selection)** - Create your own folded regions in the editor.
* **[Search multi-select](#search-multiple-selection)** - Select and then act on multiple search results.
* **[Tree view search and filtering](#tree-find-control)** - Find in tree views such as the Find Explorer.
* **[Terminal improvements](#terminal)** - Shell integration on by default, custom tab colors and icons.
* **[Command line option --merge](#command-line-option-merge)** - Use VS Code as your default merge tool.
* **[Notebooks: Go to Most Recently Failed Cell](#go-to-most-recently-failed-cell)** - Jump to directly notebook errors.
* **[Tree view search and filtering](#tree-find-control)** - Find and filter in tree views such as the Find Explorer.
* **[Terminal improvements](#terminal)** - Shell integration on by default, extended PowerShell keybindings.
* **[Command line option --merge](#command-line-option-merge)** - Use the 3-way merge editor as your default merge tool.
* **[Notebooks: Go to Most Recently Failed Cell](#go-to-most-recently-failed-cell)** - Jump directly to notebook errors.
* **[Python Get started experience](#python)** - Quickly install and configure Python within VS Code.
* **[Sticky scroll preview](#sticky-scroll)** - New scrolling UI shows current source code scope.
* **[Dev container CLI topic](#development-container-cli)** - Learn about the updated development container CLI.
@ -34,7 +34,7 @@ Welcome to the June 2022 release of Visual Studio Code. There are many updates i
### Easier title bar customization
For those using the custom title bar, the default on Windows, macOS, and the web, you may have noticed that we are introducing more interactive content to the title bar. While there are already settings to hide each of these elements individually, you can now right-click the title bar to access a context menu that toggles the menu bar (not shown on macOS desktop), [Command Center](https://code.visualstudio.com/updates/v1_69#_command-center), and layout controls.
For those using the custom title bar (the default on Windows, macOS, and the web), you may have noticed that we are introducing more interactive content to the title bar. While there are already settings to hide each of these elements individually, you can now right-click the title bar to access a context menu that toggles the menu bar (not shown on macOS desktop), [Command Center](https://code.visualstudio.com/updates/v1_69#_command-center), and layout controls.
![title bar context menu](images/1_70/title-bar-context-menu.png)
@ -42,7 +42,7 @@ For Windows users expecting the system context menu, the menu can still be trigg
![system context menu](images/1_70/system-context-menu.png)
For Linux users, due to [issue #156397](https://github.com/microsoft/vscode/issues/156397), the empty space in the title bar will not open a context menu. You must right-click one of the items in the title bar that you would like to hide.
For Linux users, due to [issue #156397](https://github.com/microsoft/vscode/issues/156397), the empty space in the title bar will not open a context menu. You must right-click on one of the items in the title bar that you would like to hide.
### Improved menu bar folding
@ -80,9 +80,9 @@ The folding controls in the gutter can now be hidden with the setting `"editor.s
We continued polishing the new 3-way merge editor and enabled it by default in this release. The merge editor can be opened by clicking on a conflicting file in the Source Control view.
Highlights are commands to accept all changes from one side, improved context menus, tweaked diff colors, and the greater emphasis on conflicting versus non-conflicting changes.
Highlights include new commands to accept all changes from one side, improved context menus, enhanced diff colors, and a greater emphasis on conflicting versus non-conflicting changes.
We also started exploring alternative diffing algorithms to improve precision of merge conflicts. If you encounter a suboptimal change highlighting or alignment in either the diff or the merge editor, we would like to track these cases in our GitHub issue tracker!
We also started exploring alternative diffing algorithms to improve precision of merge conflicts. If you encounter suboptimal change highlighting or alignment in either the diff or the merge editor, we would like to record these cases in our GitHub issue tracker!
### Command line option merge
@ -103,7 +103,7 @@ This enables you to use VS Code as a merge tool for Git, for example, if you con
### Search file decorations
Search results in the Search view now feature file decorations and colors on the right to express the file's problems and source control information. This is similar to [how they are already shown in the File Explorer](https://code.visualstudio.com/updates/v1_26#_custom-view-file-resource-decorations).
Search results in the Search view now feature file decorations and colors on the right to express the file's problems and source control information. This is similar to [the file decorations already shown in the File Explorer](https://code.visualstudio.com/updates/v1_26#_custom-view-file-resource-decorations).
![Search file decorations](images/1_70/search-decorations.png)
@ -131,7 +131,7 @@ Tree views, such as the File Explorer, now support the Find control. You can pre
### Arbitrary file creations via New File
The **File** > **New File...** (or **New File...** link on the getting started page) experience has been improved to allow for arbitrary file creation. You can now type a file name in the quick input box to create the file on disk.
The **File** > **New File...** (or **New File...** link on the **Get Started** page) experience has been improved to allow for arbitrary file creation. You can now type a file name in the quick input box to create the file on disk.
![A input box with test.js inputted into it and the entry New File(test.js) selected](images/1_70/new-file.png)
@ -155,11 +155,11 @@ Automatic injection is enabled when the `terminal.integrated.shellIntegration.en
"terminal.integrated.shellIntegration.enabled": "false"
```
This will disable only VS Code's shell integration injection. Even when disabled, if your setup has shell integration enabled for some other terminal VS Code understands, [it will pick those up](https://code.visualstudio.com/docs/terminal/shell-integration#_final-term-shell-integration). If you don't like the command and/or scroll bar decorations, [you can disable just their display](#more-shell-integration-configuration-options), while still taking advantage of the [extra functionality](https://code.visualstudio.com/docs/terminal/shell-integration#_features) shell integration brings.
This will disable only VS Code's shell integration injection. Even when disabled, if your setup has shell integration enabled for some other terminal that VS Code understands, [it will still pick those up](https://code.visualstudio.com/docs/terminal/shell-integration#_final-term-shell-integration). If you don't like the command and/or scroll bar decorations, [you can disable just their display](#more-shell-integration-configuration-options), while still taking advantage of the [extra functionality](https://code.visualstudio.com/docs/terminal/shell-integration#_features) that shell integration brings.
### Simplified shell integration manual install
Previously manual install took several steps and was platform and shell specific. The new manual install uses our `code` CLI to fetch the shell integration script, which means it works cross-platform and when connected to a remote window, meaning you can sync it in your dotfiles and it should just work.
Previously manual install took several steps and was platform and shell specific. The new manual install uses the `code` CLI to fetch the shell integration script and works cross-platform and when connected to a remote window, meaning you can sync it in your dotfiles and it should just work.
```sh
# Manual install on bash
@ -170,7 +170,7 @@ You can read more about how to install shell integration for other shells at [Te
### More shell integration configuration options
The new setting `terminal.integrated.shellIntegration.decorationsEnabled` allows configuring command decorations to display in the `gutter`, the `overviewRuler`, or neither. For easy access, you can modify this setting via **Configure Command Decorations** in a context menu when you click on a decoration (select **Toggle visibility** to display an options dropdown).
The new setting `terminal.integrated.shellIntegration.decorationsEnabled` lets you display command decorations in either the `gutter`, the `overviewRuler`, or neither. For easy access, you can modify this setting via **Configure Command Decorations** in a context menu when you click on a decoration (select **Toggle visibility** to display the options dropdown).
![The command decoration context menu contains the new option Configure Command Decorations](images/1_70/terminal-si-config.png)
@ -178,7 +178,7 @@ You can also configure the default, success, or error icons from the dropdown.
### Default color and icon tab settings
The default icon and terminal tab color can be set now per folder using `terminal.integrated.tabs.defaultIcon` and `terminal.integrated.tabs.defaultColor`.
The default icon and terminal tab color can be set per folder using `terminal.integrated.tabs.defaultIcon` and `terminal.integrated.tabs.defaultColor`.
### Extended PowerShell keybindings
@ -237,33 +237,14 @@ Several improvements were made to terminal rendering when GPU acceleration is en
![These round corner symbols now render as perfect 1/4 circles](images/1_70/terminal-curve-render.png)
* Improved clipping of glyphs when background color changes, this was commonly seen when `npm` output a warning.
* Improved clipping of glyphs when the background color changes, this was commonly seen when `npm` outputs a warning.
![Wide characters like W would sometimes escape the background of a cell. For example, when the background of the text was yellow, the W in "WARN" could show unexpected yellow pixels in the top left. The After image shows that it is now fixed](images/1_70/terminal-render-clip.png)
* Similar to the clipping problem above, an issue where the anti-aliasing in some glyphs would overlap other characters could really degrade the visuals. This problem is most easily illustrated using a background example like above. A pixel in the `k` of `Work` could also escape the bounds of the cell in the other direction, this pixel will no longer appear in the glyph at all since it's removed for being essentially the same color as the background.
* Similar to the clipping problem above, there was an issue where the anti-aliasing in some glyphs would overlap other characters and degrade the visuals. This problem is most easily illustrated using a background example like above. A pixel in the `k` of `Work` could also escape the bounds of the cell in the other direction. This pixel will no longer appear in the glyph at all since it's removed for being nearly the same color as the background.
![A pixel in `k` could overlap with the cell to the right, in this case that pixel may not be rendered at all if the difference in color and the background is small](images/1_70/terminal-render-px.png)
## Tasks
### Filter support for run task command
The **Tasks: Run Task** action supports filtering by task name and type for a more concise and configurable way to select and execute tasks.
For example:
```json
args: {
task: "VS Code - Build"
type: "npm"
}
```
### Improved automatic tasks flow
The Trusted Workspace feature has allowed us to simplify the flow for running automatic tasks. By default, these will run if a folder is trusted and prompt once per folder otherwise. This can be configured via `task.allowAutomaticTasks`.
## Source Control
### Action button improvements
@ -281,21 +262,21 @@ We continued to polish the Source Control action button based on user feedback:
### Improved rebase conflict resolution
This milestone we addressed some paper cuts in the rebase flow when resolving merge conflicts. Users should now be able to continue the rebase operation using the **Commit** button in the Source Control view after resolving all merge conflicts.
This milestone we addressed some smaller issues in the rebase flow when resolving merge conflicts. Users should now be able to continue the rebase operation using the **Commit** button in the Source Control view after resolving all merge conflicts.
### Commit input field spell checking
This milestone we validated that all the necessary extension APIs are available to support spell checking for the commit input field. We reached out to the authors of two popular spell checking extensions and submitted pull requests illustrating how to update their extensions to provide spell checking for the commit input field.
This milestone we confirmed that all the necessary extension APIs are available to support spell checking in the commit input field. We reached out to the authors of two popular spell checking extensions and submitted pull requests illustrating how to update their extensions to provide spell checking for commit description text.
## Debugging
### JavaScript debugging
When you create a launch config to debug a JavaScript/TypeScript program, you can set `"console": "integratedTerminal"` to run that program in a terminal (rather than the process being spawned directly). A few months ago, we noticed that `"args"` in the launch config were partly escaped for the shell, but not entirely. This meant that attempting to pass an argument to your program could accidentally trigger special behavior in your shell. We cleaned this up, then realized that setting arguments that include characters with special meanings for the shell is a useful thing to do, and that some users were relying on this behavior.
When you create a launch config to debug a JavaScript/TypeScript program, you can set `"console": "integratedTerminal"` to run that program in a terminal (rather than the process being spawned directly). A few months ago, we noticed that `"args"` in the `launch.json` configuration were partly escaped for the shell, but not entirely. This meant that attempting to pass an argument to your program could accidentally trigger special behavior in your shell. We cleaned this up, then realized that setting arguments that include characters with special meanings for the shell is a useful thing to do, and that some users were relying on this behavior.
We debated the correct fix and decided that this behavior should be opt-in, and that changes to the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) (DAP) were required. We made [this change to DAP](#argscanbeinterpretedbyshell-for-runinterminalrequest), implemented it in VS Code and in js-debug, and other debug adapters should be soon to follow.
Here's how to use the new behavior in a node launch config:
Here's how to use the new behavior in a node launch configuration:
```jsonc
{
@ -323,11 +304,30 @@ Selecting an item in the picker will focus the debug session in the Call Stack v
![Debug Session Picker Demo](images/1_70/debug-sessions.gif)
## Tasks
### Filter support for run task command
The **Tasks: Run Task** action supports filtering by task name and type for a more concise and configurable way to select and execute tasks.
For example:
```json
args: {
task: "VS Code - Build"
type: "npm"
}
```
### Improved automatic tasks flow
The Trusted Workspace feature allows VS COde to simplify the flow for running automatic tasks. By default, these will run if a folder is trusted and prompt once per folder otherwise. This can be configured via `task.allowAutomaticTasks`.
## Languages
### Keep newlines when formatting JSON
You can now keep the initial line position when formatting a line in a JSON documents. For example, an array containing values on one line will still contain these values on the same line after formatting. To enable this feature, set the option **JSON > Format: Keep Lines** in the Setting editor.
You can now keep the initial line position when formatting a line in a JSON documents. For example, an array containing values on one line will still keep these values on the same line after formatting. Extra line breaks (newlines) in JSON files are also preserved. To enable this feature, set the option **JSON > Format: Keep Lines** in the Setting editor.
## Notebooks
@ -341,7 +341,7 @@ This is useful when you run a group of cells and want to know which cell failed
### Notebook Markdown Preview attachment rendering
It is now possible to render embedded base64 images previously created within a Jupyter notebook.
It is now possible to render embedded base64 images within a Jupyter notebook.
Images pasted into a Jupyter notebook and referenced via `![image alt-text](attachment:image.png)` will now be rendered as intended within VS Code notebooks.
@ -375,13 +375,13 @@ Once set, you can clear the display language by using the **Clear Display Langua
#### Get started experience
The [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) extension walkthrough now smoothly transitions users to installing Python if they need to, and selecting it. Microsoft Store or an appropriate walkthrough tile is opened when Python is not installed and users can now auto-run the displayed instructions. Any prompts related to interpreters are only shown when a user action requires one, and not on start-up. Also, UI prompts have been improved to be more precise about errors and suggested changes.
The [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) extension walkthrough now smoothly transitions users to installing Python if they need to, and selecting it. Microsoft Store or an appropriate walkthrough tile is opened when Python is not installed and users can auto-run the displayed instructions. Any prompts related to interpreters are only shown when a user action requires an interpreter, and not on start-up. Also, UI prompts have been improved to be more precise about errors and suggested changes.
![Python in-product Get started walkthrough](images/1_70/python-get-started.png)
#### Interpreter information in the Status bar
A new setting `python.interpreter.infoVisibility` was added, which controls when information about the selected interpreter is displayed in the Status bar. It can be set to `always` to revert to the old behavior where the selected interpreter is displayed regardless of what file is opened. By default, interpreter information will only be shown when Python-related files are opened (`onPythonRelated`). A warning status is added to indicate situations when the selected interpreter is invalid:
A new setting `python.interpreter.infoVisibility` was added, which controls when information about the selected interpreter is displayed in the Status bar. By default, interpreter information will only be shown when Python-related files are opened (`onPythonRelated`). It can be set to `always` to revert to the old behavior where the selected interpreter is displayed regardless of what file is opened. A warning status is added to indicate situations when the selected interpreter is invalid:
![Interpreter information in the Status bar](images/1_70/interpreter-info.png)
@ -391,19 +391,19 @@ The Python extension now supports automatic debug configuration that analyzes th
The extension recognizes Django, Flask, and FastApi projects, as well as simple Python files.
You can learn more about [automatic debug configuration](https://code.visualstudio.com/updates/v1_45#_automatic-debug-configurations) and [some recent improvements](https://code.visualstudio.com/updates/v1_46#_automatic-debug-configurations-improvements).
You can learn more about [automatic debug configuration](https://code.visualstudio.com/updates/v1_45#_automatic-debug-configurations) and [some of the recent improvements](https://code.visualstudio.com/updates/v1_46#_automatic-debug-configurations-improvements).
![Flask automatic debug configuration](images/1_70/automatic-debug-configuration.gif)
#### Experimental extension: WWBD
There is a new experimental Python extension named [WWBD](https://marketplace.visualstudio.com/items?itemName=brettcannon.wwbd) that acts as a sandbox for environment workflow ideas. As of now, there is a **Create Environment** command for virtual environments to see if a single command can help users set up a new virtual environment (see the WWBD extension page for the full details and other extension features). You can read the [Ideas category](https://github.com/brettcannon/WWBD/discussions/categories/ideas) in the project repository for other ideas that are being considered, including conda support.
There is a new experimental Python extension named [WWBD](https://marketplace.visualstudio.com/items?itemName=brettcannon.wwbd) that acts as a sandbox for Python environment workflow ideas. As of now, there is a **Create Environment** command for virtual environments to see if a single command can help users set up a new virtual environment (see the WWBD extension page for the full details and other extension features). You can read the [Ideas category](https://github.com/brettcannon/WWBD/discussions/categories/ideas) in the project repository for other ideas that are being considered, including conda support.
### Jupyter
#### Copy plot images to clipboard
It is now possible to copy plots in cell outputs to the clipboard with the [Jupyter](https://marketplace.visualstudio.com/itemdetails?itemName=ms-toolsai.jupyter) extension. Make sure you have the correct presentation selected as only PNG output is currently supported:
It is now possible in the [Jupyter](https://marketplace.visualstudio.com/itemdetails?itemName=ms-toolsai.jupyter) extension to copy plots in cell outputs to the clipboard. Make sure you have the correct presentation selected as only PNG output is currently supported:
![Select image/png when copying plot to the clipboard](images/1_70/select-image-png.png)
@ -430,24 +430,23 @@ For more information (and to comment), see this [discussion item](https://github
#### Interactive Window restore
Interactive Window sessions can now be restored across VS Code window reloads by turning on setting `interactiveWindow.restore`.
Interactive Window sessions can now be restored across VS Code window reloads by turning on the setting `interactiveWindow.restore`.
![Interactive Window restore](images/1_70/interactive-window-restore.gif)
**Limitations**: Raw kernel states are not persistent across window reloads (see more information in this [discussion item](https://github.com/microsoft/vscode-jupyter/issues/6420)). If you are using remote Jupyter server, Interactive Window will be connected to previous kernel sessions on reloads.
**Limitations**: Raw kernel states are not persistent across window reloads (see more information in this [discussion item](https://github.com/microsoft/vscode-jupyter/issues/6420)). If you are using a remote Jupyter server, the Interactive Window will be connected to previous kernel sessions on reloads.
#### Loading environment variables from .env files
A number of fixes have been made to loading environment variables from `.env` files, including detecting changes to the `.env` files.
Python kernels will now load environment variables from the file defined in the setting `python.envFile`.
A number of fixes have been made to loading environment variables from `.env` files, including detecting changes to the `.env` files. Python kernels will now load environment variables from the file defined in the setting `python.envFile`.
### GitHub Pull Requests and Issues
There has been more progress on the [GitHub Pull Requests and Issues](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) extension, which allows you to work on, create, and manage pull requests and issues. Highlights of this release include:
* A button to only show the new changes on a pull request since the viewer's last review.
* There is a new button to only show the changes to a pull request since the viewer's last review.
* The new **Commit & Create Pull Request** action in the Source Control view lets you do a Git commit and go to the **Create PR** view in one step.
* `githubPullRequests.pullRequestDescription` can be used to configure the source of PR descriptions.
* The `githubPullRequests.pullRequestDescription` setting can be used to configure the source text for PR descriptions.
Check out the [changelog for the 0.48.0](https://github.com/microsoft/vscode-pull-request-github/blob/main/CHANGELOG.md#0480) release of the extension to see the other highlights.
@ -489,11 +488,11 @@ On window reload, watch tasks can be reconnected to by enabling `task.experiment
We have been working to provide a better experience with **Code Actions** in VS Code. [Code Actions](https://code.visualstudio.com/docs/editor/refactoring#_code-actions-quick-fixes-and-refactorings) include [Refactorings](https://code.visualstudio.com/docs/languages/typescript#_refactoring), Source Actions, and Quick Fixes.
The new experimental Code Actions Widget can be opened from the [context menu](https://code.visualstudio.com/api/ux-guidelines/context-menus) by selecting **Refactor** or **Source Action**, from a lighbulb, or via a Quick Fix. Try it out via the `editor.contrib.experimental.codeActionWidget.enabled` setting. Let us know about any feedback by creating issues in the [VS Code repository](https://github.com/microsoft/vscode/issues) or commenting in [issue #152913](https://github.com/microsoft/vscode/issues/152913).
The new experimental Code Actions control can be opened from the [context menu](https://code.visualstudio.com/api/ux-guidelines/context-menus) by selecting **Refactor** or **Source Action**, from a lighbulb, or via a Quick Fix. Try it out via the `editor.experimental.useCustomCodeActionMenu` setting. Let us know about any feedback by creating issues in the [VS Code repository](https://github.com/microsoft/vscode/issues) or commenting in [issue #152913](https://github.com/microsoft/vscode/issues/152913).
Refactoring previews for Code Actions are also accessible from the new Code Action Widget. Hover over enabled items to view how to preview. Custom keybindings are supported for selection of Code Action, as well as to preview the selection.
Refactoring previews for Code Actions are also accessible from the new Code Action control. Hover over enabled items to view how to preview. Custom keybindings are supported for selection of Code Actions, as well as to preview the selection.
![Code Action Widget demo, showing widget access from the context menu, the lightbulb widget, and Quick Fix.](images/1_70/code-action-all.gif)
![Code Action control demo, showing control access from the context menu, a lightbulb, and Quick Fix.](images/1_70/code-action-all.gif)
In this milestone, we also added support for custom keybindings for Code Actions, which includes Quick Fix (`kb(editor.action.quickFix)`). You can try it out by adding the following snippet with your desired keyboard shortcuts to `keybindings.json`.
@ -626,7 +625,7 @@ Consider this HTML for example:
</div>
```
If the users right clicks on the `textarea`, the following contexts will be set:
If the users right-clicks on the `textarea`, the following contexts will be set:
* `webviewSection == 'editor'` — This overrides `webviewSection` from the parent element.
* `mouseCount == 4` — This is inherited from the parent element.
@ -660,7 +659,7 @@ The view size proposal lets extensions provide weights to the views they contrib
}
```
The size works similarly to the css property `flex-grow`. In the above example, the view with `"size": 2` will be twice the size of the view with `"size": 1`. The size property is only respected if the view container is contributed by the same extension.
The size works similarly to the CSS property `flex-grow`. In the above example, the view with `"size": 2` will be twice the size of the view with `"size": 1`. The size property is only respected if the view container is contributed by the same extension.
### Extensible HTML notebook renderer
@ -703,7 +702,7 @@ export async function activate(ctx: RendererContext<void>) {
}
```
Please test out this new API and let us know what you think!
Test out this new API and let us know what you think!
## Debug Adapter Protocol