This commit is contained in:
gregvanl 2022-10-31 20:45:56 -07:00
Родитель c6b007ba82
Коммит 84372baab3
2 изменённых файлов: 82 добавлений и 74 удалений

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

@ -30,7 +30,7 @@ A "home" view was added to the Command Center to make it easy to discover how to
This short list of modes also provides keybinding hints so that you can jump directly to your most-used modes (for example **Go to File**) without going through the Command Center.
<video src="images/1_73/command-center-home.mp4" placeholder="images/1_73/command-center-home.mp4" autoplay loop controls muted title="Command Center Home View">
<video src="images/1_73/command-center-home.mp4" placeholder="images/1_73/command-center-home.mp4" autoplay loop controls muted title="Command Center Home view">
Sorry, your browser doesn't support HTML 5 video.
</video>
@ -41,12 +41,14 @@ When right-clicking a folder in the Search view's search results, there are now
* Selecting **Restrict Search to Folder** adds the selected folder path(s) to the **files to include** textbox. Adding a path to this textbox will limit search results to ones that fit the listed paths or patterns.
![Using Restrict Search to Folder](images/1_73/restrict-search-to-folder.gif)
_Theme: [GitHub Dark Dimmed](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme)_
_Theme: [GitHub Dark Dimmed](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme) (preview on [vscode.dev](https://vscode.dev/theme/GitHub.github-vscode-theme/GitHub%20Dark%20Dimmed))_
* Selecting **Exclude Folder from Search** adds the selected folder path(s) to the **files to exclude** textbox. Adding a path here will exclude any search results that fit the listed paths or patterns.
![Using Exclude Folder from Search](images/1_73/exclude-folder-from-search.gif)
_Theme: [GitHub Dark Dimmed](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme)_
_Theme: [GitHub Dark Dimmed](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme) (preview on [vscode.dev](https://vscode.dev/theme/GitHub.github-vscode-theme/GitHub%20Dark%20Dimmed))_
### Settings editor Workspace Trust and policy indicators
@ -68,31 +70,31 @@ There is a new setting `outline.collapseItems` that controls the default collaps
### Rearrange the View menu
In the View menu of the application menubar, the final group was a growing list of editor actions. As a means to balance growth of the menu and functionality, we have moved the primarily appearance-related items under the Appearance submenu. Word Wrap and Sticky Scroll have been left in their original positions.
In the View menu of the application menubar, the final group was a growing list of editor actions. As a means to balance growth of the menu and functionality, we have moved the primarily appearance-related items under the **Appearance** submenu. The **Word Wrap** and **Sticky Scroll** options have been left in their original positions at the bottom of the menu.
![Updated View Menu](images/1_73/new-view-menu.png)
![Updated View menu with Appearance submenu expanded](images/1_73/new-view-menu.png)
_Theme: [GitHub Light Default](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme)_
_Theme: [GitHub Light Default](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme) (preview on [vscode.dev](https://vscode.dev/theme/GitHub.github-vscode-theme/GitHub%20Light%20Default))_
### Rounded corners on input UI
Text inputs, text areas, and dropdowns all now feature rounded corners to match the same styling applied to buttons in a previous release.
![Text input with rounded corners](images/1_73/rounded-corners-inputs.png)
![Text input with rounded corners in the Search input box](images/1_73/rounded-corners-inputs.png)
### Quick Pick list style updates
The list styling used in the Quick Pick UI has been lightly refreshed with rounded corners and left/right margin.
<video src="images/1_73/quick-pick-list-styles.mp4" placeholder="images/1_73/quick-pick-list-styles.mp4" autoplay loop controls muted title="Quick Pick List Styles">
<video src="images/1_73/quick-pick-list-styles.mp4" placeholder="images/1_73/quick-pick-list-styles.mp4" autoplay loop controls muted title="Quick Pick list styles">
Sorry, your browser doesn't support HTML 5 video.
</video>
### Updated Codicons for list views
### Updated codicons for list views
Flat list and tree list views now use more legible [codicons](https://github.com/microsoft/vscode-codicons).
Flat list and tree list views now use more legible [codicons](https://github.com/microsoft/vscode-codicons) to represent the active list type.
<video src="images/1_73/list-icon-styles.mp4" placeholder="images/1_73/list-icon-styles.mp4" autoplay loop controls muted title="Update list view icons">
<video src="images/1_73/list-icon-styles.mp4" placeholder="images/1_73/list-icon-styles.mp4" autoplay loop controls muted title="Updated list view icons">
Sorry, your browser doesn't support HTML 5 video.
</video>
@ -100,16 +102,15 @@ Flat list and tree list views now use more legible [codicons](https://github.com
The Secondary Side Bar mimics the theming of the Primary Side Bar in general, but not all theme keys were being picked up properly. The Secondary Side Bar now properly uses the `"sideBar.foreground"` theme key.
![Secondary Side Bar Foreground](images/1_73/secondary-sidebar-foreground.png)
![Secondary Side Bar with a pink foreground color matching the Primary Side Bar](images/1_73/secondary-sidebar-foreground.png)
_Theme: [GitHub Light Default](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme)_
_Theme: [GitHub Light Default](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme) (preview on [vscode.dev](https://vscode.dev/theme/GitHub.github-vscode-theme/GitHub%20Light%20Default))_
### No more 'Too many folding ranges' notifications
For performance reasons, we limit the number of folding ranges shown in the editor to 5000. The limit can be configured by the setting `editor.foldingMaximumRegions`.
When the limit is exceeded we used to show a notification. Instead we now use the language status to show the information.
For performance reasons, we limit the number of folding ranges shown in the editor to 5000. The limit can be configured by the setting `editor.foldingMaximumRegions`. When the limit is exceeded, VS Code used to show a notification. Now the language status hover in the Status bar shows that information.
![folding limit warning in the language status](images/1_73/folding-limit-warning.png)
![Folding limit warning in the language status](images/1_73/folding-limit-warning.png)
### Default folding provider
@ -129,13 +130,13 @@ The following example sets the folding provider from the (hypothetical) extensio
Historically, word wrapping was disabled outright when in accessibility mode to prevent a degraded screen reader experience. This has been fixed and can be enabled via `editor.wordWrap`.
### Setting Log Level per Log Output Channel
### Setting log level per output channel
You can now set log level per log output channel using the command `Developer: Set Log Level...`. This is useful when you want to see more logs only from a specific log output channel.
You can now set log level per log output channel using the command **Developer: Set Log Level...**. This is useful when you want to see more logs only from a specific log output channel. The command will first show the list of output channels and after selecting one, you'll be prompted to set the log level.
![Configure Log Level per Log output channel](images/1_73/log-level-output-channel.png)
![Developer: Set Log Level command dropdown list of output channels](images/1_73/log-level-output-channel.png)
You can also set log level per extension from the command line. This is useful when you want to see more logs from a specific extension. For example the following script allows you to start VS Code with default log level set to `debug` for the log output channels from the Git extension.
You can also set log level per extension from the command line. This is useful when you want to see more logs from a specific extension. For example, the following script allows you to start VS Code with default log level set to `debug` for the log output channels from the Git extension.
```bash
code --log vscode.git:debug
@ -145,42 +146,45 @@ code --log vscode.git:debug
This milestone we continued polishing the merge editor. This update contains several bugfixes and some new features.
#### Accepting Both Sides Appends Conflicting Lines
#### Accepting both sides appends conflicts
With this release, both *Accept Incoming* and *Accept Current* can always be clicked. When both options are taken, the merge editor just appends the corresponding changed lines (note that `RelativePattern` is imported twice):
With this release, both **Accept Incoming** and **Accept Current** can always be selected. When both options are taken, the merge editor appends the corresponding changed lines (note that `RelativePattern` is imported twice):
![A screen recording of how both sides are accepted](./images/1_73/merge-accept-both.gif)
![A screen recording of how both sides are accepted](images/1_73/merge-accept-both.gif)
When the conflict can be resolved without conflicts on a character level, the option `Accept Combination` is shown and can be used to automatically resolve the conflict (note that both symbols are imported in a single import statement):
When the conflict can be resolved without conflicts on a character level, the option **Accept Combination** is shown and can be used to automatically resolve the conflict (note that both symbols are imported in a single import statement):
![A screen recording of how a combination is accepted](./images/1_73/merge-accept-combination.gif)
![A screen recording of how a combination is accepted](images/1_73/merge-accept-combination.gif)
#### Diff Decorations Against Base
#### Diff decorations against base
When the base view is opened, a diff is shown between the currently focused side and base. This can be used to better understand the changes in *Incoming* and *Current*.
When the base view is opened, a diff is shown between the currently focused side and base. This can be used to better understand the changes in **Incoming** and **Current**.
![A screen recording of how a diff between incoming, current and base is shown](./images/1_73/compare-with-base.gif)
![A screen recording of how a diff between incoming, current, and base is shown](images/1_73/compare-with-base.gif)
#### Diff Algorithm Improvements
#### Diff algorithm improvements
The default diff algorithm for the merge editor has been changed. The new diff algorithm is optimized for merge scenarios. In common cases, the number of hunks are minimized and insertion positions are optimized. In case the new algorithm causes problems, the setting `"mergeEditor.diffAlgorithm": "smart"` can be used to switch back to the previous algorithm.
The following screenshots demonstrate the improvements for insertions (note that both diffs are correct):
Old behavior:
![](./images/1_73/diff-algorithm-before.png)
![The old behavior highlights across both the new and existing text](images/1_73/diff-algorithm-before.png)
New behavior:
![](./images/1_73/diff-algorithm-after.png)
Note that this diff algorithm is currently only available in the merge editor. Use `"diffEditor.diffAlgorithm": "experimental"` when this diff algorithm should also be used in the classical diff editor.
![The new behavior highlights just the new text](images/1_73/diff-algorithm-after.png)
#### Navigate Through Conflicts
Note that this diff algorithm is currently only available in the merge editor. Use `"diffEditor.diffAlgorithm": "experimental"` when this diff algorithm should also be used in the regular diff editor.
The conflict counter can now be clicked to jump to the next unhandled conflict:
#### Navigate through conflicts
![Clicking on the conflict counter jumps to the next conflict](./images/1_73/merge-conflict-counter.gif)
The conflict counter can now be selected to jump to the next unhandled conflict:
### Tree command: `list.collapseAllToFocus`
![Clicking the conflict counter jumps to the next conflict](images/1_73/merge-conflict-counter.gif)
### New list.collapseAllToFocus tree view command
A new command `list.collapseAllToFocus` lets you recursively collapse the currently focused tree item. This is useful when you want to collapse all children of a tree item.
@ -192,7 +196,7 @@ Tired of accidentally breaking links or images in your Markdown when you move or
With this new setting enabled, VS Code will automatically update links and images in Markdown when files are moved or renamed in the VS Code Explorer:
![Markdown file links are updated on move and rename](images/1_73/md-link-update.gif)
![Markdown file links are updated on file move and rename](images/1_73/md-link-update.gif)
You can control the types of files affected using `markdown.updateLinksOnFileMove.include`. By default, it is enabled for all Markdown files and common image file formats.
@ -204,7 +208,7 @@ The new **Markdown: Insert Link to File in Workspace** and **Markdown: Insert I
Sorry, your browser doesn't support HTML 5 video.
</video>
Remember that this is just one option for adding links and images to your Markdown. You can also use [Markdown path completions](https://code.visualstudio.com/docs/languages/markdown#_path-completions) for this or even [drag and drop files from VS Code's explorer](https://code.visualstudio.com/docs/languages/markdown#_drag-and-drop-to-insert-links-and-images) to insert links or images.
Remember that this is just one option for adding links and images to your Markdown. You can also use [Markdown path completions](https://code.visualstudio.com/docs/languages/markdown#_path-completions) for this or even [drag and drop files from VS Code's Explorer](https://code.visualstudio.com/docs/languages/markdown#_drag-and-drop-to-insert-links-and-images) to insert links or images.
### Markdown unused and duplicate link definition diagnostics
@ -212,9 +216,12 @@ Our built-in Markdown validation can now alert to used or duplicated [link defin
![An warning about a duplicate link definition](images/1_73/md-duplicate-link-def.png)
If you want finer grained control of these errors, you can use the `markdown.validate.duplicateLinkDefinitions.enabled` and `markdown.validate.unusedLinkDefinitions.enabled` settings to either disable these errors or change their severity.
If you want finer grained control of these errors, you can use these `markdown.validate` settings to either disable these errors (`ignore`) or change their severity (`warning`, `error`):
We also include a Quick Fix to remove duplicated or unused link definitions.
* `markdown.validate.duplicateLinkDefinitions.enabled`
* `markdown.validate.unusedLinkDefinitions.enabled`
There is also a Quick Fix to remove duplicated or unused link definitions.
### Markdown link occurrence highlighting
@ -238,8 +245,8 @@ When you are in a GitHub or Azure Repos repository on VS Code for the Web, commi
This flow will also honor the following settings:
* `git.branchPrefix` allows you to prepopulate the branch name quick input with a configured prefix
* `"git.branchProtectionPrompt": "alwaysCommitToNewBranch"` allows you to skip the prompt when you attempt to commit to a protected branch and go straight to the quick input for creating a new branch
* `git.branchPrefix` allows you to prepopulate the branch name quick input with a configured prefix.
* `"git.branchProtectionPrompt": "alwaysCommitToNewBranch"` allows you to skip the prompt when you attempt to commit to a protected branch and go straight to the quick input for creating a new branch.
In addition, when you create a new branch, you can bypass the prompt about whether to switch to the newly created branch by configuring `"remoteHub.switchToCreatedBranch": "always"`.
@ -267,7 +274,7 @@ Since auto imports were first implemented in Pylance, we've been getting a lot o
In our [previous](https://devblogs.microsoft.com/python/python-in-visual-studio-code-april-2022-release/#pylint-extension) [releases](https://devblogs.microsoft.com/python/pvsc-sept-2022/#flake8-extension), we announced new [Pylint](https://marketplace.visualstudio.com/items?itemName=ms-python.pylint) and [Flake8](https://marketplace.visualstudio.com/items?itemName=ms-python.flake8) extensions that work in tandem with the Python extension through the Language Server Protocol (LSP) to provide linting. In this release, we display a notification for those still using the Pylint and flake8 features in the Python extension to install these new extensions, as they are our long term planned support for linting.
![Use and install the Pylint extension prompt](images/1_73/Nov2022-PylintPrompt.png)
![A notification recommending the Pylint extension with a button to install it](images/1_73/Nov2022-PylintPrompt.png)
### Jupyter
@ -299,7 +306,7 @@ Work continues on the [GitHub Pull Requests and Issues](https://marketplace.visu
### TypeScript 4.9
This update includes support for the upcoming TypeScript 4.9 release. See the [TypeScript 4.9 iteration plan](https://github.com/microsoft/TypeScript/issues/504574) for more details on what the TypeScript team is currently working on. Some editor tooling highlights:
This update includes support for the upcoming TypeScript 4.9 release. See the [TypeScript 4.9 iteration plan](https://github.com/microsoft/TypeScript/issues/50457) for more details on what the TypeScript team is currently working on. Some editor tooling highlights:
* A new **Sort Imports** command that sorts imports without removing unused ones.
* Running **Go to Definition** on a return statement [now jumps to the function declaration](https://github.com/microsoft/TypeScript/issues/51222).
@ -315,11 +322,10 @@ We have been working the last couple of months to support **Settings Profiles**
You can now see the data that is synced for each profile in the **Sync Activity (Remote)** view. This is useful to understand what data is synced for each profile.
![Synced Profiles](images/1_73/synced-profiles.png)
![Sync Activity (Remote) view showing history of Profiles](images/1_73/synced-profiles.png)
**Note:** This feature is currently available only in the [Insiders](https://code.visualstudio.com/insiders) release of VS Code.
## Extension authoring
### Provide metadata for workspace edits
@ -398,7 +404,7 @@ The new `notebookPreload` proposed contribution point lets extensions contribute
"contributes": {
"notebookPreload": [
{
"type": "jupyter-notebook", // Type of notebook the preload script should be enabled for
"type": "jupyter-notebook", // Type of notebook for the preload script
"entrypoint": "./path/to/preload.js"
}
]
@ -426,7 +432,8 @@ async function renderOutputItem(outputInfo, element, signal){
// Fallback to render `text/html`
const htmlItem = await outputInfo._allOutputItems.find(item => item.mime === 'text/html')?.getItem();
if (htmlItem) {
// Here we can either render the 'text/html' item ourselves or delegate to another renderer
// Here we can either render the 'text/html' item ourselves
// or delegate to another renderer.
const renderer = await ctx.getRenderer('vscode.builtin-renderer');
if (renderer) {
return renderer.renderOutputItem(htmlItem, element, signal);
@ -444,7 +451,7 @@ To further drive telemetry best practices and enhance the telemetry features ext
### Log output channel
In the last milestone, we introduced the `LogOutputChannel` API proposal for creating an output channel that is only used for logging. This iteration, we added `logLevel` property and `onDidChangeLogLevel` event to it. The `logLevel` proeprty represents the current log level of the output channel and the `onDidChangeLogLevel` event is fired when the log level changes for the output channel.
In the last milestone, we introduced the `LogOutputChannel` API proposal for creating an output channel that is only used for logging. This iteration, we added `logLevel` property and `onDidChangeLogLevel` event to it. The `logLevel` property represents the current log level of the output channel and the `onDidChangeLogLevel` event is fired when the log level changes for the output channel.
```ts
/**
@ -452,15 +459,16 @@ In the last milestone, we introduced the `LogOutputChannel` API proposal for cre
*/
export interface LogOutputChannel extends OutputChannel {
/**
* The current log level of the channel. Defaults to application {@link env.logLevel application log level}.
*/
readonly logLevel: LogLevel;
/**
* The current log level of the channel.
* Defaults to application {@link env.logLevel application log level}.
*/
readonly logLevel: LogLevel;
/**
* An {@link Event} which fires when the log level of the channel changes.
*/
readonly onDidChangeLogLevel: Event<LogLevel>;
/**
* An {@link Event} which fires when the log level of the channel changes.
*/
readonly onDidChangeLogLevel: Event<LogLevel>;
...
...
}
@ -471,15 +479,15 @@ We also added `logLevel` property and `onDidChangeLogLevel` event to `env` names
```ts
export namespace env {
/**
* The current log level of the application.
*/
export const logLevel: LogLevel;
/**
* The current log level of the application.
*/
export const logLevel: LogLevel;
/**
* An {@link Event} which fires when the log level of the application changes.
*/
export const onDidChangeLogLevel: Event<LogLevel>;
/**
* An {@link Event} which fires when the log level of the application changes.
*/
export const onDidChangeLogLevel: Event<LogLevel>;
}
```
@ -506,10 +514,13 @@ Note that this feature is currently off by default as we still learn and tune th
### Windows 11 Context menu
In this release, we are adding the `Open with Code Insiders` context menu entry to [Windows 11 context menu](https://blogs.windows.com/windowsdeveloper/2021/07/19/extending-the-context-menu-and-share-dialog-in-windows-11/) for insiders by default. For users, who had previously opted into the context menu when installing the insiders, the entry which would show up in the old style menu `Shift + F10` will now be replaced with the newer entry when updating to the latest insiders. For others, you would need to reinstall insiders and opt-in to enable this menu entry in the setup wizard. Due to the issues we have encountered duing development of this menu entry, we plan to iterate on this feature with insiders for a couple of milestones to gain confidence before we can push this out to stable release for all Windows 11 users.
In this release, we are adding the **Open with Code - Insiders** context menu entry to [Windows 11 context menu](https://blogs.windows.com/windowsdeveloper/2021/07/19/extending-the-context-menu-and-share-dialog-in-windows-11/) for Insiders by default. For users, who had previously opted into the context menu when installing the Insiders, the entry that would show up in the old style menu `Shift + F10` will now be replaced with the newer entry when updating to the latest Insiders. For others, you would need to reinstall Insiders and opt-in to enable this menu entry in the setup wizard. Due to the issues we have encountered during development of this menu entry, we plan to iterate on this feature with Insiders for a couple of milestones to gain confidence before we can push this out to Stable release for all Windows 11 users.
![Windows 11 Context menu Setup](images/1_73/windows11_insiders_context_menu_setup.png)
![Windows 11 Context menu](images/1_73/windows11_insiders_context_menu.png)
![VS Code Install dialog with option to add Open with Code - Insiders action](images/1_73/windows11_insiders_context_menu_setup.png)
The **Open with Code Insiders** action will then be available in Windows File Explorer folder and file context menus.
![Windows 11 folder context menu](images/1_73/windows11_insiders_context_menu.png)
## Notable fixes
@ -589,6 +600,7 @@ Contributions to `vscode-pull-request-github`:
* [@yin1999 (A1lo)](https://github.com/yin1999): fix: use ssh url for ssh protocol upstream [PR #3853](https://github.com/microsoft/vscode-pull-request-github/pull/3853)
Contributions to `vscode-dev-chrome-launcher`:
* [@mirdaki](https://github.com/mirdaki): Add option to set stable or insiders build [PR #20](https://github.com/microsoft/vscode-dev-chrome-launcher/pull/20)
* [@infinitepower18](https://github.com/infinitepower18) Add description and fix blank icon in extension settings [PR #18](https://github.com/microsoft/vscode-dev-chrome-launcher/pull/18)

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

@ -25,9 +25,9 @@ When you edit a `devcontainer.json` in GitHub.com, you'll now get a new inline `
When adding a Dev Container configuration (**Dev Containers: Add Dev Container Configuration Files...** from the Command Palette), you can select from the list of published Templates and Features. Previously only built-in Templates and Features were available.
![Dev Container Template Picker](images/1_73/dev-container-template-picker.png)
![Dev Container Template picker](images/1_73/dev-container-template-picker.png)
![Dev Container Feature Picker](images/1_73/dev-container-feature-picker.png)
![Dev Container Feature picker](images/1_73/dev-container-feature-picker.png)
See [Development Container Templates](https://github.com/devcontainers/templates) and [Development Container Features](https://github.com/devcontainers/features) for more information about the publishing of Templates and Features.
@ -64,7 +64,3 @@ The `devcontainer.json` and `devcontainer-feature.json` now support the `${devco
```
See the [Dev Container ID proposal](https://github.com/devcontainers/spec/blob/0ba05dda33eaa11fd1dfb93ccc09665b4ce7ac00/proposals/devcontainer-id-variable.md) for the details.
## SSH
## WSL