From ebc5fdfee63797000698da7d3fd3e8f94676b918 Mon Sep 17 00:00:00 2001 From: Victor Eke Date: Wed, 15 Jun 2022 11:18:40 +0100 Subject: [PATCH 01/70] docs: remove example reference from faq section Example reference from https://code.visualstudio.com/docs/supporting/faq#_installation-appears-to-be-corrupt-unsupported removed. Issue: https://github.com/microsoft/vscode-docs/issues/5380 --- docs/supporting/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/supporting/faq.md b/docs/supporting/faq.md index b9a8b767d3..b7686e48b0 100644 --- a/docs/supporting/faq.md +++ b/docs/supporting/faq.md @@ -212,7 +212,7 @@ For bugs, feature requests or to contact an extension author, you should use the VS Code does a background check to detect if the installation has been changed on disk and if so, you will see the text **[Unsupported]** in the title bar. This is done since some extensions directly modify (patch) the VS Code product in such a way that is semi-permanent (until the next update) and this can cause hard to reproduce issues. We are not trying to block VS Code patching, but we want to raise awareness that patching VS Code means you are running an unsupported version. [Reinstalling VS Code](/download) will replace the modified files and silence the warning. -You may also see the **[Unsupported]** message if VS Code files have been mistakenly quarantined or removed by anti-virus software (see issue [#94858](https://github.com/microsoft/vscode/issues/94858) for an example). Check your anti-virus software settings and reinstall VS Code to repair the missing files. +You may also see the **[Unsupported]** message if VS Code files have been mistakenly quarantined or removed by anti-virus software. Check your anti-virus software settings and reinstall VS Code to repair the missing files. ## Resolving shell environment fails From d2b13b8f5d18cc8deb75f89a9d0a9a3ace4fe8d3 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:09:13 -0700 Subject: [PATCH 02/70] Update to remove references to unsupported in the title bar --- docs/supporting/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/supporting/faq.md b/docs/supporting/faq.md index b7686e48b0..9ca4ab54b4 100644 --- a/docs/supporting/faq.md +++ b/docs/supporting/faq.md @@ -210,9 +210,9 @@ For bugs, feature requests or to contact an extension author, you should use the ## Installation appears to be corrupt [Unsupported] -VS Code does a background check to detect if the installation has been changed on disk and if so, you will see the text **[Unsupported]** in the title bar. This is done since some extensions directly modify (patch) the VS Code product in such a way that is semi-permanent (until the next update) and this can cause hard to reproduce issues. We are not trying to block VS Code patching, but we want to raise awareness that patching VS Code means you are running an unsupported version. [Reinstalling VS Code](/download) will replace the modified files and silence the warning. +VS Code does a background check to detect if the installation has been changed on disk and if so, you will see the text **[Unsupported]** in Help > About. This is done since some extensions directly modify (patch) the VS Code product in such a way that is semi-permanent (until the next update) and this can cause hard to reproduce issues. We are not trying to block VS Code patching, but we want to raise awareness that patching VS Code means you are running an unsupported version. [Reinstalling VS Code](/download) will replace the modified files and silence the warning. -You may also see the **[Unsupported]** message if VS Code files have been mistakenly quarantined or removed by anti-virus software. Check your anti-virus software settings and reinstall VS Code to repair the missing files. +You may also see the **[Unsupported]** message if VS Code files have been mistakenly quarantined or removed by anti-virus software. Check your anti-virus software (see issue [#94858](https://github.com/microsoft/vscode/issues/94858) for an example) settings and reinstall VS Code to repair the missing files. ## Resolving shell environment fails From 85b250ae47581e068d88bc284fca360f8282574e Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:09:57 -0700 Subject: [PATCH 03/70] Revert other change fully --- docs/supporting/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/supporting/faq.md b/docs/supporting/faq.md index 9ca4ab54b4..6b22a4f1e4 100644 --- a/docs/supporting/faq.md +++ b/docs/supporting/faq.md @@ -212,7 +212,7 @@ For bugs, feature requests or to contact an extension author, you should use the VS Code does a background check to detect if the installation has been changed on disk and if so, you will see the text **[Unsupported]** in Help > About. This is done since some extensions directly modify (patch) the VS Code product in such a way that is semi-permanent (until the next update) and this can cause hard to reproduce issues. We are not trying to block VS Code patching, but we want to raise awareness that patching VS Code means you are running an unsupported version. [Reinstalling VS Code](/download) will replace the modified files and silence the warning. -You may also see the **[Unsupported]** message if VS Code files have been mistakenly quarantined or removed by anti-virus software. Check your anti-virus software (see issue [#94858](https://github.com/microsoft/vscode/issues/94858) for an example) settings and reinstall VS Code to repair the missing files. +You may also see the **[Unsupported]** message if VS Code files have been mistakenly quarantined or removed by anti-virus software (see issue [#94858](https://github.com/microsoft/vscode/issues/94858) for an example). Check your anti-virus software settings and reinstall VS Code to repair the missing files. ## Resolving shell environment fails From cc99b5c6458b252453b54e1810b41a5907e9accb Mon Sep 17 00:00:00 2001 From: gregvanl Date: Thu, 7 Jul 2022 15:27:56 -0700 Subject: [PATCH 04/70] Add 1.70 release notes placeholders --- release-notes/v1_48.md | 2 +- release-notes/v1_70.md | 25 +++++++++++++++++++++++++ remote-release-notes/v1_70.md | 11 +++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 release-notes/v1_70.md create mode 100644 remote-release-notes/v1_70.md diff --git a/release-notes/v1_48.md b/release-notes/v1_48.md index 7acfa57298..2fa38a43ca 100644 --- a/release-notes/v1_48.md +++ b/release-notes/v1_48.md @@ -1,5 +1,5 @@ --- -Order: 57 +Order: TOCTitle: July 2020 PageTitle: Visual Studio Code July 2020 MetaDescription: Learn what is new in the Visual Studio Code July 2020 Release (1.48) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md new file mode 100644 index 0000000000..4a8366d2dd --- /dev/null +++ b/release-notes/v1_70.md @@ -0,0 +1,25 @@ +--- +Order: 79 +TOCTitle: July 2022 +PageTitle: Visual Studio Code July 2022 +MetaDescription: Learn what is new in the Visual Studio Code July 2022 Release (1.70) +MetaSocialImage: 1_70/release-highlights.png +Date: 2022-8-4 +DownloadVersion: 1.70.0 +--- +# July 2022 (version 1.70) + + + +Welcome to the Insiders build. These are the preliminary notes for the July 1.70 release of Visual Studio Code. As we get closer to the release date, you'll find details below about new features and important fixes. + +Until the July milestone release notes are available, you can still track our progress: + +* **[Commit log](https://github.com/Microsoft/vscode/commits/main)** - GitHub commits to the vscode open-source repository. +* **[Closed issues](https://github.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22July+2022%22+is%3Aclosed)** - Resolved bugs and implemented feature requests in the milestone. + +We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new. + + + + diff --git a/remote-release-notes/v1_70.md b/remote-release-notes/v1_70.md new file mode 100644 index 0000000000..0cc7e155f9 --- /dev/null +++ b/remote-release-notes/v1_70.md @@ -0,0 +1,11 @@ +# July 2022 (version 1.70) + +## Development Container specification + +## Core + +## Containers + +## SSH + +## WSL From 06b68cba76f2d82255959451e719d078d1d889da Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 7 Jul 2022 16:06:27 -0700 Subject: [PATCH 05/70] Remove HISTCONTROL edge case This won't be an issue in v1.70 thanks to microsoft/vscode#154363 --- docs/editor/terminal-shell-integration.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/editor/terminal-shell-integration.md b/docs/editor/terminal-shell-integration.md index 45094fc371..e43e67780a 100644 --- a/docs/editor/terminal-shell-integration.md +++ b/docs/editor/terminal-shell-integration.md @@ -183,5 +183,4 @@ There are several cases where automatic injection doesn't work, here are some co PROMPT_COMMAND=prompt ``` -- `$HISTCONTROL` contains the `erasedups` option, this changes functionality of the `history` command that shell integration depends upon. - Some shell plugins may disable VS Code's shell integration explicitly by unsetting `$VSCODE_SHELL_INTEGRATION` when they initialize. From 28e183aa96ae7d25f9a2c8c314732abf4e292e51 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 14 Jul 2022 05:19:37 -0700 Subject: [PATCH 06/70] Update manual install instructions Part of microsoft/vscode#153921 --- docs/editor/terminal-shell-integration.md | 66 ++++++----------------- 1 file changed, 16 insertions(+), 50 deletions(-) diff --git a/docs/editor/terminal-shell-integration.md b/docs/editor/terminal-shell-integration.md index e43e67780a..154a0a4257 100644 --- a/docs/editor/terminal-shell-integration.md +++ b/docs/editor/terminal-shell-integration.md @@ -27,65 +27,31 @@ This standard, easy way will not work for some advanced use cases like in sub-sh ### Manual installation -To manually install shell integration, the VS Code shell integration script needs to run during your shell's initialization. Where and how to do this depends on the shell and OS you're using. +To manually install shell integration, the VS Code shell integration script needs to run during your shell's initialization. Where and how to do this depends on the shell and OS you're using. When using manual install it's recommended to set `terminal.integrated.shellIntegration.enabled` to `false`, though not mandatory. -When using manual install it's recommended to set `terminal.integrated.shellIntegration.enabled` to `false`, though not mandatory. +#### bash -> ℹ️ The method for calling the script will be simplified in the future (see [vscode#153921](https://github.com/microsoft/vscode/issues/153921)) +Add the following to your `~/.bashrc` file. Run `code ~/.bashrc` in bash to open the file in VS Code. -#### Windows - -The script below contains `` which must be replaced by VS Code's installation directory. This defaults to: - -- User install: `$env:HOMEPATH\AppData\Local\Programs\Microsoft VS Code\` -- System install: `C:\Program Files\Microsoft VS Code` - -**pwsh** - - Add the following to your [PowerShell profile](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.2), replacing `` with VS Code's installation directory. Run `code $Profile` in pwsh to open the file in VS Code. - - ```pwsh - if ($env:TERM_PROGRAM -eq "vscode") { - . "\resources\app\out\vs\workbench\contrib\terminal\browser\media\shellIntegration.ps1" - } - ``` - -#### Linux and macOS - -The script below contains `` which must be replaced by VS Code's installation directory. This defaults to: - -- Linux: Find by running `echo "$(readlink -f "$(which code)")../resources"` -- macOS: `/Applications/Visual\ Studio\ Code.app/Contents/Resources` - -**bash** - - Add the following to your `~/.bashrc` file, replacing `` with VS Code's installation directory. Run `code ~/.bashrc` in bash to open the file in VS Code. - - ```sh - if [ "$TERM_PROGRAM" == "vscode" ]; then - . /app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh - fi - ``` +```sh +[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --shell-integration bash)" +``` -**pwsh** +#### pwsh - Add the following to your [PowerShell profile](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.2), replacing `` with VS Code's installation directory. Run `code $Profile` in pwsh to open the file in VS Code. +Add the following to your [PowerShell profile](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.2). Run `code $Profile` in pwsh to open the file in VS Code. - ```pwsh - if ($env:TERM_PROGRAM -eq "vscode") { - . "/app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration.ps1" - } - ``` +```pwsh +if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --shell-integration pwsh)" } +``` -**zsh** +#### zsh - Add the following to your `~/.zshrc` file. Run `code ~/.zshrc` in bash to open the file in VS Code. +Add the following to your `~/.zshrc` file. Run `code ~/.zshrc` in bash to open the file in VS Code. - ```sh - if [[ "$TERM_PROGRAM" == "vscode" ]]; then - . /app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh - fi - ``` +```sh +[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --shell-integration zsh)" +``` ## Features From f58d55fd2fef2c27d18e25dbccd9b53dcf945393 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 14 Jul 2022 05:28:31 -0700 Subject: [PATCH 07/70] Call out for code-insiders --- docs/editor/terminal-shell-integration.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/editor/terminal-shell-integration.md b/docs/editor/terminal-shell-integration.md index 154a0a4257..49190fc1be 100644 --- a/docs/editor/terminal-shell-integration.md +++ b/docs/editor/terminal-shell-integration.md @@ -29,6 +29,8 @@ This standard, easy way will not work for some advanced use cases like in sub-sh To manually install shell integration, the VS Code shell integration script needs to run during your shell's initialization. Where and how to do this depends on the shell and OS you're using. When using manual install it's recommended to set `terminal.integrated.shellIntegration.enabled` to `false`, though not mandatory. +> **Tip:** When using the [Insiders build](https://code.visualstudio.com/insiders), replace `code` with `code-insiders` below. + #### bash Add the following to your `~/.bashrc` file. Run `code ~/.bashrc` in bash to open the file in VS Code. From e62256d92b8d59876b0ac79cc4b6e8f88fb1e00e Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 19 Jul 2022 06:21:13 -0700 Subject: [PATCH 08/70] shell-integration -> locate-shell-integration-path Part of microsoft/vscode#153921 --- docs/editor/terminal-shell-integration.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/editor/terminal-shell-integration.md b/docs/editor/terminal-shell-integration.md index 49190fc1be..03af964bdf 100644 --- a/docs/editor/terminal-shell-integration.md +++ b/docs/editor/terminal-shell-integration.md @@ -36,7 +36,7 @@ To manually install shell integration, the VS Code shell integration script need Add the following to your `~/.bashrc` file. Run `code ~/.bashrc` in bash to open the file in VS Code. ```sh -[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --shell-integration bash)" +[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)" ``` #### pwsh @@ -44,7 +44,7 @@ Add the following to your `~/.bashrc` file. Run `code ~/.bashrc` in bash to open Add the following to your [PowerShell profile](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.2). Run `code $Profile` in pwsh to open the file in VS Code. ```pwsh -if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --shell-integration pwsh)" } +if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --locate-shell-integration-path pwsh)" } ``` #### zsh @@ -52,7 +52,7 @@ if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --shell-integration pwsh)" } Add the following to your `~/.zshrc` file. Run `code ~/.zshrc` in bash to open the file in VS Code. ```sh -[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --shell-integration zsh)" +[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)" ``` ## Features From b5349c8fae088613ab45508ed3c2fa9296f85270 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Wed, 20 Jul 2022 17:37:59 -0700 Subject: [PATCH 09/70] Updates for "not in" operator --- api/references/when-clause-contexts.md | 4 ++-- release-notes/v1_70.md | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/api/references/when-clause-contexts.md b/api/references/when-clause-contexts.md index b4c9fdf38a..5844e56b7b 100644 --- a/api/references/when-clause-contexts.md +++ b/api/references/when-clause-contexts.md @@ -209,9 +209,9 @@ vscode.commands.executeCommand('setContext', 'myExtension.showMyCommand', true); vscode.commands.executeCommand('setContext', 'myExtension.numberOfCoolOpenThings', 4); ``` -## 'in' conditional operator +## 'in' and 'not in' conditional operators -The `in` operator for `when` clauses allows for a dynamic lookup of a context key's value within another context key's value. For example, if you wanted to add a context menu command to folders that contain a certain type of file (or something that can't be statically known), you can now use the `in` operator to achieve it. +The `in` operator for `when` clauses allows for a dynamic lookup of a context key's value within another context key's value. For example, if you wanted to add a context menu command to folders that contain a certain type of file (or something that can't be statically known), you can now use the `in` operator to achieve it. You can use the `not in` operator to check the opposite condition. First, determine which folders should support the command, and the folder name to an array. Then, use the `setContext` command to turn the array into a context key: diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 4a8366d2dd..dd8c48da15 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -20,6 +20,12 @@ Until the July milestone release notes are available, you can still track our pr We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new. +## Extension Authoring + +### 'not in' operator for 'when' clauses + +There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See [this operator's documentation](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) for details. + From ceb30c6a9870a0a2026c341666b1b60f3e33a34e Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 21 Jul 2022 10:00:21 -0700 Subject: [PATCH 10/70] Add Portability vs performance section --- docs/terminal/shell-integration.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/terminal/shell-integration.md b/docs/terminal/shell-integration.md index f4b2b22575..833c083853 100644 --- a/docs/terminal/shell-integration.md +++ b/docs/terminal/shell-integration.md @@ -29,7 +29,7 @@ This standard, easy way will not work for some advanced use cases like in sub-sh To manually install shell integration, the VS Code shell integration script needs to run during your shell's initialization. Where and how to do this depends on the shell and OS you're using. When using manual install it's recommended to set `terminal.integrated.shellIntegration.enabled` to `false`, though not mandatory. -F **Tip:** When using the [Insiders build](https://code.visualstudio.com/insiders), replace `code` with `code-insiders` below. +> **Tip:** When using the [Insiders build](https://code.visualstudio.com/insiders), replace `code` with `code-insiders` below. #### bash @@ -55,6 +55,18 @@ Add the following to your `~/.zshrc` file. Run `code ~/.zshrc` in bash to open t [[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)" ``` +#### Portability vs performance + +The recommended approach above to install shell integration relies on executing our CLI to find the path to the shell integration script, this is great at it works cross-platform and also with all install types provided `code` in on the `$PATH`. This currently launches Node.js in order to fetch the path though which can add a small delay to shell startup. To reduce this, you can inline the script above by resolving the path ahead of time and adding it directly into your init script. + +```sh +# Find the executable first: +code --locate-shell-integration-path bash + +# Add the result of the above to the source statement: +[[ "$TERM_PROGRAM" == "vscode" ]] && . "/path/to/shell/integration/script.sh" +``` + ## Features ### Command decorations and the overview ruler From 577138795feddf0516a9b01d692194a6de27d25b Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Thu, 21 Jul 2022 13:04:40 -0700 Subject: [PATCH 11/70] Update for argsCanBeInterpretedByShell --- release-notes/v1_70.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index dd8c48da15..3ff0558a29 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -26,6 +26,13 @@ We really appreciate people trying our new features as soon as they are ready, s There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See [this operator's documentation](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) for details. + +## Debug Adapter Protocol + +### 'argsCanBeInterpretedByShell' for RunInTerminalRequest + +The `RunInTerminalRequest` supports a new property, `argsCanBeInterpretedByShell`, which tells the client whether special shell characters in the command `args` should be left unescaped. This is to enable users to write launch configs that will start in a terminal, and include characters that should be interpreted by the shell. + From 1417895080c0e5871f290778a7a94e728ed3b9c7 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 21 Jul 2022 15:59:03 -0700 Subject: [PATCH 12/70] Stub out terminal/tasks sections --- release-notes/v1_70.md | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 3ff0558a29..6a4f7aca20 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -20,6 +20,72 @@ Until the July milestone release notes are available, you can still track our pr We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new. +## Workbench + + + +## Terminal + +### Shell integration enabled by default + +TODO@Tyriar clean up + +Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default! For supported shell setups it should all just work without any change necessary. + +Disable injection, manual install, 133 support +Disable command visibility - it's best to keep it enabled and hide the decorations if you don't like them to take advantage of the [extra functionality](https://code.visualstudio.com/docs/terminal/shell-integration#_features) + +### Simplified shell integration manual install + +TODO@Tyriar + +### Extended PowerShell keybindings + +TODO@Tyriar affects all platforms + +### Other shell integration improvements + +- Run recent command + - Multi-line commands show new lines, use bracketed paste mode + - Context key for keybindings + - New contiguous search by default +- Command decoration menu + - New copy command entry + - New configure command decorations entry +- Improved command navigation visual feedback +- New command `workbench.action.terminal.copyLastCommand` +- Reliability improvements + - bash + - Better integration with bash-preexec when it's already used + - More PROMPT_COMMAND cases covered + +### Rendering improvements + +TODO@Tyriar + +- Custom rendering of semi-circle powerline symbols https://github.com/microsoft/vscode/issues/154324 +- More round borders on box drawing characters https://github.com/microsoft/vscode/issues/154689 +- Improved clipping of glyphs when background color changes https://github.com/microsoft/vscode/issues/154700 +- Improved rendering of overlapped characters https://github.com/microsoft/vscode/issues/154702 + +### Default color and icon tab settings + +TODO@meganrogge: Example of multi-root repo + +## Tasks + +### Task reconnection + +TODO@meganrogge + +### Filter support for run task command + +TODO@meganrogge + +### Improved automatic tasks flow + +TODO@meganrogge: Call out how trusted workspaces allowed us to change to a regular setting? + ## Extension Authoring ### 'not in' operator for 'when' clauses From 2bb316afedc35e7e6e6a106f709be4f34cf79f05 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 06:41:33 -0700 Subject: [PATCH 13/70] Shell integration release notes --- .../images/1_70/terminal-nav-feedback.png | 3 + .../images/1_70/terminal-si-config.png | 3 + .../images/1_70/terminal-si-intro.png | 3 + .../images/1_70/terminal-si-multi-line.png | 3 + .../1_70/terminal-si-run-recent-command.gif | 3 + release-notes/v1_70.md | 81 ++++++++++++++----- 6 files changed, 77 insertions(+), 19 deletions(-) create mode 100644 release-notes/images/1_70/terminal-nav-feedback.png create mode 100644 release-notes/images/1_70/terminal-si-config.png create mode 100644 release-notes/images/1_70/terminal-si-intro.png create mode 100644 release-notes/images/1_70/terminal-si-multi-line.png create mode 100644 release-notes/images/1_70/terminal-si-run-recent-command.gif diff --git a/release-notes/images/1_70/terminal-nav-feedback.png b/release-notes/images/1_70/terminal-nav-feedback.png new file mode 100644 index 0000000000..c64764dca7 --- /dev/null +++ b/release-notes/images/1_70/terminal-nav-feedback.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61afdb26a332d9e67372dc4fe5aaef9e9824a8a7aabefe04931c32c767974641 +size 4498 diff --git a/release-notes/images/1_70/terminal-si-config.png b/release-notes/images/1_70/terminal-si-config.png new file mode 100644 index 0000000000..94300dd78e --- /dev/null +++ b/release-notes/images/1_70/terminal-si-config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48e9105ed338234959b9dc3722b912bb218373726f7c69057759ea5f85cb1966 +size 10071 diff --git a/release-notes/images/1_70/terminal-si-intro.png b/release-notes/images/1_70/terminal-si-intro.png new file mode 100644 index 0000000000..99c8aa3cf1 --- /dev/null +++ b/release-notes/images/1_70/terminal-si-intro.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d2a7e74a19285bf8c93343d7b2b15791a46576fdcc21b7323f25ebc329ce3b2 +size 9156 diff --git a/release-notes/images/1_70/terminal-si-multi-line.png b/release-notes/images/1_70/terminal-si-multi-line.png new file mode 100644 index 0000000000..1dc8dcbf3d --- /dev/null +++ b/release-notes/images/1_70/terminal-si-multi-line.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f530a773656caf776015a3d5e6b0215fd81eac5c047b66a39c9bb1233cd47a0 +size 3747 diff --git a/release-notes/images/1_70/terminal-si-run-recent-command.gif b/release-notes/images/1_70/terminal-si-run-recent-command.gif new file mode 100644 index 0000000000..5ed49c773d --- /dev/null +++ b/release-notes/images/1_70/terminal-si-run-recent-command.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad2cd98a44dab84d5aff419057371f32e7f3ac571f4fdf689f1d57f8043307ba +size 85194 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 6a4f7aca20..5406561c6f 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -28,36 +28,79 @@ We really appreciate people trying our new features as soon as they are ready, s ### Shell integration enabled by default -TODO@Tyriar clean up +Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default! For supported shell setups (most bash/zsh/pwsh) it should all just work without any change necessary and you should see these command decorations: -Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default! For supported shell setups it should all just work without any change necessary. +![When shell integration is enabled, blue, red and grey circles appear next to commands run in the terminal](images/1_70/terminal-si-intro.png) -Disable injection, manual install, 133 support -Disable command visibility - it's best to keep it enabled and hide the decorations if you don't like them to take advantage of the [extra functionality](https://code.visualstudio.com/docs/terminal/shell-integration#_features) +_Theme: [Sapphire Theme](https://marketplace.visualstudio.com/items?itemName=Tyriar.theme-sapphire)_ + +If the feature doesn't light up automatically you will need to setup [manual installation](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation) which has been [simplified in this release](#_more-shell-integration-configuration-options). + +Automatic injection is enabled when the `terminal.integrated.shellIntegration.enabled` setting is set to `true`, add this to your settings.json file to disable the feature: + +```json +"terminal.integrated.shellIntegration.enabled": "false" +``` + +This will disable only VS Code's shell integration injection. Even when disabled, but if your setup has shell integration enabled for some other terminal, [VS Code understands and will pick those up](https://code.visualstudio.com/docs/terminal/shell-integration#_final-term-shell-integration). If you just don't like the command and/or scroll bar decorations [you can disable just those](#_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. ### Simplified shell integration manual install -TODO@Tyriar +The previous manual install steps took several steps and were platform and shell specific. The new manual install steps use 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. + +```sh +# Manual install on bash +[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)" +``` + +[See the documentation for how to install for other shells and more information on shell integration.](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation) + +### 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. This is available for easy access along with configuring the icons used in the command decoration context menu: + +![The command decoration context menu contains the new option Configure Command Decorations](images/1_70/terminal-si-config.png) ### Extended PowerShell keybindings -TODO@Tyriar affects all platforms +Additional PowerShell keybindings that weren't possible before due to lack of VT encoding such as `kbstyle(Ctrl+Space)` have been added thanks to shell integration! Provided shell integration is working in pwsh, the following keybindings should now work: + +- `kbstyle(Ctrl+Space)`: Defaults to `MenuComplete` on Windows only +- `kbstyle(Alt+Space)`: Defaults to `SetMark` +- `kbstyle(Shift+Enter)`: Defaults to `AddLine` +- `kbstyle(Shift+End)`: Defaults to `SelectLine` +- `kbstyle(Shift+Home)`: Defaults to `SelectBackwardsLine` + +This applies to _all platforms_, even Linux/macOS where those keys are normally possible. The defaults can always be rebound in your pwsh profile with `Set-PSReadLineKeyHandler`. If there are additional keybindings that you expect, [please let us know](https://github.com/microsoft/vscode/issues/new). + +### Run recent command as a replacement for reverse search + +When shell integration is enabled, we're aiming run recent command to be a cross-shell drop in replacement for the shell's reverse search (`kbStyle(Ctrl+r)`). There is a new contiguous search mode which is the default when triggering the command, this behaves like `kbStyle(Ctrl+r)` in most shells, with the option of switching back to fuzzy search: + +![Run recent command's contiguous search will match the search term exactly, toggle Fuzzy Search to switch to fuzzy searching](images/1_70/terminal-si-run-recent-command.gif) + +The new `inTerminalRunCommandPicker` context key is available which allows setting up a keybinding like `kbStyle(Ctrl+r)` to go to the next match. For example the following keybindings are now a fairly complete drop in replacement for your shell's reverse search, with ctrl+alt+r as a fallback to the old behavior: + +```json +{ "key": "ctrl+r", "command": "workbench.action.terminal.runRecentCommand", "when": "terminalFocus" }, +{ "key": "ctrl+alt+r", "command": "workbench.action.terminal.sendSequence", "args": { "text": "\u0012"/*^R*/ }, "when": "terminalFocus" }, +{ "key": "ctrl+r", "command": "workbench.action.quickOpenNavigateNextInViewPicker", "when": "inQuickOpen && inTerminalRunCommandPicker" }, +``` + +Multi-line commands now display a new line symbol where appropriate and will also use bracketed paste mode, meaning they are treated as if they were pasted for supporting shells. This typically means they will be added all to the same prompt instead of executing multiple. + +![Run recent command now shows the "Return Symbol" unicode character (⏎, U+23CE) to visualize new lines](images/1_70/terminal-si-multi-line.png) ### Other shell integration improvements -- Run recent command - - Multi-line commands show new lines, use bracketed paste mode - - Context key for keybindings - - New contiguous search by default -- Command decoration menu - - New copy command entry - - New configure command decorations entry -- Improved command navigation visual feedback -- New command `workbench.action.terminal.copyLastCommand` -- Reliability improvements - - bash - - Better integration with bash-preexec when it's already used - - More PROMPT_COMMAND cases covered +Here are the smaller improvements to shell integration: + +- Command navigation has improved visual feedback, showing the "focus border" briefly like before and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer + ![](images/1_70/terminal-nav-feedback.png) +- The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`). +- Bash shell integration + - More `$PROMPT_COMMAND` formats are supported. + - Shell integration should work even better when the [`bash-preexec`](https://github.com/rcaloras/bash-preexec) helper is being used already. ### Rendering improvements From 277e10a9303916f3eefa89b9d0b7a3bb55f1d840 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 07:15:29 -0700 Subject: [PATCH 14/70] Terminal rendering release notes --- .../images/1_70/terminal-curve-render.png | 3 +++ .../images/1_70/terminal-render-clip.png | 3 +++ .../images/1_70/terminal-render-px.png | 3 +++ .../images/1_70/terminal-semi-circle.png | 3 +++ release-notes/v1_70.md | 20 +++++++++++++------ 5 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 release-notes/images/1_70/terminal-curve-render.png create mode 100644 release-notes/images/1_70/terminal-render-clip.png create mode 100644 release-notes/images/1_70/terminal-render-px.png create mode 100644 release-notes/images/1_70/terminal-semi-circle.png diff --git a/release-notes/images/1_70/terminal-curve-render.png b/release-notes/images/1_70/terminal-curve-render.png new file mode 100644 index 0000000000..771d7f5bae --- /dev/null +++ b/release-notes/images/1_70/terminal-curve-render.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54f062345834626f58e9e7d48847bde96ff62f1d1d321ddaf24b2b1ab50cfc69 +size 2380 diff --git a/release-notes/images/1_70/terminal-render-clip.png b/release-notes/images/1_70/terminal-render-clip.png new file mode 100644 index 0000000000..1606aaa373 --- /dev/null +++ b/release-notes/images/1_70/terminal-render-clip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6249488c298b12da5b985376eb979f377aebfeedf442c6e581cf8dd4d02da104 +size 2452 diff --git a/release-notes/images/1_70/terminal-render-px.png b/release-notes/images/1_70/terminal-render-px.png new file mode 100644 index 0000000000..c6d12ff0b1 --- /dev/null +++ b/release-notes/images/1_70/terminal-render-px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0c12d56891c03b06fb72f97e731540c9f102017099ef62501355fb2b0a1a53f +size 2103 diff --git a/release-notes/images/1_70/terminal-semi-circle.png b/release-notes/images/1_70/terminal-semi-circle.png new file mode 100644 index 0000000000..919bfece97 --- /dev/null +++ b/release-notes/images/1_70/terminal-semi-circle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ede52ef66b665dce683de25e3cb9bcd711f8e346118e3bcbd7ff163f15bdb824 +size 15021 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 5406561c6f..817cb3ceea 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -96,7 +96,7 @@ Multi-line commands now display a new line symbol where appropriate and will als Here are the smaller improvements to shell integration: - Command navigation has improved visual feedback, showing the "focus border" briefly like before and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer - ![](images/1_70/terminal-nav-feedback.png) + ![A solid rectangle the color of your themes focus color now appears to the left of the command being navigated to](images/1_70/terminal-nav-feedback.png) - The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`). - Bash shell integration - More `$PROMPT_COMMAND` formats are supported. @@ -104,12 +104,20 @@ Here are the smaller improvements to shell integration: ### Rendering improvements -TODO@Tyriar +Several improvements were made to terminal rendering when GPU acceleration is enabled this release: -- Custom rendering of semi-circle powerline symbols https://github.com/microsoft/vscode/issues/154324 -- More round borders on box drawing characters https://github.com/microsoft/vscode/issues/154689 -- Improved clipping of glyphs when background color changes https://github.com/microsoft/vscode/issues/154700 -- Improved rendering of overlapped characters https://github.com/microsoft/vscode/issues/154702 +- Semi-circle powerline symbols are now custom rendered. Like the arrow symbols in the previous release, these should blend seamlessly with adjacent cells and extend to the height of the cell even when line height is used. + + ![Semi-circle powerline symbols now render without needing to configure a font](images/1_70/terminal-semi-circle.png) +- Round cornered box drawing characters (`╭`, `╮`, `╰`, `╯`) now use a smoother curve. + + ![These round corner symbols now use 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. + + ![Wide characters like W used to sometimes escape the background of a cell, when the background of the text was yellow the W in "WARN" for example could show unexpected yellow pixels in the top left which no longer happens](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. + + ![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) ### Default color and icon tab settings From 7b84acf7be6ac2e73bd31bfb56195609e8598de3 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 07:22:12 -0700 Subject: [PATCH 15/70] Polish notes --- release-notes/v1_70.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 817cb3ceea..d71265f919 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -28,7 +28,7 @@ We really appreciate people trying our new features as soon as they are ready, s ### Shell integration enabled by default -Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default! For supported shell setups (most bash/zsh/pwsh) it should all just work without any change necessary and you should see these command decorations: +Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default! For supported shell setups (most bash/zsh/pwsh configurations) it should all just work without any change necessary and you should see these command decorations: ![When shell integration is enabled, blue, red and grey circles appear next to commands run in the terminal](images/1_70/terminal-si-intro.png) @@ -97,7 +97,7 @@ Here are the smaller improvements to shell integration: - Command navigation has improved visual feedback, showing the "focus border" briefly like before and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer ![A solid rectangle the color of your themes focus color now appears to the left of the command being navigated to](images/1_70/terminal-nav-feedback.png) -- The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`). +- The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`, `kbStyle(Ctrl/Cmd+End)`). - Bash shell integration - More `$PROMPT_COMMAND` formats are supported. - Shell integration should work even better when the [`bash-preexec`](https://github.com/rcaloras/bash-preexec) helper is being used already. From 046747f586d8c290ea71f9cebd1d9e5a068ee330 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 08:24:09 -0700 Subject: [PATCH 16/70] Update shell integration docs for 1.70 --- .../shell-integration/recent-command.png | 4 +- docs/terminal/shell-integration.md | 45 +++++++++++++++---- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/docs/terminal/images/shell-integration/recent-command.png b/docs/terminal/images/shell-integration/recent-command.png index b4f9704eed..8fa8a84609 100644 --- a/docs/terminal/images/shell-integration/recent-command.png +++ b/docs/terminal/images/shell-integration/recent-command.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ba675b5f44e0562f037c178e9499c2a6374fee61f47e08364038c6a6451b91c -size 9983 +oid sha256:e163c3ed76d01069ecc3e2666fb9a32603603d4b9a9e044e7f07ec6abd27fe7d +size 14051 diff --git a/docs/terminal/shell-integration.md b/docs/terminal/shell-integration.md index 833c083853..041261495a 100644 --- a/docs/terminal/shell-integration.md +++ b/docs/terminal/shell-integration.md @@ -21,9 +21,9 @@ Supported shells: ### Automatic script injection -The standard way to activate shell integration is to set the `terminal.integrated.shellIntegration.enabled` setting to `true`. When enabled, the shell integration script is injected into the shell session via shell arguments and/or environment variables. +By default, the shell integration script should automatically activate on supported shells launched from VS Code. This is done by injecting arguments and/or environment variables when the shell session launches. This automatic injection can be disabled by setting `terminal.integrated.shellIntegration.enabled` to `false`. -This standard, easy way will not work for some advanced use cases like in sub-shells, through ssh (when not using the [Remote - SSH extension](/docs/remote/ssh.md)) or for some complex shell setups. The recommended way to enable shell integration for those is [manual installation](#manual-installation). +This standard, easy way will not work for some advanced use cases like in sub-shells, through a regular `ssh` session (when not using the [Remote - SSH extension](/docs/remote/ssh.md)) or for some complex shell setups. The recommended way to enable shell integration for those is [manual installation](#manual-installation). ### Manual installation @@ -81,34 +81,49 @@ The decorations can be interacted with to give some contextual actions like re-r The command decorations can be configured with the following settings: +- `terminal.integrated.shellIntegration.decorationsEnabled` - `terminal.integrated.shellIntegration.decorationIcon` - `terminal.integrated.shellIntegration.decorationIconSuccess` - `terminal.integrated.shellIntegration.decorationIconError` ### Command navigation -The commands detected by shell integration feed into the command navigation feature (`Ctrl/Cmd+Up`, `Ctrl/Cmd+Down`) to give it more reliable command positions. This feature allows for quick navigation between commands and selection of their output. +The commands detected by shell integration feed into the command navigation feature (`kbStyle(Ctrl/Cmd+Up)`, `kbStyle(Ctrl/Cmd+Down)`) to give it more reliable command positions. This feature allows for quick navigation between commands and selection of their output. Hold `kbStyle(Shift)` as well to select from the current position to the command. ### Run recent command The **Terminal: Run Recent Command** command surfaces history from various sources in a Quick Pick, providing similar functionality to a shell's reverse search (`kbstyle(Ctrl+R)`). The sources are the current session's history, previous session history for this shell type and the common shell history file. -![The "run recent command" command shows a quick pick with previously run commands that can be filtered similar to the go to file command](images/shell-integration/recent-command.png) +![The "run recent command" command shows a quick pick with previously run commands that can be filtered similar to the go to file command](images/shell-integration/recent-command.png) Some other functionality of the command: +- By default the search mode is "contiguous search", meaning the search term must exactly match. The button on the right of the search input allows switching to fuzzy search. - In the current session section, there is a clipboard icon in the right of the Quick Pick that will open the command output in an editor. - `kbstyle(Alt)` can be held to write the text to the terminal without running it. - The amount of history stored in the previous session section is determined by the `terminal.integrated.shellIntegration.history` setting. -There is currently no keybinding assigned by default but you can add your own keyboard shortcut. For example, below `Ctrl+Space` is set for `runRecentCommand`: +There is currently no keybinding assigned by default but you can add your own keyboard shortcut. For example, the below replaces `kbstyle(Ctrl+R)` with `runRecentCommand`, with `kbstyle(Ctrl+Alt+R)` available to fallback to the shell's regular behavior: -```json +```jsonc { - "key": "ctrl+space", + "key": "ctrl+r", "command": "workbench.action.terminal.runRecentCommand", "when": "terminalFocus" }, +// Allow ctrl+r again to go to the next command in the quick pick +{ + "key": "ctrl+r", + "command": "workbench.action.quickOpenNavigateNextInViewPicker", + "when": "inQuickOpen && inTerminalRunCommandPicker" +}, +// Fallback to the shell's native ctrl+r +{ + "key": "ctrl+alt+r", + "command": "workbench.action.terminal.sendSequence", + "args": { "text": "\u0012"/*^R*/ }, + "when": "terminalFocus" +} ``` ### Go to recent directory @@ -119,9 +134,21 @@ Similar to the run recent command feature, the **Terminal: Go to Recent Director ### Current working directory detection -Shell integration tells us what the current working directory is. This information was impossible on Windows previously without a bunch of hacks and required polling on macOS and Linux which isn't good for performance. +Shell integration tells VS Code what the current working directory of the shell is. This information is not possible to get on Windows without trying to detect the prompt through regex and required polling on macOS and Linux which isn't good for performance. + +One of the biggest features this enables is enhanced resolving of links in the terminal. Take a link `package.json` for example, when the link is activated while shell integration is disabled this will open a search quick pick with `package.json` as the filter if there are multiple `package.json` files in the workspace. When shell integration is enabled however, it will open the `package.json` file in the current folder directly because the current location is known. This allows the output of `ls` for example to reliabily open the correct file. + +The current working directory is also used to show the directory in the terminal tab, in the run recent command quick pick and for the `"terminal.integrated.splitCwd": "inherited"` feature. + +### Extended PowerShell keybindings + +Windows' console API allows for more keybindings than Linux/macOS terminals, since VS Code's terminal emulates the latter even on Windows there are some PowerShell keybindings that aren't possible using the standard means due to lack of VT encoding such as `kbstyle(Ctrl+Space)`. Shell integration allows VS Code to attach a custom keybindings to send a special sequence to PowerShell which then gets handled in the shell integration script and forwarded to the proper key handler.The following keybindings should work in PowerShell when shell integration is enabled: -The current working directory is used to resolve links against, showing the directory a recent command ran within as well as the `"terminal.integrated.splitCwd": "inherited"` feature. +- `kbstyle(Ctrl+Space)`: Defaults to `MenuComplete` on Windows only +- `kbstyle(Alt+Space)`: Defaults to `SetMark` on all platforms +- `kbstyle(Shift+Enter)`: Defaults to `AddLine` on all platforms +- `kbstyle(Shift+End)`: Defaults to `SelectLine` on all platforms +- `kbstyle(Shift+Home)`: Defaults to `SelectBackwardsLine` on all platforms ## Supported escape sequences From 0d0c873dc639eade8bc523cbb6e304207231fafb Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 08:27:12 -0700 Subject: [PATCH 17/70] Update decoration-menu image for changes in 1.70 --- docs/terminal/images/shell-integration/decoration-menu.png | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/terminal/images/shell-integration/decoration-menu.png b/docs/terminal/images/shell-integration/decoration-menu.png index 7f4e572c8e..c9724d97c6 100644 --- a/docs/terminal/images/shell-integration/decoration-menu.png +++ b/docs/terminal/images/shell-integration/decoration-menu.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1eaf5b1fae95aa09141071fe58c3875b8511477fe30b511f4a1a9cf6fb7d55a5 -size 14159 +oid sha256:5b9a241cb822222ea362c95f6592dabcb0842da44c5ed1cf7f70e7d9a2758053 +size 14700 From e0255981230955e7221c43532ba9ae00688a037b Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 08:27:33 -0700 Subject: [PATCH 18/70] Improve comment in example --- docs/terminal/shell-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/terminal/shell-integration.md b/docs/terminal/shell-integration.md index 041261495a..3d27b14b40 100644 --- a/docs/terminal/shell-integration.md +++ b/docs/terminal/shell-integration.md @@ -60,7 +60,7 @@ Add the following to your `~/.zshrc` file. Run `code ~/.zshrc` in bash to open t The recommended approach above to install shell integration relies on executing our CLI to find the path to the shell integration script, this is great at it works cross-platform and also with all install types provided `code` in on the `$PATH`. This currently launches Node.js in order to fetch the path though which can add a small delay to shell startup. To reduce this, you can inline the script above by resolving the path ahead of time and adding it directly into your init script. ```sh -# Find the executable first: +# Output the executable's path first: code --locate-shell-integration-path bash # Add the result of the above to the source statement: From a1649a4a42e10724077f3beeafb3aafd01a1d912 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 22 Jul 2022 10:44:54 -0700 Subject: [PATCH 19/70] Update todo note --- release-notes/v1_70.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index d71265f919..599e8a85df 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -127,7 +127,7 @@ TODO@meganrogge: Example of multi-root repo ### Task reconnection -TODO@meganrogge +TODO@meganrogge: Should this be experimental with a setting and in preview features? ### Filter support for run task command From f00cda6fb6631302c9989c3fc4155714e6f4be38 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Fri, 22 Jul 2022 14:34:31 -0500 Subject: [PATCH 20/70] Add release notes for js-debug arg escaping --- release-notes/v1_70.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 599e8a85df..0a294b911f 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -137,6 +137,31 @@ TODO@meganrogge TODO@meganrogge: Call out how trusted workspaces allowed us to change to a regular setting? +## Debugging + +### Javascript Debugging + +When you create a launch config to debug a JS/TS 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 args 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 DAP were required. We have 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. + +```jsonc +{ + "type": "node", + "console": "integratedTerminal", + ... + + // If you pass args as a single string, the characters will not be escaped for the terminal, so the + // command in backticks will be evaluated, and output will be redirected to "outfile". The user is + // responsible for knowing the type of shell that this will be run in, and doing any escaping necessary. + "args": "`echo hello` > outfile", + + // If you pass args as an array, the characters will be escaped for the terminal so that the program + // receives them verbatim. + "args": ["`echo hello` > outfile"] +} +``` + ## Extension Authoring ### 'not in' operator for 'when' clauses From e733ce3ef55f59e028d7158b07fe1cc348e08d1d Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 25 Jul 2022 12:32:37 +0200 Subject: [PATCH 21/70] mention sandbox --- release-notes/v1_70.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 0a294b911f..97b0da0c16 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -175,6 +175,13 @@ There is an operator that already exists for when clauses, `in`, which allows fo The `RunInTerminalRequest` supports a new property, `argsCanBeInterpretedByShell`, which tells the client whether special shell characters in the command `args` should be left unescaped. This is to enable users to write launch configs that will start in a terminal, and include characters that should be interpreted by the shell. - +## Engineering + +### Progress for Electron sandbox support + +This milestone we made substantial progress on eventually enabling Electron's [sandbox](https://www.electronjs.org/docs/tutorial/sandbox) by default. We plan on enabling sandbox in August for insiders and eventually make it the default in stable VS Code. + +For the curious out there, configuring `"window.experimental.useSandbox": true` in settings will enable sandbox mode. You should not notice anything changing hopefully, but if you find issues, please report them back to us! + From 3b3e665f79672f009f36ce9a2fde0bbbe31d15fb Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 25 Jul 2022 12:36:54 +0200 Subject: [PATCH 22/70] cli merge input --- release-notes/v1_70.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 97b0da0c16..20d223106c 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -22,7 +22,22 @@ We really appreciate people trying our new features as soon as they are ready, s ## Workbench +### New command line option `--merge` +You can now use command line options to bring up the merge editor in VS Code: + +``` +-m --merge Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions and the output file to save merge results. +``` + +This enables to use VS Code as merge tool for Git, e.g. if you configure this in the `.gitconfig`: + +```properties +[merge] + tool = code-insiders +[mergetool "code-insiders"] + cmd = code-insiders --wait -m $REMOTE $LOCAL $BASE $MERGED +``` ## Terminal From aecc3d6022ee6ccfa5df7fe08186bf729e2208f7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 25 Jul 2022 12:37:22 +0200 Subject: [PATCH 23/70] :lipstick: --- release-notes/v1_70.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 20d223106c..4a2fc3c505 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -36,7 +36,7 @@ This enables to use VS Code as merge tool for Git, e.g. if you configure this in [merge] tool = code-insiders [mergetool "code-insiders"] - cmd = code-insiders --wait -m $REMOTE $LOCAL $BASE $MERGED + cmd = code-insiders --wait --merge $REMOTE $LOCAL $BASE $MERGED ``` ## Terminal From 84efa44d3cb0d22472decbebf6e688f74e12d34c Mon Sep 17 00:00:00 2001 From: gregvanl Date: Mon, 25 Jul 2022 21:27:33 -0700 Subject: [PATCH 24/70] Small edits --- release-notes/v1_70.md | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 4a2fc3c505..fa3826a6ae 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -22,15 +22,15 @@ We really appreciate people trying our new features as soon as they are ready, s ## Workbench -### New command line option `--merge` +### New command line option --merg` You can now use command line options to bring up the merge editor in VS Code: -``` +```bash -m --merge Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions and the output file to save merge results. ``` -This enables to use VS Code as merge tool for Git, e.g. if you configure this in the `.gitconfig`: +This enables to use VS Code as merge tool for Git, for example, if you configure this in the `.gitconfig`: ```properties [merge] @@ -80,11 +80,11 @@ The new setting `terminal.integrated.shellIntegration.decorationsEnabled` allows Additional PowerShell keybindings that weren't possible before due to lack of VT encoding such as `kbstyle(Ctrl+Space)` have been added thanks to shell integration! Provided shell integration is working in pwsh, the following keybindings should now work: -- `kbstyle(Ctrl+Space)`: Defaults to `MenuComplete` on Windows only -- `kbstyle(Alt+Space)`: Defaults to `SetMark` -- `kbstyle(Shift+Enter)`: Defaults to `AddLine` -- `kbstyle(Shift+End)`: Defaults to `SelectLine` -- `kbstyle(Shift+Home)`: Defaults to `SelectBackwardsLine` +* `kbstyle(Ctrl+Space)`: Defaults to `MenuComplete` on Windows only +* `kbstyle(Alt+Space)`: Defaults to `SetMark` +* `kbstyle(Shift+Enter)`: Defaults to `AddLine` +* `kbstyle(Shift+End)`: Defaults to `SelectLine` +* `kbstyle(Shift+Home)`: Defaults to `SelectBackwardsLine` This applies to _all platforms_, even Linux/macOS where those keys are normally possible. The defaults can always be rebound in your pwsh profile with `Set-PSReadLineKeyHandler`. If there are additional keybindings that you expect, [please let us know](https://github.com/microsoft/vscode/issues/new). @@ -110,27 +110,30 @@ Multi-line commands now display a new line symbol where appropriate and will als Here are the smaller improvements to shell integration: -- Command navigation has improved visual feedback, showing the "focus border" briefly like before and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer +* Command navigation has improved visual feedback, showing the "focus border" briefly like before and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer ![A solid rectangle the color of your themes focus color now appears to the left of the command being navigated to](images/1_70/terminal-nav-feedback.png) -- The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`, `kbStyle(Ctrl/Cmd+End)`). -- Bash shell integration - - More `$PROMPT_COMMAND` formats are supported. - - Shell integration should work even better when the [`bash-preexec`](https://github.com/rcaloras/bash-preexec) helper is being used already. +* The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`, `kbStyle(Ctrl/Cmd+End)`). +* Bash shell integration + * More `$PROMPT_COMMAND` formats are supported. + * Shell integration should work even better when the [`bash-preexec`](https://github.com/rcaloras/bash-preexec) helper is being used already. ### Rendering improvements Several improvements were made to terminal rendering when GPU acceleration is enabled this release: -- Semi-circle powerline symbols are now custom rendered. Like the arrow symbols in the previous release, these should blend seamlessly with adjacent cells and extend to the height of the cell even when line height is used. +* Semi-circle powerline symbols are now custom rendered. Like the arrow symbols in the previous release, these should blend seamlessly with adjacent cells and extend to the height of the cell even when line height is used. ![Semi-circle powerline symbols now render without needing to configure a font](images/1_70/terminal-semi-circle.png) -- Round cornered box drawing characters (`╭`, `╮`, `╰`, `╯`) now use a smoother curve. + +* Round cornered box drawing characters (`╭`, `╮`, `╰`, `╯`) now use a smoother curve. ![These round corner symbols now use 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 background color changes, this was commonly seen when `npm` output a warning. ![Wide characters like W used to sometimes escape the background of a cell, when the background of the text was yellow the W in "WARN" for example could show unexpected yellow pixels in the top left which no longer happens](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, 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. ![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) @@ -183,7 +186,6 @@ Here's how to use the new behavior in a node launch config. There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See [this operator's documentation](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) for details. - ## Debug Adapter Protocol ### 'argsCanBeInterpretedByShell' for RunInTerminalRequest From 3a9f314677c4985d5d4106c3edcea98c984f0939 Mon Sep 17 00:00:00 2001 From: gregvanl Date: Tue, 26 Jul 2022 09:42:38 -0700 Subject: [PATCH 25/70] Fix typo added earlier --- release-notes/v1_70.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index fa3826a6ae..36f1ae741f 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -22,7 +22,7 @@ We really appreciate people trying our new features as soon as they are ready, s ## Workbench -### New command line option --merg` +### New command line option --merge You can now use command line options to bring up the merge editor in VS Code: @@ -157,7 +157,7 @@ TODO@meganrogge: Call out how trusted workspaces allowed us to change to a regul ## Debugging -### Javascript Debugging +### Javascript debugging When you create a launch config to debug a JS/TS 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 args 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 DAP were required. We have 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. @@ -196,7 +196,7 @@ The `RunInTerminalRequest` supports a new property, `argsCanBeInterpretedByShell ### Progress for Electron sandbox support -This milestone we made substantial progress on eventually enabling Electron's [sandbox](https://www.electronjs.org/docs/tutorial/sandbox) by default. We plan on enabling sandbox in August for insiders and eventually make it the default in stable VS Code. +This milestone we made substantial progress on eventually enabling Electron's [sandbox](https://www.electronjs.org/docs/tutorial/sandbox) by default. We plan on enabling sandbox in August for Insiders and eventually make it the default in Stable VS Code. For the curious out there, configuring `"window.experimental.useSandbox": true` in settings will enable sandbox mode. You should not notice anything changing hopefully, but if you find issues, please report them back to us! From dd3848d496310f8d003bb5fcb4da6ca86e8bddc4 Mon Sep 17 00:00:00 2001 From: SteVen Batten <6561887+sbatten@users.noreply.github.com> Date: Tue, 26 Jul 2022 11:57:56 -0700 Subject: [PATCH 26/70] use node 14 --- .pipelines/templates/jobs/build.yml | 4 ++-- azure-pipelines.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pipelines/templates/jobs/build.yml b/.pipelines/templates/jobs/build.yml index a87fb33d2d..c69658e404 100644 --- a/.pipelines/templates/jobs/build.yml +++ b/.pipelines/templates/jobs/build.yml @@ -28,9 +28,9 @@ jobs: displayName: Copy ${{ parameters.artifactName }} - task: NodeTool@0 - displayName: Use Node 12.22.9 + displayName: Use Node 14.19.3 inputs: - versionSpec: 12.22.9 + versionSpec: 14.19.3 checkLatest: true - task: Npm@0 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f334c9278e..2409351459 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,9 +41,9 @@ jobs: path: vscode-website/dist persistCredentials: true - task: NodeTool@0 - displayName: Use Node 12.22.9 + displayName: Use Node 14.19.3 inputs: - versionSpec: 12.22.9 + versionSpec: 14.19.3 checkLatest: true - task: Npm@0 displayName: npm install yarn From 8ff8f5444fd216ea12303014facbea23c0a7341a Mon Sep 17 00:00:00 2001 From: gregvanl Date: Tue, 26 Jul 2022 13:47:55 -0700 Subject: [PATCH 27/70] Update 1.70 vscode.d.ts commit ID --- api/references/vscode-api.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/references/vscode-api.template b/api/references/vscode-api.template index 79af225769..966dac2ba3 100644 --- a/api/references/vscode-api.template +++ b/api/references/vscode-api.template @@ -3,8 +3,8 @@ ContentId: 8CEBCDF8-4F0A-4C81-A904-3DEA43480EA6 DateApproved: 7/7/2022 -VSCodeCommitHash: 354e1a05958e51c25bab1df108c722c8105ebaca -VSCodeVersion: 1.69.0 +VSCodeCommitHash: cc098faebd320a2eea3da6ae154b7e2e1347a4b9 +VSCodeVersion: 1.70.0 # Summarize the whole topic in less than 300 characters for SEO purpose MetaDescription: Visual Studio Code extensions (plug-in) API Reference. From f9f0ecb62d3bbde7b38b49f0a40eeb09995d8d31 Mon Sep 17 00:00:00 2001 From: gregvanl Date: Tue, 26 Jul 2022 15:14:35 -0700 Subject: [PATCH 28/70] Small edits --- release-notes/v1_70.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 36f1ae741f..02b97ea887 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -49,15 +49,15 @@ Shell integration's automatic injection that [was moved out of preview last rele _Theme: [Sapphire Theme](https://marketplace.visualstudio.com/items?itemName=Tyriar.theme-sapphire)_ -If the feature doesn't light up automatically you will need to setup [manual installation](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation) which has been [simplified in this release](#_more-shell-integration-configuration-options). +If the feature doesn't light up automatically, you will need to set up [manual installation](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation), which has been [simplified in this release](#more-shell-integration-configuration-options). -Automatic injection is enabled when the `terminal.integrated.shellIntegration.enabled` setting is set to `true`, add this to your settings.json file to disable the feature: +Automatic injection is enabled when the `terminal.integrated.shellIntegration.enabled` setting is set to `true`, add this to your `settings.json` file to disable the feature: ```json "terminal.integrated.shellIntegration.enabled": "false" ``` -This will disable only VS Code's shell integration injection. Even when disabled, but if your setup has shell integration enabled for some other terminal, [VS Code understands and will pick those up](https://code.visualstudio.com/docs/terminal/shell-integration#_final-term-shell-integration). If you just don't like the command and/or scroll bar decorations [you can disable just those](#_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, [VS Code understands and will pick those up](https://code.visualstudio.com/docs/terminal/shell-integration#_final-term-shell-integration). If you just don't like the command and/or scroll bar decorations [you can disable just those](#_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. ### Simplified shell integration manual install @@ -68,7 +68,7 @@ The previous manual install steps took several steps and were platform and shell [[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)" ``` -[See the documentation for how to install for other shells and more information on shell integration.](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation) +You can read more about how to install for other shells and more information at [Terminal shell integration](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation). ### More shell integration configuration options @@ -86,7 +86,7 @@ Additional PowerShell keybindings that weren't possible before due to lack of VT * `kbstyle(Shift+End)`: Defaults to `SelectLine` * `kbstyle(Shift+Home)`: Defaults to `SelectBackwardsLine` -This applies to _all platforms_, even Linux/macOS where those keys are normally possible. The defaults can always be rebound in your pwsh profile with `Set-PSReadLineKeyHandler`. If there are additional keybindings that you expect, [please let us know](https://github.com/microsoft/vscode/issues/new). +This applies to **all platforms**, even Linux/macOS where those keys are normally possible. The defaults can always be rebound in your pwsh profile with `Set-PSReadLineKeyHandler`. If there are additional keybindings that you expect, [please let us know](https://github.com/microsoft/vscode/issues/new). ### Run recent command as a replacement for reverse search From bbf826eb0403d17b4dc7a419123118629d6fa820 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Wed, 27 Jul 2022 15:27:17 -0700 Subject: [PATCH 29/70] Mention the WWBD extension in the 1.70 release notes --- release-notes/v1_70.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 02b97ea887..b7e093d86d 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -180,6 +180,14 @@ Here's how to use the new behavior in a node launch config. } ``` +## Contributions to extensions + +### Python + +#### Experimental extension: WWBD + +We have created an experimental extension named [WWBD](https://marketplace.visualstudio.com/items?itemName=brettcannon.wwbd) to act as a sandbox for environment workflow ideas. As of now we are experimenting with a **Create Environment** command for virtual environments to see if a single command can help users set up a new virtual environment (see the extension page for the full details and other extension features). Please see the [Ideas category](https://github.com/brettcannon/WWBD/discussions/categories/ideas) in the project repository for what ideas we are considering, including conda support. + ## Extension Authoring ### 'not in' operator for 'when' clauses From 9d1f5528767aea1d6c43f0469d90a69ff3764ddf Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 28 Jul 2022 16:02:34 +0300 Subject: [PATCH 30/70] Update release notes --- release-notes/v1_70.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index b7e093d86d..2af50e28ce 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -155,6 +155,23 @@ TODO@meganrogge TODO@meganrogge: Call out how trusted workspaces allowed us to change to a regular setting? +## Source Control + +### Action button improvements + +This milestone we continued to polish the source control action button based on user feedback. +* The "Sync Changes" action button is only shown when there is a high degree of certainty that the local branch is either ahead or behind the remote tracking branch. +* The "Commit" action button is only enabled based on the list of changed resources while factoring in the smart commit settings - `git.enableSmartCommit`, `git.suggestSmartCommit`, `git.smartCommitChanges`. +* The "Commit" action button icon is updated based on the branch protection settings - `git.branchProtection`, `git.branchProtectionPrompt`. + +### Rebase conflict resolution fixes + +TODO@lszomoru + +### Commit input field spell checking + +TODO@lszomoru + ## Debugging ### Javascript debugging From f2d5321fd541603de14b5e9d885932ffe975e8b8 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 28 Jul 2022 16:21:21 +0300 Subject: [PATCH 31/70] Update release notes --- release-notes/v1_70.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 2af50e28ce..379f33f7ed 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -159,18 +159,18 @@ TODO@meganrogge: Call out how trusted workspaces allowed us to change to a regul ### Action button improvements -This milestone we continued to polish the source control action button based on user feedback. +We continued to polish the source control action button based on user feedback: * The "Sync Changes" action button is only shown when there is a high degree of certainty that the local branch is either ahead or behind the remote tracking branch. * The "Commit" action button is only enabled based on the list of changed resources while factoring in the smart commit settings - `git.enableSmartCommit`, `git.suggestSmartCommit`, `git.smartCommitChanges`. * The "Commit" action button icon is updated based on the branch protection settings - `git.branchProtection`, `git.branchProtectionPrompt`. ### Rebase conflict resolution fixes -TODO@lszomoru +This milestone we have addressed some long standing bugs in the rebase flow while resolving merge conflicts. Following this release users should be able to continue the rebase operation using the "Commit" button in the "Source Control" viewlet after resolving all merge conflicts. ### Commit input field spell checking -TODO@lszomoru +This milestone we have validated that all the necessary extension APIs are available to enable spell checking for the commit input field. We have reached out to the authors of two popular spell checking extension and submitted pull requests illustrating how to update their extensions to enabled spell checking for the commit input field. ## Debugging From 4664ae5190353c5eb89758c83f52fbff4a0e2d56 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 28 Jul 2022 15:42:18 +0200 Subject: [PATCH 32/70] update release notes --- .../images/1_70/qute-html-participant.gif | 3 ++ release-notes/v1_70.md | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 release-notes/images/1_70/qute-html-participant.gif diff --git a/release-notes/images/1_70/qute-html-participant.gif b/release-notes/images/1_70/qute-html-participant.gif new file mode 100644 index 0000000000..6b10e44d88 --- /dev/null +++ b/release-notes/images/1_70/qute-html-participant.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee17278ff28101c452e7aa661e28d3dae5e4005efe0fcda758525ded91d059ee +size 419874 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 379f33f7ed..e387b575a8 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -22,6 +22,19 @@ We really appreciate people trying our new features as soon as they are ready, s ## Workbench +### Fold Selection + +The command `Create Manual Folding Ranges from Selection` creates a folding range from the currently selected lines and collapses it. That range is called a *manual* folding range that goes on top of the ranges computed by folding providers. +Manual folding ranges can be removed again with the command `Remove Manual Folding Ranges`. + +### Preserve folded ranges + +VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same locationor by using the command `Remove Manual Folding Ranges`. + +### Hide folding controls + +The folding controls in the gutter can now be hidden with the setting `"editor.showFoldingControls": "never"`. Folding ranges can still be exapnded and collapsed using the folding commands and shortcuts. + ### New command line option --merge You can now use command line options to bring up the merge editor in VS Code: @@ -211,6 +224,25 @@ We have created an experimental extension named [WWBD](https://marketplace.visua There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See [this operator's documentation](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) for details. +### htmlLanguageParticipants contribution point + +A new contribution point `htmlLanguageParticipants` allows HTML-like languages to declare that they want to inherit all HTML language server features such as code completions, hovers and outline. This is useful for languages that don't want to implement an full language server. + +An example is the built-in `handlebars` extension that now declares in its `package.json` : +``` +"contributes": { + "htmlLanguageParticipants": [ + { + "languageId": "handlebars" + } + ] +} +``` + +The [`vscode-quarkus`](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-quarkus) extension has already adopted the contribution point. It enriches the HTML features with additional proposals for the embedded Qute HTML template language: +![qute html participant](./images/1_70/qute-html-participant.gif) + + ## Debug Adapter Protocol ### 'argsCanBeInterpretedByShell' for RunInTerminalRequest From 9d05c54a997d0d5733b8f979d17b97f93ccbb717 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 28 Jul 2022 17:06:57 +0300 Subject: [PATCH 33/70] Update release notes --- release-notes/v1_70.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index e387b575a8..6bb1db96a6 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -177,9 +177,9 @@ We continued to polish the source control action button based on user feedback: * The "Commit" action button is only enabled based on the list of changed resources while factoring in the smart commit settings - `git.enableSmartCommit`, `git.suggestSmartCommit`, `git.smartCommitChanges`. * The "Commit" action button icon is updated based on the branch protection settings - `git.branchProtection`, `git.branchProtectionPrompt`. -### Rebase conflict resolution fixes +### Improved rebase conflict resolution -This milestone we have addressed some long standing bugs in the rebase flow while resolving merge conflicts. Following this release users should be able to continue the rebase operation using the "Commit" button in the "Source Control" viewlet after resolving all merge conflicts. +This milestone we have addressed some paper cuts in the rebase flow while resolving merge conflicts. Following this release users should 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 From 1a8807472e005edff1f8f45297929d43163eaacb Mon Sep 17 00:00:00 2001 From: gregvanl Date: Thu, 28 Jul 2022 07:58:56 -0700 Subject: [PATCH 34/70] Add mention of Azure Developer CLI extension --- .../images/1_70/azure-dev-cli-extension.png | 3 +++ release-notes/v1_70.md | 21 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 release-notes/images/1_70/azure-dev-cli-extension.png diff --git a/release-notes/images/1_70/azure-dev-cli-extension.png b/release-notes/images/1_70/azure-dev-cli-extension.png new file mode 100644 index 0000000000..330132c45a --- /dev/null +++ b/release-notes/images/1_70/azure-dev-cli-extension.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34d01e85ef357ae2a2e758666f0ba267ab7e60aa78f35d9f0a977f247ba4a817 +size 62855 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 6bb1db96a6..4ccc2c6e2f 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -224,12 +224,13 @@ We have created an experimental extension named [WWBD](https://marketplace.visua There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See [this operator's documentation](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) for details. -### htmlLanguageParticipants contribution point +### htmlLanguageParticipants contribution point A new contribution point `htmlLanguageParticipants` allows HTML-like languages to declare that they want to inherit all HTML language server features such as code completions, hovers and outline. This is useful for languages that don't want to implement an full language server. An example is the built-in `handlebars` extension that now declares in its `package.json` : -``` + +```json "contributes": { "htmlLanguageParticipants": [ { @@ -239,9 +240,9 @@ An example is the built-in `handlebars` extension that now declares in its `pack } ``` -The [`vscode-quarkus`](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-quarkus) extension has already adopted the contribution point. It enriches the HTML features with additional proposals for the embedded Qute HTML template language: -![qute html participant](./images/1_70/qute-html-participant.gif) +The [Quarkus](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-quarkus) extension has already adopted the contribution point. It enriches the HTML features with additional proposals for the embedded [Qute](https://quarkus.io/guides/qute-reference) HTML template language: +![Qute HTML participant](images/1_70/qute-html-participant.gif) ## Debug Adapter Protocol @@ -257,5 +258,17 @@ This milestone we made substantial progress on eventually enabling Electron's [s For the curious out there, configuring `"window.experimental.useSandbox": true` in settings will enable sandbox mode. You should not notice anything changing hopefully, but if you find issues, please report them back to us! +## Documentation and extensions + +### Azure Developer CLI (azd) + +The [Azure Developer CLI](https://docs.microsoft.com/azure/developer/azure-developer-cli) and its complementary [VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.azure-dev) are now in public preview. The Azure Developer CLI (azd) accelerates the time it takes you to get from your local development environment to Azure by providing developer-friendly commands that map to key stages in your workflow: code, build, deploy, monitor, repeat. + +![Azure Developer CLI extension](images/1_70/azure-dev-cli-extension.png) + +The Azure Developer CLI uses [extensible templates](https://github.com/topics/azd-templates) that include everything you need to get an application up and running in Azure. The templates include best practices, application code and reusable infrastructure as code assets. More than that, they cover end-to-end scenarios that go far past "Hello World!". + +With the Azure Developer CLI, you can initialize, provision, and deploy an application, or better yet, use `'azd up'` to do so in one step! For a list of supported `azd` commands, see the [Developer CLI reference](https://docs.microsoft.com/en-us/azure/developer/azure-developer-cli/reference). + From 0c8d7f13b9e1b7a717c31354bd2a7750a33d8ab5 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 28 Jul 2022 17:59:17 +0200 Subject: [PATCH 35/70] add folding gifs --- release-notes/images/1_70/manual-folding-range.gif | 3 +++ release-notes/images/1_70/restored-folding-ranges.gif | 3 +++ release-notes/v1_70.md | 4 ++++ 3 files changed, 10 insertions(+) create mode 100644 release-notes/images/1_70/manual-folding-range.gif create mode 100644 release-notes/images/1_70/restored-folding-ranges.gif diff --git a/release-notes/images/1_70/manual-folding-range.gif b/release-notes/images/1_70/manual-folding-range.gif new file mode 100644 index 0000000000..55f96b2ccd --- /dev/null +++ b/release-notes/images/1_70/manual-folding-range.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a516e68c2d06f246490dd3ebcd55860910b3a8ef47d7f8bc92e00428addda3ac +size 352438 diff --git a/release-notes/images/1_70/restored-folding-ranges.gif b/release-notes/images/1_70/restored-folding-ranges.gif new file mode 100644 index 0000000000..9002e1a993 --- /dev/null +++ b/release-notes/images/1_70/restored-folding-ranges.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1beb5c4786ff91c0ff24d87db50293ad63699e92b0c4a4d582a86ef999c28ef9 +size 198000 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 4ccc2c6e2f..d9741c6970 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -27,10 +27,14 @@ We really appreciate people trying our new features as soon as they are ready, s The command `Create Manual Folding Ranges from Selection` creates a folding range from the currently selected lines and collapses it. That range is called a *manual* folding range that goes on top of the ranges computed by folding providers. Manual folding ranges can be removed again with the command `Remove Manual Folding Ranges`. +![manual folding ranges](./images/1_70/manual-folding-range.gif) + ### Preserve folded ranges VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same locationor by using the command `Remove Manual Folding Ranges`. +![restored folding ranges](./images/1_70/restored-folding-ranges.gif) + ### Hide folding controls The folding controls in the gutter can now be hidden with the setting `"editor.showFoldingControls": "never"`. Folding ranges can still be exapnded and collapsed using the folding commands and shortcuts. From 473dd7ecae8cfe5b048a46df86a5f7dd77445e1a Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 28 Jul 2022 18:12:50 +0200 Subject: [PATCH 36/70] docs for manual folding --- docs/editor/codebasics.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/editor/codebasics.md b/docs/editor/codebasics.md index dbd95386ee..03b0fa282d 100644 --- a/docs/editor/codebasics.md +++ b/docs/editor/codebasics.md @@ -310,7 +310,7 @@ You can also use the following actions: Folding regions are by default evaluated based on the indentation of lines. A folding region starts when a line has a smaller indent than one or more following lines, and ends when there is a line with the same or smaller indent. -Since the 1.22 release, folding regions can also be computed based on syntax tokens of the editor's configured language. The following languages already provide syntax aware folding: Markdown, HTML, CSS, LESS, SCSS, and JSON. +Folding regions can also be computed based on syntax tokens of the editor's configured language. The following languages already provide syntax aware folding: Markdown, HTML, CSS, LESS, SCSS, and JSON. If you prefer to switch back to indentation-based folding for one (or all) of the languages above, use: @@ -344,6 +344,9 @@ To fold and unfold only the regions defined by markers use: * Fold Marker Regions (`kb(editor.foldAllMarkerRegions)`) folds all marker regions. * Unfold Marker Regions (`kb(editor.unfoldAllMarkerRegions)`) unfolds all marker regions. +The command `Create Manual Folding Ranges from Selection` allows to create a folding range from the currently selected lines and collapses it. That range is called a *manual* folding range that goes on top of the ranges computed by folding providers. +Manual folding ranges can be removed again with the command `Remove Manual Folding Ranges`. + ## Indentation VS Code lets you control text indentation and whether you'd like to use spaces or tab stops. By default, VS Code inserts spaces and uses 4 spaces per `kbstyle(Tab)` key. If you'd like to use another default, you can modify the `editor.insertSpaces` and `editor.tabSize` [settings](/docs/getstarted/settings.md). From ac8f91e57c37edc7a4515ab40cc2a9ac5901c34a Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 28 Jul 2022 10:45:35 -0700 Subject: [PATCH 37/70] Adding placeholder sections --- release-notes/v1_70.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index d9741c6970..8d76892b37 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -214,6 +214,7 @@ Here's how to use the new behavior in a node launch config. } ``` + ## Contributions to extensions ### Python @@ -222,6 +223,14 @@ Here's how to use the new behavior in a node launch config. We have created an experimental extension named [WWBD](https://marketplace.visualstudio.com/items?itemName=brettcannon.wwbd) to act as a sandbox for environment workflow ideas. As of now we are experimenting with a **Create Environment** command for virtual environments to see if a single command can help users set up a new virtual environment (see the extension page for the full details and other extension features). Please see the [Ideas category](https://github.com/brettcannon/WWBD/discussions/categories/ideas) in the project repository for what ideas we are considering, including conda support. +## Preview features + +### TypeScript 4.8 support + +This update includes support for the upcoming TypeScript 4.8 release. See the [TypeScript 4.8 iteration plan](https://github.com/microsoft/TypeScript/issues/49074) for more details on what the TypeScript team is currently working on. + +To start using the TypeScript 4.8 nightly builds, install the [TypeScript Nightly](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next) extension. + ## Extension Authoring ### 'not in' operator for 'when' clauses @@ -248,6 +257,24 @@ The [Quarkus](https://marketplace.visualstudio.com/items?itemName=redhat.vscode- ![Qute HTML participant](images/1_70/qute-html-participant.gif) +### Drop into editor API + + + +## 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://www.npmjs.com/package/vscode-dts) and run `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. + +### Webview context menus + + + ## Debug Adapter Protocol ### 'argsCanBeInterpretedByShell' for RunInTerminalRequest @@ -262,6 +289,14 @@ This milestone we made substantial progress on eventually enabling Electron's [s For the curious out there, configuring `"window.experimental.useSandbox": true` in settings will enable sandbox mode. You should not notice anything changing hopefully, but if you find issues, please report them back to us! +### Markdown language server + + + +### Extensible html notebook renderer + + + ## Documentation and extensions ### Azure Developer CLI (azd) From aec6f470f0cf2ddf20c6510ef96bcef3e5d8743b Mon Sep 17 00:00:00 2001 From: gregvanl Date: Thu, 28 Jul 2022 16:01:13 -0700 Subject: [PATCH 38/70] Update 1.70 Windows keybindings --- build/keybindings/doc.keybindings.win.json | 41 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/build/keybindings/doc.keybindings.win.json b/build/keybindings/doc.keybindings.win.json index 2a88096a5b..8dc5385e22 100644 --- a/build/keybindings/doc.keybindings.win.json +++ b/build/keybindings/doc.keybindings.win.json @@ -304,6 +304,8 @@ "when": "editorTextFocus && hasWordHighlights" }, { "key": "escape", "command": "editor.cancelOperation", "when": "cancellableOperation" }, +{ "key": "ctrl+k ctrl+,", "command": "editor.createFoldingRangeFromSelection", + "when": "editorTextFocus && foldingEnabled" }, { "key": "escape", "command": "editor.debug.action.closeExceptionWidget", "when": "exceptionWidgetVisible" }, { "key": "ctrl+k ctrl+i", "command": "editor.debug.action.showDebugHover", @@ -342,6 +344,8 @@ "when": "hasSymbols" }, { "key": "escape", "command": "editor.gotoNextSymbolFromResult.cancel", "when": "hasSymbols" }, +{ "key": "ctrl+k ctrl+.", "command": "editor.removeManualFoldingRanges", + "when": "editorTextFocus && foldingEnabled" }, { "key": "ctrl+k ctrl+l", "command": "editor.toggleFold", "when": "editorTextFocus && foldingEnabled" }, { "key": "ctrl+shift+]", "command": "editor.unfold", @@ -475,13 +479,17 @@ { "key": "up", "command": "showPrevParameterHint", "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, { "key": "shift+tab", "command": "acceptAlternativeSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "shift+enter", "command": "acceptAlternativeSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "tab", "command": "acceptSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "enter", "command": "acceptSelectedSuggestion", - "when": "acceptSuggestionOnEnter && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, + "when": "acceptSuggestionOnEnter && suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, +{ "key": "shift+escape", "command": "hideCodeActionMenuWidget", + "when": "CodeActionMenuVisible" }, +{ "key": "escape", "command": "hideCodeActionMenuWidget", + "when": "CodeActionMenuVisible" }, { "key": "shift+escape", "command": "hideSuggestWidget", "when": "suggestWidgetVisible && textInputFocus" }, { "key": "escape", "command": "hideSuggestWidget", @@ -640,6 +648,8 @@ "when": "inKeybindings" }, { "key": "escape", "command": "list.clear", "when": "listFocus && listHasSelectionOrFocus && !inputFocus" }, +{ "key": "escape", "command": "list.closeFind", + "when": "listFocus && treeFindOpen" }, { "key": "left", "command": "list.collapse", "when": "listFocus && treeElementCanCollapse && !inputFocus || listFocus && treeElementHasParent && !inputFocus" }, { "key": "ctrl+left", "command": "list.collapseAll", @@ -650,6 +660,10 @@ "when": "listFocus && listSupportsMultiselect && !inputFocus" }, { "key": "shift+up", "command": "list.expandSelectionUp", "when": "listFocus && listSupportsMultiselect && !inputFocus" }, +{ "key": "f3", "command": "list.find", + "when": "listFocus" }, +{ "key": "ctrl+f", "command": "list.find", + "when": "listFocus" }, { "key": "down", "command": "list.focusDown", "when": "listFocus && !inputFocus" }, { "key": "home", "command": "list.focusFirst", @@ -1039,7 +1053,8 @@ { "key": "ctrl+k ctrl+shift+\\", "command": "workbench.action.splitEditorInGroup", "when": "activeEditorCanSplitInGroup" }, { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorOrthogonal" }, -{ "key": "ctrl+shift+b", "command": "workbench.action.tasks.build" }, +{ "key": "ctrl+shift+b", "command": "workbench.action.tasks.build", + "when": "taskCommandsRegistered" }, { "key": "escape", "command": "workbench.action.terminal.clearSelection", "when": "terminalFocus && terminalHasBeenCreated && terminalTextSelected && !terminalFindVisible || terminalFocus && terminalProcessSupported && terminalTextSelected && !terminalFindVisible" }, { "key": "ctrl+shift+c", "command": "workbench.action.terminal.copySelection", @@ -1320,5 +1335,19 @@ { "key": "shift+f4", "command": "references-view.prev", "when": "reference-list.hasResult && references-view.canNavigate" }, { "key": "shift+alt+h", "command": "references-view.showCallHierarchy", - "when": "editorHasCallHierarchyProvider" } + "when": "editorHasCallHierarchyProvider" }, +{ "key": "ctrl+down", "command": "focusNextCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "down", "command": "focusNextCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "ctrl+up", "command": "focusPreviousCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "up", "command": "focusPreviousCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "shift+tab", "command": "onEnterSelectCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "enter", "command": "onEnterSelectCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "ctrl+enter", "command": "onEnterSelectCodeActionWithPreview", + "when": "CodeActionMenuVisible" } ] \ No newline at end of file From aa102432439e28b4a61b2a3453f28ae2b5ce8cca Mon Sep 17 00:00:00 2001 From: Kartik Raj Date: Thu, 28 Jul 2022 23:12:07 +0000 Subject: [PATCH 39/70] Add release notes for getting started experience and interpreter info setting --- release-notes/images/1_70/interpreter-info.png | 3 +++ release-notes/v1_70.md | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 release-notes/images/1_70/interpreter-info.png diff --git a/release-notes/images/1_70/interpreter-info.png b/release-notes/images/1_70/interpreter-info.png new file mode 100644 index 0000000000..fab69d708e --- /dev/null +++ b/release-notes/images/1_70/interpreter-info.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:013fdad4bf8dd81cee0871851e236edef7c37d3b2710e7e54d4baa345a40374e +size 15285 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 8d76892b37..33032d0f93 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -214,7 +214,6 @@ Here's how to use the new behavior in a node launch config. } ``` - ## Contributions to extensions ### Python @@ -223,6 +222,16 @@ Here's how to use the new behavior in a node launch config. We have created an experimental extension named [WWBD](https://marketplace.visualstudio.com/items?itemName=brettcannon.wwbd) to act as a sandbox for environment workflow ideas. As of now we are experimenting with a **Create Environment** command for virtual environments to see if a single command can help users set up a new virtual environment (see the extension page for the full details and other extension features). Please see the [Ideas category](https://github.com/brettcannon/WWBD/discussions/categories/ideas) in the project repository for what ideas we are considering, including conda support. +#### New Getting started experience + +We've polished the Python walkthrough to improve the flow, so users can smoothly transition to installing python if need be and selecting it. Windows Store or appropriate walkthrough tile is opened when Python is not installed, in which users can now auto-run the instructions displayed. Any prompts related to interpreters are now only shown when a user-action is performed which requires it, instead of automatically showing them at start-up leading to a distracting user experience. Also, such prompts are now improved to be more precise about the errors and changes that are needed to be made. + +#### Interpreter information in the status bar + +A new User setting `python.interpreter.infoVisibility` is introduced which controls when information of selected interpreter is displayed in the status bar. It can be set to "Always" to revert to the old behavior where selected interpreter is always displayed regardless of what file is opened. By default, we try our best to only show the information when Python-related files are opened. A warning status is added to indicate situations where selected interpreter is invalid: + +![Interpreter information in the status bar](images/1_70/interpreter-info.png) + ## Preview features ### TypeScript 4.8 support From 5ed9ca3c7ed5cf62539b0bd23918b82fa07e05a3 Mon Sep 17 00:00:00 2001 From: andreamah Date: Thu, 28 Jul 2022 18:16:08 -0700 Subject: [PATCH 40/70] 1.70 release notes --- release-notes/images/1_70/debug-sessions.gif | 3 +++ .../1_70/go-to-most-recently-failed-cell.gif | 3 +++ .../images/1_70/search-decorations.png | 3 +++ .../images/1_70/search-multiselect.gif | 3 +++ release-notes/v1_70.md | 24 +++++++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 release-notes/images/1_70/debug-sessions.gif create mode 100644 release-notes/images/1_70/go-to-most-recently-failed-cell.gif create mode 100644 release-notes/images/1_70/search-decorations.png create mode 100644 release-notes/images/1_70/search-multiselect.gif diff --git a/release-notes/images/1_70/debug-sessions.gif b/release-notes/images/1_70/debug-sessions.gif new file mode 100644 index 0000000000..28ea192dc5 --- /dev/null +++ b/release-notes/images/1_70/debug-sessions.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ed9e84af383c5122344bb8c3016ab980818e3d64f42aee682418becd4738852 +size 171666 diff --git a/release-notes/images/1_70/go-to-most-recently-failed-cell.gif b/release-notes/images/1_70/go-to-most-recently-failed-cell.gif new file mode 100644 index 0000000000..62e378c312 --- /dev/null +++ b/release-notes/images/1_70/go-to-most-recently-failed-cell.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8840c3fede5751a5801650a3f3dead4d45f01fab2699d5201d72edf9044dadb2 +size 604559 diff --git a/release-notes/images/1_70/search-decorations.png b/release-notes/images/1_70/search-decorations.png new file mode 100644 index 0000000000..b97fd29f78 --- /dev/null +++ b/release-notes/images/1_70/search-decorations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01c1736f850de8d50fe951d28f82927716b45bdce099cf49586fe43b6b641977 +size 82917 diff --git a/release-notes/images/1_70/search-multiselect.gif b/release-notes/images/1_70/search-multiselect.gif new file mode 100644 index 0000000000..49da802f52 --- /dev/null +++ b/release-notes/images/1_70/search-multiselect.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c43e7d2cc0916578f3eacf1f6e126312dc0a7b5c39bf66a0f3f9aa600a9052c2 +size 1348404 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 8dcdc8f16a..0b431e605a 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -56,6 +56,16 @@ This enables to use VS Code as merge tool for Git, for example, if you configure cmd = code-insiders --wait --merge $REMOTE $LOCAL $BASE $MERGED ``` +### Search File Decorations +Search results in the search viewlet now feature file decorations and colors 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 File Decorations](images/1_70/search-decorations.png) + +### Search Multi-select +The search viewlet now also supports multi-select. Any actions (i.e., dismiss or replace) that you perform on one result in the selection will also be performed on the other selected items. + +![Search Multi-select Demo](images/1_70/search-multiselect.gif) + ## Terminal ### Shell integration enabled by default @@ -214,6 +224,20 @@ Here's how to use the new behavior in a node launch config. } ``` +### Picker for Debug Sessions +When debugging, you can now run `Debug: Select Debug Session` in the command palette. This shows a picker with your active debug sessions, which you can use to search and filter your individual debug sessions. The description for each picker item will show the session that spawned it, if applicable. Selecting an item in the picker will open the debug console from within the context of the selected debug session. + +![Debug Session Picker Demo](images/1_70/debug-sessions.gif) + +## Notebooks + +### "Go To" Button for Most Recently Failed Cell +If your most recently run cell failed, then there is now a button that will jump to that cell. You can also run `Notebook: Go to Most Recently Failed Cell` to perform the same action. + +This is particularly useful when you run a group of cells and want to know which cell failed and halted the group execution. + +!["Go To Most Recently Failed Cell" Demo](images/1_70/go-to-most-recently-failed-cell.gif) + ## Contributions to extensions ### Python From 4220c9ff8d926473765b3ccdcbbe67bf5e2c85bc Mon Sep 17 00:00:00 2001 From: gregvanl Date: Thu, 28 Jul 2022 20:40:50 -0700 Subject: [PATCH 41/70] Update 1.70 settings --- docs/getstarted/settings.md | 79 ++++++++++++++++++++---------- docs/terminal/shell-integration.md | 4 +- 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/docs/getstarted/settings.md b/docs/getstarted/settings.md index d170b37042..ab8cb8a654 100644 --- a/docs/getstarted/settings.md +++ b/docs/getstarted/settings.md @@ -367,7 +367,7 @@ Below are the Visual Studio Code default settings and their values. You can also // - inherit: Lines will wrap according to the `editor.wordWrap` setting. "diffEditor.wordWrap": "inherit", - // Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character. + // Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`; `) can be a commit character that accepts a suggestion and types that character. "editor.acceptSuggestionOnCommitCharacter": true, // Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions. @@ -488,6 +488,9 @@ Below are the Visual Studio Code default settings and their values. You can also // Controls whether the editor should allow moving selections via drag and drop. "editor.dragAndDrop": true, + // Controls whether you can drag and drop a file into a text editor by holding down `shift` (instead of opening the file in an editor). + "editor.dropIntoEditor.enabled": true, + // Controls whether copying without a selection copies the current line. "editor.emptySelectionClipboard": true, @@ -861,6 +864,7 @@ Below are the Visual Studio Code default settings and their values. You can also // Controls when the folding controls on the gutter are shown. // - always: Always show the folding controls. + // - never: Never show the folding controls and reduce the gutter size. // - mouseover: Only show the folding controls when the mouse is over the gutter. "editor.showFoldingControls": "mouseover", @@ -873,6 +877,9 @@ Below are the Visual Studio Code default settings and their values. You can also // Controls whether the editor will scroll using an animation. "editor.smoothScrolling": false, + // Controls if surround-with-snippets or file template snippets show as Code Actions. + "editor.snippets.codeActions.enabled": true, + // Controls whether snippets are shown with other suggestions and how they are sorted. // - top: Show snippet suggestions on top of other suggestions. // - bottom: Show snippet suggestions below other suggestions. @@ -1238,7 +1245,8 @@ Below are the Visual Studio Code default settings and their values. You can also // If an editor matching one of the listed types is opened as the first in an editor group and more than one group is open, the group is automatically locked. Locked groups will only be used for opening editors when explicitly chosen by user gesture (e.g. drag and drop), but not by default. Consequently the active editor in a locked group is less likely to be replaced accidentally with a different editor. "workbench.editor.autoLockGroups": { "default": false, - "workbench.input.interactive": false, + "mergeEditor.Input": false, + "vscode-interactive-input": false, "interactive": false, "workbench.editorinputs.searchEditorInput": false, "imagePreview.previewEditor": false, @@ -1424,8 +1432,10 @@ Below are the Visual Studio Code default settings and their values. You can also // - both: Shows both the dropdown and toggle buttons. "workbench.layoutControl.type": "both", - // Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut. - "workbench.list.automaticKeyboardNavigation": true, + // Controls the default find mode for lists and trees in the workbench. + // - highlight: Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements. + // - filter: Filter elements when searching. + "workbench.list.defaultFindMode": "highlight", // Scrolling speed multiplier when pressing `Alt`. "workbench.list.fastScrollSensitivity": 5, @@ -1433,12 +1443,6 @@ Below are the Visual Studio Code default settings and their values. You can also // Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication. "workbench.list.horizontalScrolling": false, - // Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter. - // - simple: Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes. - // - highlight: Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements. - // - filter: Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input. - "workbench.list.keyboardNavigation": "highlight", - // A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. "workbench.list.mouseWheelScrollSensitivity": 1, @@ -2242,6 +2246,9 @@ Below are the Visual Studio Code default settings and their values. You can also // Enable/disable default JSON formatter "json.format.enable": true, + // Keep all existing new lines when formatting. + "json.format.keepLines": false, + // The maximum number of outline symbols and folding regions computed (limited for performance reasons). "json.maxItemsComputed": 5000, @@ -2306,7 +2313,7 @@ Below are the Visual Studio Code default settings and their values. You can also "markdown.suggest.paths.enabled": true, // Enable debug logging for the Markdown extension. - "markdown.trace": "off", + "markdown.trace.extension": "off", // PHP @@ -3128,9 +3135,6 @@ Below are the Visual Studio Code default settings and their values. You can also // Notebooks - // Automatically scroll the interactive window to show the output of the last statement executed. If this value is false, the window will only scroll if the last cell was already the one scrolled to. - "interactiveWindow.alwaysScrollOnNewCell": true, - // Controls whether code cells in the interactive window are collapsed by default. "interactiveWindow.collapseCellInputCode": "fromEditor", @@ -3206,7 +3210,7 @@ Below are the Visual Studio Code default settings and their values. You can also // The font family for the output text for notebook cells. When set to empty, the `editor.fontFamily` is used. "notebook.outputFontFamily": "", - // Font size for the output text for notebook cells. When set to 0 `editor.fontSize` is used. + // Font size for the output text for notebook cells. When set to 0, `editor.fontSize` is used. "notebook.outputFontSize": 0, // Line height of the output text for notebook cells. @@ -3222,12 +3226,16 @@ Below are the Visual Studio Code default settings and their values. You can also // Controls when the Markdown header folding arrow is shown. // - always: The folding controls are always visible. + // - never: Never show the folding controls and reduce the gutter size. // - mouseover: The folding controls are visible only on mouseover. "notebook.showFoldingControls": "mouseover", // Whether to use separate undo/redo stack for each cell. "notebook.undoRedoPerCell": true, + // Automatically scroll the interactive window to show the output of the last statement executed. If this value is false, the window will only scroll if the last cell was already the one scrolled to. + "interactiveWindow.alwaysScrollOnNewCell": true, + // Terminal // When opening a file from the Explorer in a terminal, determines what kind of terminal will be launched @@ -3251,19 +3259,19 @@ Below are the Visual Studio Code default settings and their values. You can also // Whether or not to allow chord keybindings in the terminal. Note that when this is true and the keystroke results in a chord it will bypass `terminal.integrated.commandsToSkipShell`, setting this to false is particularly useful when you want ctrl+k to go to your shell (not VS Code). "terminal.integrated.allowChords": true, - // Whether to allow menubar mnemonics (eg. alt+f) to trigger the open of the menubar. Note that this will cause all alt keystrokes to skip the shell when true. This does nothing on macOS. + // Whether to allow menubar mnemonics (for example, Alt+F) to trigger the open of the menubar. Note that this will cause all alt keystrokes to skip the shell when true. This does nothing on macOS. "terminal.integrated.allowMnemonics": false, // If enabled, alt/option + click will reposition the prompt cursor to underneath the mouse when `editor.multiCursorModifier` is set to `'alt'` (the default value). This may not work reliably depending on your shell. "terminal.integrated.altClickMovesCursor": true, - // The terminal profile to use on Linux for automation-related terminal usage like tasks and debug. This setting will currently be ignored if #terminal.integrated.automationShell.linux# is set. + // The terminal profile to use on Linux for automation-related terminal usage like tasks and debug. This setting will currently be ignored if `terminal.integrated.automationShell.linux` is set. "terminal.integrated.automationProfile.linux": null, - // The terminal profile to use on macOS for automation-related terminal usage like tasks and debug. This setting will currently be ignored if #terminal.integrated.automationShell.osx# is set. + // The terminal profile to use on macOS for automation-related terminal usage like tasks and debug. This setting will currently be ignored if `terminal.integrated.automationShell.osx` is set. "terminal.integrated.automationProfile.osx": null, - // The terminal profile to use for automation-related terminal usage like tasks and debug. This setting will currently be ignored if #terminal.integrated.automationShell.windows# is set. + // The terminal profile to use for automation-related terminal usage like tasks and debug. This setting will currently be ignored if `terminal.integrated.automationShell.windows` is set. "terminal.integrated.automationProfile.windows": null, // A set of messages that when encountered in the terminal will be automatically responded to. Provided the message is specific enough, this can help automate away common responses. @@ -3465,20 +3473,24 @@ Below are the Visual Studio Code default settings and their values. You can also // Dispatches most keybindings to the terminal instead of the workbench, overriding `terminal.integrated.commandsToSkipShell`, which can be used alternatively for fine tuning. "terminal.integrated.sendKeybindingsToShell": false, - // Controls the icon that will be used for skipped/empty commands. Set to `''` to hide the icon or disable decorations with `terminal.integrated.shellIntegration.decorationsEnabled` + // Controls the icon that will be used for skipped/empty commands. Set to `""` to hide the icon or disable decorations with `terminal.integrated.shellIntegration.decorationsEnabled`. "terminal.integrated.shellIntegration.decorationIcon": "circle-outline", - // Controls the icon that will be used for each command in terminals with shell integration enabled that do have an associated exit code. Set to `''` to hide the icon or disable decorations with `terminal.integrated.shellIntegration.decorationsEnabled`. + // Controls the icon that will be used for each command in terminals with shell integration enabled that do have an associated exit code. Set to `""` to hide the icon or disable decorations with `terminal.integrated.shellIntegration.decorationsEnabled`. "terminal.integrated.shellIntegration.decorationIconError": "error-small", - // Controls the icon that will be used for each command in terminals with shell integration enabled that do not have an associated exit code. Set to `''` to hide the icon or disable decorations with `terminal.integrated.shellIntegration.decorationsEnabled` + // Controls the icon that will be used for each command in terminals with shell integration enabled that do not have an associated exit code. Set to `""` to hide the icon or disable decorations with `terminal.integrated.shellIntegration.decorationsEnabled`. "terminal.integrated.shellIntegration.decorationIconSuccess": "primitive-dot", // When shell integration is enabled, adds a decoration for each command. - "terminal.integrated.shellIntegration.decorationsEnabled": true, + // - both: Show decorations in the gutter (left) and overview ruler (right) + // - gutter: Show gutter decorations to the left of the terminal + // - overviewRuler: Show overview ruler decorations to the right of the terminal + // - never: Do not show decorations + "terminal.integrated.shellIntegration.decorationsEnabled": "both", - // Enable features like enhanced command tracking and current working directory detection. - "terminal.integrated.shellIntegration.enabled": false, + // Determines whether or not shell integration is auto-injected to support features like enhanced command tracking and current working directory detection. + "terminal.integrated.shellIntegration.enabled": true, // Controls the number of recently used commands to keep in the terminal command history. Set to 0 to disable terminal command history. "terminal.integrated.shellIntegration.history": 100, @@ -3495,6 +3507,12 @@ Below are the Visual Studio Code default settings and their values. You can also // - inherited: On macOS and Linux, a new split terminal will use the working directory of the parent terminal. On Windows, this behaves the same as initial. "terminal.integrated.splitCwd": "inherited", + // A theme color ID to associate with terminal icons by default. + "terminal.integrated.tabs.defaultColor": null, + +// A codicon ID to associate with terminal icons by default. + "terminal.integrated.tabs.defaultIcon": "terminal", + // Controls the terminal description, which appears to the right of the title. Variables are substituted based on the context: // - `${cwd}`: the terminal's current working directory // - `${cwdFolder}`: the terminal's current working directory, displayed for multi-root workspaces or in a single root workspace when the value differs from the initial working directory. @@ -3572,6 +3590,12 @@ Below are the Visual Studio Code default settings and their values. You can also // Tasks + // Enable automatic tasks in the folder. + // - on: Always + // - auto: Prompt for permission for each folder + // - off: Never + "task.allowAutomaticTasks": "auto", + // Controls enablement of `provideTasks` for all task provider extension. If the Tasks: Run Task command is slow, disabling auto detect for task providers may help. Individual extensions may also provide settings that disable auto detection. "task.autoDetect": "on", @@ -4245,6 +4269,9 @@ Below are the Visual Studio Code default settings and their values. You can also // Specifies how much information (if any) to log to the Git output. "git.logLevel": "Info", + // Open the merge editor for files that are currently under conflict. + "git.mergeEditor": true, + // Controls whether to open a repository automatically after cloning. // - always: Always open in current window. // - alwaysNewWindow: Always open in a new window. @@ -4299,7 +4326,7 @@ Below are the Visual Studio Code default settings and their values. You can also // List of paths to search for git repositories in. "git.scanRepositories": [], - // Controls whether an action button can be shown in the Source Control view. + // Controls whether an action button is shown in the Source Control view. "git.showActionButton": { "commit": true, "publish": true, diff --git a/docs/terminal/shell-integration.md b/docs/terminal/shell-integration.md index 3d27b14b40..65b3d943d9 100644 --- a/docs/terminal/shell-integration.md +++ b/docs/terminal/shell-integration.md @@ -55,7 +55,7 @@ Add the following to your `~/.zshrc` file. Run `code ~/.zshrc` in bash to open t [[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)" ``` -#### Portability vs performance +#### Portability versus performance The recommended approach above to install shell integration relies on executing our CLI to find the path to the shell integration script, this is great at it works cross-platform and also with all install types provided `code` in on the `$PATH`. This currently launches Node.js in order to fetch the path though which can add a small delay to shell startup. To reduce this, you can inline the script above by resolving the path ahead of time and adding it directly into your init script. @@ -197,7 +197,7 @@ There are several cases where automatic injection doesn't work, here are some co The likely cause of this is that your system has shell integration for another terminal installed that [VS Code understands](#final-term-shell-integration). If you don't want any decorations, you can hide them with the following setting: ```json -"terminal.integrated.shellIntegration.decorationsEnabled": false +"terminal.integrated.shellIntegration.decorationsEnabled": never ``` Alternatively, you could remove the shell integration script from your shell rc/startup script but you will lose access to command-aware features like [command navigation](#command-navigation). From acb733be2ba61495975945baaa05f7ac9c198061 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 29 Jul 2022 09:12:20 +0200 Subject: [PATCH 42/70] thank yous --- release-notes/v1_70.md | 95 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 0b431e605a..7b00eaa591 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -342,5 +342,98 @@ The Azure Developer CLI uses [extensible templates](https://github.com/topics/az With the Azure Developer CLI, you can initialize, provision, and deploy an application, or better yet, use `'azd up'` to do so in one step! For a list of supported `azd` commands, see the [Developer CLI reference](https://docs.microsoft.com/en-us/azure/developer/azure-developer-cli/reference). +## Thank you + +Last but certainly not least, a big _**Thank You**_ to the contributors of VS Code. + +### Issue tracking + +Contributions to our issue tracking: + +* [John Murray (@gjsjohnmurray)](https://github.com/gjsjohnmurray) +* [Andrii Dieiev (@IllusionMH)](https://github.com/IllusionMH) +* [Simon Chan (@yume-chan)](https://github.com/yume-chan) + +### Pull requests + +Contributions to `vscode`: + +* [@0evan (Evan Spensley)](https://github.com/0evan): Distinguish testing decoration labels [PR #155433](https://github.com/microsoft/vscode/pull/155433) +* [@amanasifkhalid (Aman Khalid)](https://github.com/amanasifkhalid): Close #134566: Added settings for terminal tab default color/icon [PR #147463](https://github.com/microsoft/vscode/pull/147463) +* [@angelozerr (Angelo)](https://github.com/angelozerr): Contribute to html language server with a custom language. [PR #146731](https://github.com/microsoft/vscode/pull/146731) +* [@babakks (Babak K. Shandiz)](https://github.com/babakks) + * 🎁 Add "Surround with snippet" to quick fix menu [PR #152718](https://github.com/microsoft/vscode/pull/152718) + * 🔨 Fix markdown diagnostics issue with files having dot in their names [PR #153206](https://github.com/microsoft/vscode/pull/153206) +* [@Balastrong (Leonardo Montini)](https://github.com/Balastrong): Properly display the warning message [PR #154266](https://github.com/microsoft/vscode/pull/154266) +* [@CGNonofr (Loïc Mangeonjean)](https://github.com/CGNonofr): Provide trigger and documentation to monaco code action provider [PR #149937](https://github.com/microsoft/vscode/pull/149937) +* [@eamodio (Eric Amodio)](https://github.com/eamodio): Closes #54285 adds webview/context contribution [PR #154524](https://github.com/microsoft/vscode/pull/154524) +* [@eltociear (Ikko Ashimine)](https://github.com/eltociear): Fix typo in languageDetectionWorkerServiceImpl.ts [PR #155923](https://github.com/microsoft/vscode/pull/155923) +* [@fadeevab (Alexander Fadeev)](https://github.com/fadeevab): Add Makefile tests for upgraded grammar: comma, comment, shebang [PR #154625](https://github.com/microsoft/vscode/pull/154625) +* [@FantasqueX (FantasqueX)](https://github.com/FantasqueX): Replace the deprecated canceled with Cancellation Error. [PR #156094](https://github.com/microsoft/vscode/pull/156094) +* [@ferdnyc (Frank Dana)](https://github.com/ferdnyc) + * RPM: Make /usr/bin/code owned by package [PR #142907](https://github.com/microsoft/vscode/pull/142907) + * Remove fakeroot wrapper, when building .rpm packages [PR #153249](https://github.com/microsoft/vscode/pull/153249) +* [@gjsjohnmurray (John Murray)](https://github.com/gjsjohnmurray) + * Warn user when they open a file within the install folder tree (#138815) [PR #155443](https://github.com/microsoft/vscode/pull/155443) + * Try to prevent update of user-type Windows installation when running as admin (#148428) [PR #155631](https://github.com/microsoft/vscode/pull/155631) +* [@jbicker (Jan Bicker)](https://github.com/jbicker): Fixed wrong SignatureInformation.activeParameter comment [PR #155279](https://github.com/microsoft/vscode/pull/155279) +* [@jeanp413 (Jean Pierre)](https://github.com/jeanp413): Proposal TerminalExitStatus.reason [PR #152833](https://github.com/microsoft/vscode/pull/152833) +* [@jlelong (Jerome Lelong)](https://github.com/jlelong): Add word boundary to bracket pair delimiters starting or ending with letters [PR #151204](https://github.com/microsoft/vscode/pull/151204) +* [@joscol (Joshua Cole)](https://github.com/joscol): Allow CommentNode to change body text and enter edit mode at the same time [PR #155767](https://github.com/microsoft/vscode/pull/155767) +* [@jzyrobert (Robert Jin)](https://github.com/jzyrobert) + * Add Expand all button in explorer view [PR #153614](https://github.com/microsoft/vscode/pull/153614) + * Edit showFoldingControls to have a never setting [PR #153764](https://github.com/microsoft/vscode/pull/153764) +* [@liby (Bryan Lee)](https://github.com/liby): Add support for angle bracket matching and colorization in Typescript [PR #151705](https://github.com/microsoft/vscode/pull/151705) +* [@mingwiki](https://github.com/mingwiki): Fix Socks5 Proxy Regex Checking Warning [PR #144954](https://github.com/microsoft/vscode/pull/144954) +* [@MonadChains (MonadChains)](https://github.com/MonadChains): Add command to copy output of the last command (#152097) [PR #153235](https://github.com/microsoft/vscode/pull/153235) +* [@nirabhromakhal (nirabhromakhal)](https://github.com/nirabhromakhal): Fixed issue where status bar can overflow without affecting notification beak [PR #155649](https://github.com/microsoft/vscode/pull/155649) +* [@PieterBranderhorst](https://github.com/PieterBranderhorst): Make hidden fold ranges independent of range provider, add manual fol… [PR #139779](https://github.com/microsoft/vscode/pull/139779) +* [@pingren (Ping)](https://github.com/pingren) + * Fix #114461 [PR #151824](https://github.com/microsoft/vscode/pull/151824) + * Fix tab position when wrapping tabs [PR #156116](https://github.com/microsoft/vscode/pull/156116) +* [@pwxn (Paul Landers)](https://github.com/pwxn): Add commands to scroll editor to top/bottom [PR #155861](https://github.com/microsoft/vscode/pull/155861) +* [@qingpeng9802 (Qingpeng Li)](https://github.com/qingpeng9802): Remove es5 class compat [PR #153853](https://github.com/microsoft/vscode/pull/153853) +* [@r3m0t (Tomer Chachamu)](https://github.com/r3m0t) + * Fix test error not showing when expanded [PR #153994](https://github.com/microsoft/vscode/pull/153994) + * Update breadcrumbs when workspace folders update [PR #154616](https://github.com/microsoft/vscode/pull/154616) +* [@SamirPS (SamirAk)](https://github.com/SamirPS): Code scanning: deprecation of CodeQL Action v1 [PR #156271](https://github.com/microsoft/vscode/pull/156271) +* [@ssigwart (Stephen Sigwart)](https://github.com/ssigwart) + * Fix terminals in editor area not reloading [PR #151852](https://github.com/microsoft/vscode/pull/151852) + * Fix Suggestion Widget Hanging [PR #152011](https://github.com/microsoft/vscode/pull/152011) + * Add keybindings for search editor file filters [PR #153954](https://github.com/microsoft/vscode/pull/153954) + * Detect terminal links with space, then line:col [PR #153957](https://github.com/microsoft/vscode/pull/153957) + * Fix menu shortcuts not working after a webview is shown [PR #154648](https://github.com/microsoft/vscode/pull/154648) +* [@SvanT (Svante Boberg)](https://github.com/SvanT): Add missing disposals [PR #155976](https://github.com/microsoft/vscode/pull/155976) +* [@yiliang114 (易良)](https://github.com/yiliang114): fix: typos [PR #155310](https://github.com/microsoft/vscode/pull/155310) + +Contributions to `vscode-docs`: + +* [@dlech (David Lechner)](https://github.com/dlech): Update linux.md [PR #5450](https://github.com/microsoft/vscode-docs/pull/5450) +* [@Evavic44 (Victor Eke )](https://github.com/Evavic44): docs: remove example reference from faq section [PR #5410](https://github.com/microsoft/vscode-docs/pull/5410) +* [@timdaman (Tim Laurence)](https://github.com/timdaman): Fix directory command [PR #5460](https://github.com/microsoft/vscode-docs/pull/5460) + +Contributions to `vscode-generator-code`: + +* [@hawkticehurst (Hawk Ticehurst)](https://github.com/hawkticehurst) + * Add link to UX guidelines in quickstart markdown files [PR #358](https://github.com/microsoft/vscode-generator-code/pull/358) + * Template consistency pass [PR #360](https://github.com/microsoft/vscode-generator-code/pull/360) +* [@MatejKastak](https://github.com/MatejKastak): chore: Unify indentation in generated package.json [PR #357](https://github.com/microsoft/vscode-generator-code/pull/357) +* [@nhedger (Nicolas Hedger)](https://github.com/nhedger): Add pnpm as a package manager [PR #339](https://github.com/microsoft/vscode-generator-code/pull/339) + +Contributions to `vscode-js-debug`: + +* [@Balastrong (Leonardo Montini)](https://github.com/Balastrong): Double check if native tostring is [object *] [PR #1339](https://github.com/microsoft/vscode-js-debug/pull/1339) + +Contributions to `vscode-json-languageservice`: + +* [@bytemain (Artin)](https://github.com/bytemain): feat: support number const [PR #141](https://github.com/microsoft/vscode-json-languageservice/pull/141) +* [@octogonz (Pete Gonzalez)](https://github.com/octogonz): Don't report "Duplicate object key" when "//" is used for comments [PR #144](https://github.com/microsoft/vscode-json-languageservice/pull/144) + +Contributions to `monaco-editor`: + +* [@alexander-zw (Alexander Wu)](https://github.com/alexander-zw): [webpack readme] Add how to get languages/features [PR #3171](https://github.com/microsoft/monaco-editor/pull/3171) +* [@MasterOdin (Matthew Peveler)](https://github.com/MasterOdin): Remove duplicate testcases for mysql [PR #3138](https://github.com/microsoft/monaco-editor/pull/3138) +* [@tonilastre (Toni)](https://github.com/tonilastre): Add config and tokenizer for query language Cypher [PR #3102](https://github.com/microsoft/monaco-editor/pull/3102) + - + \ No newline at end of file From 53c7511cd0da49d39f2f4d40ffadbbdb6d175d5a Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 29 Jul 2022 10:11:01 +0200 Subject: [PATCH 43/70] add set/clear display language in web --- release-notes/images/1_70/clear-display-language.png | 3 +++ release-notes/images/1_70/set-display-language.png | 3 +++ release-notes/v1_70.md | 12 ++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 release-notes/images/1_70/clear-display-language.png create mode 100644 release-notes/images/1_70/set-display-language.png diff --git a/release-notes/images/1_70/clear-display-language.png b/release-notes/images/1_70/clear-display-language.png new file mode 100644 index 0000000000..2cc6c9f0bc --- /dev/null +++ b/release-notes/images/1_70/clear-display-language.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:248fd6b96a4a16a61dbb29b5dda89cb4dabf3e5606f4c10e5ceafa79a742de70 +size 174072 diff --git a/release-notes/images/1_70/set-display-language.png b/release-notes/images/1_70/set-display-language.png new file mode 100644 index 0000000000..2600045dec --- /dev/null +++ b/release-notes/images/1_70/set-display-language.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76399cd413bf9968f0bb8b6fd333444040fcc2e4ab78b86054cea7ad989c6352 +size 378513 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 7b00eaa591..7cdfe4fcbb 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -238,6 +238,18 @@ This is particularly useful when you run a group of cells and want to know which !["Go To Most Recently Failed Cell" Demo](images/1_70/go-to-most-recently-failed-cell.gif) +## VS Code for the Web + +### Set Display Language + +You can now set the display language of the browser using **Set Display Language** button available on the language pack extension. + +![Set Display Language](images/1_70/set-display-language.png) + +Once set, you can clear the display language by clicking the **Clear Display Language** button available on the language pack extension whose language is currently set. + +![Clear Display Language](images/1_70/clear-display-language.png) + ## Contributions to extensions ### Python From 6ffa24fcafd8ccda3e040827edc093a4b2846142 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 29 Jul 2022 10:26:07 +0200 Subject: [PATCH 44/70] Add settings profiles doc --- release-notes/v1_70.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 7cdfe4fcbb..4884e6a693 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -276,6 +276,12 @@ This update includes support for the upcoming TypeScript 4.8 release. See the [T To start using the TypeScript 4.8 nightly builds, install the [TypeScript Nightly](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next) extension. +### Settings Profiles + +We have been working the last couple of months to support **Settings Profiles** in VS Code, which is one of the most popular asks from the community. This feature is available for preview in the [Insiders](https://code.visualstudio.com/insiders/) release via `workbench.experimental.settingsProfiles.enabled` setting. Please try out this feature and let us know your feedback by creating issues in our [VS Code Repository](https://github.com/microsoft/vscode/issues) or commenting in [issue #116740](https://github.com/microsoft/vscode/issues/116740). + +In this milestone we added support for **Settings Profiles** feature in the insiders release of VS Code for the Web via `workbench.experimental.settingsProfiles.enabled` setting. You can try this feature in the web using [insiders.vscode.dev](https://insiders.vscode.dev) + ## Extension Authoring ### 'not in' operator for 'when' clauses From a699bfc3efb8a5bb545fcad319d04cf441e5c315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 29 Jul 2022 09:38:58 +0100 Subject: [PATCH 45/70] docs: tree find widget --- release-notes/images/1_70/tree-filter.gif | 3 +++ release-notes/v1_70.md | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 release-notes/images/1_70/tree-filter.gif diff --git a/release-notes/images/1_70/tree-filter.gif b/release-notes/images/1_70/tree-filter.gif new file mode 100644 index 0000000000..765251b7e7 --- /dev/null +++ b/release-notes/images/1_70/tree-filter.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37dde7fd3d13a84582212e32dfe96726066ae99c796acca34e56cfb5bc506390 +size 3565573 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 4884e6a693..094f663f2e 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -66,6 +66,12 @@ The search viewlet now also supports multi-select. Any actions (i.e., dismiss or ![Search Multi-select Demo](images/1_70/search-multiselect.gif) +### Tree find widget + +Trees now have support for the find widget. You can press `kbstyle(Ctrl/Cmd+F)` inside trees to pop up the find widget. You can use the find widget to highlight matched elements and/or hide all elements which do not match the search term. + +![Tree find widget](images/1_70/tree-filter.gif) + ## Terminal ### Shell integration enabled by default From c9a116f5dbc413adb54719a7b9eed1951aa480f4 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Fri, 29 Jul 2022 11:23:44 +0200 Subject: [PATCH 46/70] Add placeholders --- release-notes/v1_70.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 094f663f2e..19fc24a2fa 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -235,6 +235,12 @@ When debugging, you can now run `Debug: Select Debug Session` in the command pal ![Debug Session Picker Demo](images/1_70/debug-sessions.gif) +## Languages + +### Keep newlines when formatting JSON + +TODO@aiday-mar + ## Notebooks ### "Go To" Button for Most Recently Failed Cell @@ -276,6 +282,10 @@ A new User setting `python.interpreter.infoVisibility` is introduced which contr ## Preview features +### Sticky Scroll + +TODO@aiday-mar + ### TypeScript 4.8 support This update includes support for the upcoming TypeScript 4.8 release. See the [TypeScript 4.8 iteration plan](https://github.com/microsoft/TypeScript/issues/49074) for more details on what the TypeScript team is currently working on. @@ -460,4 +470,4 @@ Contributions to `monaco-editor`: * [@tonilastre (Toni)](https://github.com/tonilastre): Add config and tokenizer for query language Cypher [PR #3102](https://github.com/microsoft/monaco-editor/pull/3102) - \ No newline at end of file + From 778575109fe725201f6012380ea21811ab2cce1a Mon Sep 17 00:00:00 2001 From: aiday-mar Date: Fri, 29 Jul 2022 12:29:04 +0200 Subject: [PATCH 47/70] Writing the release notes for the keep lines option and the sticky scroll --- release-notes/images/1_70/sticky-scroll.gif | 3 +++ release-notes/v1_70.md | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 release-notes/images/1_70/sticky-scroll.gif diff --git a/release-notes/images/1_70/sticky-scroll.gif b/release-notes/images/1_70/sticky-scroll.gif new file mode 100644 index 0000000000..3e0d2e17b2 --- /dev/null +++ b/release-notes/images/1_70/sticky-scroll.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8d543e35f10a136763ff82e0f4eb8e4e207ea411a0507e2a8604dfb07da4318 +size 784470 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 19fc24a2fa..47fc036c66 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -239,7 +239,7 @@ When debugging, you can now run `Debug: Select Debug Session` in the command pal ### Keep newlines when formatting JSON -TODO@aiday-mar +This feature allows one to keep the initial line positions upon line formatting of 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, enable the option `JSON > Format: Keep Lines` in the settings. ## Notebooks @@ -284,7 +284,9 @@ A new User setting `python.interpreter.infoVisibility` is introduced which contr ### Sticky Scroll -TODO@aiday-mar +It is now possible to display a widget showing in which scope the user is in during scrolling. The sticky scroll widget will show in which class/interface/namespace/function/method/constructor the top of the viewport is in, allowing for easier localization within a document. + +!["Sticky Scroll" Demo](images/1_70/sticky-scroll.gif) ### TypeScript 4.8 support From 0b1841f71ebf8ac54a79cc92f57c78976cd4f1f7 Mon Sep 17 00:00:00 2001 From: Philipp Kief Date: Fri, 29 Jul 2022 14:29:44 +0200 Subject: [PATCH 48/70] Fix typo Fixed a small typo in the release letter :) --- release-notes/v1_70.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 47fc036c66..a5cb54cde3 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -31,7 +31,7 @@ Manual folding ranges can be removed again with the command `Remove Manual Foldi ### Preserve folded ranges -VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same locationor by using the command `Remove Manual Folding Ranges`. +VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same location or by using the command `Remove Manual Folding Ranges`. ![restored folding ranges](./images/1_70/restored-folding-ranges.gif) From 460fdec585b2b4f63904eeb0d19adc103fa5e3e2 Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Fri, 29 Jul 2022 11:26:02 -0400 Subject: [PATCH 49/70] Add my release notes --- release-notes/images/1_70/new-file.png | 3 +++ release-notes/v1_70.md | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 release-notes/images/1_70/new-file.png diff --git a/release-notes/images/1_70/new-file.png b/release-notes/images/1_70/new-file.png new file mode 100644 index 0000000000..9c9a8d6399 --- /dev/null +++ b/release-notes/images/1_70/new-file.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c6dd8eb9ed7958225dabcf6c3319d4f803fc7e51ab7d7774fba7fffe00a6ac9 +size 29685 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index a5cb54cde3..e0e53e7f12 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -72,6 +72,11 @@ Trees now have support for the find widget. You can press `kbstyle(Ctrl/Cmd+F)` ![Tree find widget](images/1_70/tree-filter.gif) +### 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 may 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) + ## Terminal ### Shell integration enabled by default From ad524cc41096b2821af40ca6928a0ca4cc7b4c97 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Fri, 29 Jul 2022 10:01:12 -0700 Subject: [PATCH 50/70] Add Debian package dependencies notes, Settings profiles demo --- release-notes/images/1_70/settings-profiles.gif | 3 +++ release-notes/v1_70.md | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 release-notes/images/1_70/settings-profiles.gif diff --git a/release-notes/images/1_70/settings-profiles.gif b/release-notes/images/1_70/settings-profiles.gif new file mode 100644 index 0000000000..3dd5d1ad7d --- /dev/null +++ b/release-notes/images/1_70/settings-profiles.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:621db685d9f5d77961d7300462175c208973bd6e2d45053768801afeec70c447 +size 1038363 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index e0e53e7f12..9fc44a58bd 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -305,6 +305,10 @@ We have been working the last couple of months to support **Settings Profiles** In this milestone we added support for **Settings Profiles** feature in the insiders release of VS Code for the Web via `workbench.experimental.settingsProfiles.enabled` setting. You can try this feature in the web using [insiders.vscode.dev](https://insiders.vscode.dev) +![Settings Profiles demo, showing the theme, zoom level, and activity bar position changing as the profile is switched](images/1_70/settings-profiles.gif) + +_Theme: [Light Pink](https://marketplace.visualstudio.com/items?itemName=mgwg.light-pink-theme)_ + ## Extension Authoring ### 'not in' operator for 'when' clauses @@ -371,6 +375,10 @@ For the curious out there, configuring `"window.experimental.useSandbox": true` +### Debian package dependencies + +Debian package dependencies are now generated by a script rather than hard-coded. This closes an [issue filed back in 2016](https://github.com/microsoft/vscode/issues/13089) where missing dependencies would cause the program to crash during runtime on some machines. + ## Documentation and extensions ### Azure Developer CLI (azd) From 5007542e053df86afa5638ca5554a660f6a30b6b Mon Sep 17 00:00:00 2001 From: meganrogge Date: Fri, 29 Jul 2022 10:19:52 -0700 Subject: [PATCH 51/70] add task updates --- .vscode/settings.json | 3 ++- release-notes/v1_70.md | 23 +++++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c96a3db8f6..cfb44d9d87 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,6 @@ "files.trimTrailingWhitespace": true, "files.associations": { "**/toc.json": "jsonc" - } + }, + "terminal.integrated.tabs.defaultColor": "terminal.ansiMagenta" } \ No newline at end of file diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index e0e53e7f12..a6e2086cf1 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -177,21 +177,26 @@ Several improvements were made to terminal rendering when GPU acceleration is en ### Default color and icon tab settings -TODO@meganrogge: Example of multi-root repo +The defauult icon and terminal tab color can be set now per folder using `terminal.integrated.tabs.defaultIcon` and `terminal.integrated.tabs.defaultColor`. ## Tasks -### Task reconnection +### Filter support for run task command -TODO@meganrogge: Should this be experimental with a setting and in preview features? +The `Tasks: Run Task` action supports filtering by task name and type for a more concise and configurable way to select and execute tasks. -### Filter support for run task command +For example: +``` +args: { + task: "VS Code - Build" + type: "npm" +} +``` -TODO@meganrogge ### Improved automatic tasks flow -TODO@meganrogge: Call out how trusted workspaces allowed us to change to a regular setting? +The trusted workspaces 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 @@ -305,6 +310,12 @@ We have been working the last couple of months to support **Settings Profiles** In this milestone we added support for **Settings Profiles** feature in the insiders release of VS Code for the Web via `workbench.experimental.settingsProfiles.enabled` setting. You can try this feature in the web using [insiders.vscode.dev](https://insiders.vscode.dev) +### Task reconnection + +On window reload, watch tasks can be reconnected to by enabling `task.experimental.reconnection`. This enables a faster return to work following an extension change or update that requires reloading. + + + ## Extension Authoring ### 'not in' operator for 'when' clauses From 1c604c2b2c832fee43ce991effd119d85899957b Mon Sep 17 00:00:00 2001 From: meganrogge Date: Fri, 29 Jul 2022 10:21:08 -0700 Subject: [PATCH 52/70] tweak --- release-notes/v1_70.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index a6e2086cf1..1e6b14797a 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -312,7 +312,7 @@ In this milestone we added support for **Settings Profiles** feature in the insi ### Task reconnection -On window reload, watch tasks can be reconnected to by enabling `task.experimental.reconnection`. This enables a faster return to work following an extension change or update that requires reloading. +On window reload, watch tasks can be reconnected to by enabling `task.experimental.reconnection`, which results in a faster return to work following an extension change or VS Code version update. From b1ac3692b5fbfd551d9843f818874ae1206a34ad Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Fri, 29 Jul 2022 10:22:22 -0700 Subject: [PATCH 53/70] Update .vscode/settings.json --- .vscode/settings.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cfb44d9d87..e921448307 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,4 @@ "files.trimTrailingWhitespace": true, "files.associations": { "**/toc.json": "jsonc" - }, - "terminal.integrated.tabs.defaultColor": "terminal.ansiMagenta" } \ No newline at end of file From 5d01970a59317219e2e4cfd77e9c1e9ad432891e Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Fri, 29 Jul 2022 10:22:43 -0700 Subject: [PATCH 54/70] Update .vscode/settings.json --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index e921448307..e0f5bce6e3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,4 +5,5 @@ "files.trimTrailingWhitespace": true, "files.associations": { "**/toc.json": "jsonc" +} } \ No newline at end of file From 9ab0c6fbdf7c1b72af12b272cfcaab9df95f2d72 Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Fri, 29 Jul 2022 10:23:00 -0700 Subject: [PATCH 55/70] Update .vscode/settings.json --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e0f5bce6e3..c96a3db8f6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,5 @@ "files.trimTrailingWhitespace": true, "files.associations": { "**/toc.json": "jsonc" -} + } } \ No newline at end of file From 5fdb62bc21cebeb79e8139b8fa90932f55a02070 Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Fri, 29 Jul 2022 10:24:07 -0700 Subject: [PATCH 56/70] add release notes for 1.70 --- .../images/1_70/menu-bar-folding.gif | 3 +++ .../images/1_70/system-context-menu.png | 3 +++ .../images/1_70/title-bar-context-menu.png | 3 +++ release-notes/v1_70.md | 20 +++++++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 release-notes/images/1_70/menu-bar-folding.gif create mode 100644 release-notes/images/1_70/system-context-menu.png create mode 100644 release-notes/images/1_70/title-bar-context-menu.png diff --git a/release-notes/images/1_70/menu-bar-folding.gif b/release-notes/images/1_70/menu-bar-folding.gif new file mode 100644 index 0000000000..f64a23fab7 --- /dev/null +++ b/release-notes/images/1_70/menu-bar-folding.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9b51821376f28bb706b4bc5077f10a573b6f458cb6ff6b544369c4c500614ae +size 1422324 diff --git a/release-notes/images/1_70/system-context-menu.png b/release-notes/images/1_70/system-context-menu.png new file mode 100644 index 0000000000..aea955d1d0 --- /dev/null +++ b/release-notes/images/1_70/system-context-menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73ef9404496fc2e6c47004231e8166383749ab83cbc2dd511dc3eda99af502b2 +size 13425 diff --git a/release-notes/images/1_70/title-bar-context-menu.png b/release-notes/images/1_70/title-bar-context-menu.png new file mode 100644 index 0000000000..ef9714a7b8 --- /dev/null +++ b/release-notes/images/1_70/title-bar-context-menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d01cc75b2628053dd4845579b72a83807d2e42ea0d535712e8f2c69fbda47b4 +size 81947 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 9fc44a58bd..42fea76f55 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -22,6 +22,26 @@ We really appreciate people trying our new features as soon as they are ready, s ## Workbench +### 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 which toggles the menu bar (not shown on macOS desktop), command center, and layout controls. + +![title bar context menu](./images/1_70/title-bar-context-menu.png) + +For Windows users expecting the system context menu, this can still be triggered by right-clicking the in the top left corner of the window or by pressing `Alt+Space`. Mouse position is used to determine the right behavior when triggering with `Alt+Space` so the custom menu will appear if it sits on top of the title bar. + +![system context menu](./images/1_70/system-context-menu.png) + + +For Linux users, due to [#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. + +### Improved Menu Bar Folding + +With the addition of the command center, we tried shrinking the menu bar to a hamburger menu to gain real estate. After hearing user feedback, we have tweaked the original menu bar's folding behavior to be the most functional, preserving the old menu bar folding behavior until most of the menu is already collapsed. At this point, we switch to the hamburger menu. + +![responsive menu bar folding](./images/1_70/menu-bar-folding.gif) + + ### Fold Selection The command `Create Manual Folding Ranges from Selection` creates a folding range from the currently selected lines and collapses it. That range is called a *manual* folding range that goes on top of the ranges computed by folding providers. From 54ff435470711ae44c12e0be3dfe01993a2f7489 Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Fri, 29 Jul 2022 10:39:03 -0700 Subject: [PATCH 57/70] add macos zooming --- release-notes/images/1_70/macos-title-bar-zooming.gif | 3 +++ release-notes/v1_70.md | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 release-notes/images/1_70/macos-title-bar-zooming.gif diff --git a/release-notes/images/1_70/macos-title-bar-zooming.gif b/release-notes/images/1_70/macos-title-bar-zooming.gif new file mode 100644 index 0000000000..2c64407c90 --- /dev/null +++ b/release-notes/images/1_70/macos-title-bar-zooming.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10ab7a7be7665e8fa1a79d1965b6a98906235a53c733f16fbd9741c485765438 +size 260143 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 081783fbec..ca853347fd 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -41,6 +41,12 @@ With the addition of the command center, we tried shrinking the menu bar to a ha ![responsive menu bar folding](./images/1_70/menu-bar-folding.gif) +### Accessible macOS Title Bar Zoom + +Also as part of improving the command center experience, when interactive components are present in the title bar on macOS, the title bar will now zoom with the rest of the UI for increased accessibility. + +![macos title bar zooming](./images/1_70/macos-title-bar-zooming.gif) + ### Fold Selection From 93d9f9d5a4959c35a34d561afed83fcdf7a8b2a3 Mon Sep 17 00:00:00 2001 From: Greg Van Liew Date: Fri, 29 Jul 2022 14:26:13 -0700 Subject: [PATCH 58/70] Update 1.70 Linux keybindings --- build/keybindings/doc.keybindings.linux.json | 41 +++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/build/keybindings/doc.keybindings.linux.json b/build/keybindings/doc.keybindings.linux.json index e1d0b31d97..7304d06daa 100644 --- a/build/keybindings/doc.keybindings.linux.json +++ b/build/keybindings/doc.keybindings.linux.json @@ -291,6 +291,8 @@ "when": "editorTextFocus && hasWordHighlights" }, { "key": "escape", "command": "editor.cancelOperation", "when": "cancellableOperation" }, +{ "key": "ctrl+k ctrl+,", "command": "editor.createFoldingRangeFromSelection", + "when": "editorTextFocus && foldingEnabled" }, { "key": "escape", "command": "editor.debug.action.closeExceptionWidget", "when": "exceptionWidgetVisible" }, { "key": "ctrl+k ctrl+i", "command": "editor.debug.action.showDebugHover", @@ -329,6 +331,8 @@ "when": "hasSymbols" }, { "key": "escape", "command": "editor.gotoNextSymbolFromResult.cancel", "when": "hasSymbols" }, +{ "key": "ctrl+k ctrl+.", "command": "editor.removeManualFoldingRanges", + "when": "editorTextFocus && foldingEnabled" }, { "key": "ctrl+k ctrl+l", "command": "editor.toggleFold", "when": "editorTextFocus && foldingEnabled" }, { "key": "ctrl+shift+]", "command": "editor.unfold", @@ -462,13 +466,17 @@ { "key": "up", "command": "showPrevParameterHint", "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, { "key": "shift+tab", "command": "acceptAlternativeSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "shift+enter", "command": "acceptAlternativeSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "tab", "command": "acceptSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "enter", "command": "acceptSelectedSuggestion", - "when": "acceptSuggestionOnEnter && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, + "when": "acceptSuggestionOnEnter && suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, +{ "key": "shift+escape", "command": "hideCodeActionMenuWidget", + "when": "CodeActionMenuVisible" }, +{ "key": "escape", "command": "hideCodeActionMenuWidget", + "when": "CodeActionMenuVisible" }, { "key": "shift+escape", "command": "hideSuggestWidget", "when": "suggestWidgetVisible && textInputFocus" }, { "key": "escape", "command": "hideSuggestWidget", @@ -627,6 +635,8 @@ "when": "inKeybindings" }, { "key": "escape", "command": "list.clear", "when": "listFocus && listHasSelectionOrFocus && !inputFocus" }, +{ "key": "escape", "command": "list.closeFind", + "when": "listFocus && treeFindOpen" }, { "key": "left", "command": "list.collapse", "when": "listFocus && treeElementCanCollapse && !inputFocus || listFocus && treeElementHasParent && !inputFocus" }, { "key": "ctrl+left", "command": "list.collapseAll", @@ -637,6 +647,10 @@ "when": "listFocus && listSupportsMultiselect && !inputFocus" }, { "key": "shift+up", "command": "list.expandSelectionUp", "when": "listFocus && listSupportsMultiselect && !inputFocus" }, +{ "key": "f3", "command": "list.find", + "when": "listFocus && treeSupportsFind" }, +{ "key": "ctrl+f", "command": "list.find", + "when": "listFocus && treeSupportsFind" }, { "key": "down", "command": "list.focusDown", "when": "listFocus && !inputFocus" }, { "key": "home", "command": "list.focusFirst", @@ -1022,7 +1036,8 @@ { "key": "ctrl+k ctrl+shift+\\", "command": "workbench.action.splitEditorInGroup", "when": "activeEditorCanSplitInGroup" }, { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorOrthogonal" }, -{ "key": "ctrl+shift+b", "command": "workbench.action.tasks.build" }, +{ "key": "ctrl+shift+b", "command": "workbench.action.tasks.build", + "when": "taskCommandsRegistered" }, { "key": "escape", "command": "workbench.action.terminal.clearSelection", "when": "terminalFocus && terminalHasBeenCreated && terminalTextSelected && !terminalFindVisible || terminalFocus && terminalProcessSupported && terminalTextSelected && !terminalFindVisible" }, { "key": "ctrl+shift+c", "command": "workbench.action.terminal.copySelection", @@ -1298,5 +1313,19 @@ { "key": "shift+f4", "command": "references-view.prev", "when": "reference-list.hasResult && references-view.canNavigate" }, { "key": "shift+alt+h", "command": "references-view.showCallHierarchy", - "when": "editorHasCallHierarchyProvider" } + "when": "editorHasCallHierarchyProvider" }, +{ "key": "ctrl+down", "command": "focusNextCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "down", "command": "focusNextCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "ctrl+up", "command": "focusPreviousCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "up", "command": "focusPreviousCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "shift+tab", "command": "onEnterSelectCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "enter", "command": "onEnterSelectCodeAction", + "when": "CodeActionMenuVisible" }, +{ "key": "ctrl+enter", "command": "onEnterSelectCodeActionWithPreview", + "when": "CodeActionMenuVisible" } ] \ No newline at end of file From 9002cc0f4ab90155bf1168f5448bd032f72c6f01 Mon Sep 17 00:00:00 2001 From: gregvanl Date: Fri, 29 Jul 2022 14:48:24 -0700 Subject: [PATCH 59/70] Formatting, take out merge conflict markers --- release-notes/v1_70.md | 99 +++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index ca853347fd..e65f89e8e6 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -22,48 +22,47 @@ We really appreciate people trying our new features as soon as they are ready, s ## Workbench -### Easier Title Bar Customization +### 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 which toggles the menu bar (not shown on macOS desktop), command center, and layout controls. -![title bar context menu](./images/1_70/title-bar-context-menu.png) +![title bar context menu](images/1_70/title-bar-context-menu.png) For Windows users expecting the system context menu, this can still be triggered by right-clicking the in the top left corner of the window or by pressing `Alt+Space`. Mouse position is used to determine the right behavior when triggering with `Alt+Space` so the custom menu will appear if it sits on top of the title bar. -![system context menu](./images/1_70/system-context-menu.png) - +![system context menu](images/1_70/system-context-menu.png) For Linux users, due to [#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. -### Improved Menu Bar Folding +### Improved menu bar folding With the addition of the command center, we tried shrinking the menu bar to a hamburger menu to gain real estate. After hearing user feedback, we have tweaked the original menu bar's folding behavior to be the most functional, preserving the old menu bar folding behavior until most of the menu is already collapsed. At this point, we switch to the hamburger menu. -![responsive menu bar folding](./images/1_70/menu-bar-folding.gif) +![responsive menu bar folding](images/1_70/menu-bar-folding.gif) -### Accessible macOS Title Bar Zoom +### Accessible macOS title bar zoom Also as part of improving the command center experience, when interactive components are present in the title bar on macOS, the title bar will now zoom with the rest of the UI for increased accessibility. -![macos title bar zooming](./images/1_70/macos-title-bar-zooming.gif) +![macOS title bar zooming](images/1_70/macos-title-bar-zooming.gif) +### Fold selection -### Fold Selection +The command **Create Manual Folding Ranges from Selection** (`kb(editor.createFoldingRangeFromSelection)`) creates a folding range from the currently selected lines and collapses it. The range is called a **manual** folding range and goes on top of the ranges computed by folding providers. -The command `Create Manual Folding Ranges from Selection` creates a folding range from the currently selected lines and collapses it. That range is called a *manual* folding range that goes on top of the ranges computed by folding providers. -Manual folding ranges can be removed again with the command `Remove Manual Folding Ranges`. +Manual folding ranges can be removed again with the command **Remove Manual Folding Ranges** (`kb(editor.removeManualFoldingRanges)`). -![manual folding ranges](./images/1_70/manual-folding-range.gif) +![manual folding ranges](images/1_70/manual-folding-range.gif) ### Preserve folded ranges -VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same location or by using the command `Remove Manual Folding Ranges`. +VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same location or by using the command **Remove Manual Folding Ranges**. -![restored folding ranges](./images/1_70/restored-folding-ranges.gif) +![restored folding ranges](images/1_70/restored-folding-ranges.gif) ### Hide folding controls -The folding controls in the gutter can now be hidden with the setting `"editor.showFoldingControls": "never"`. Folding ranges can still be exapnded and collapsed using the folding commands and shortcuts. +The folding controls in the gutter can now be hidden with the setting `"editor.showFoldingControls": "never"`. Folding ranges can still be expanded and collapsed using the folding commands and shortcuts. ### New command line option --merge @@ -82,23 +81,26 @@ This enables to use VS Code as merge tool for Git, for example, if you configure cmd = code-insiders --wait --merge $REMOTE $LOCAL $BASE $MERGED ``` -### Search File Decorations -Search results in the search viewlet now feature file decorations and colors 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 file decorations + +Search results in the Search view now feature file decorations and colors 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 file decorations](images/1_70/search-decorations.png) -![Search File Decorations](images/1_70/search-decorations.png) +### Search multi-select -### Search Multi-select -The search viewlet now also supports multi-select. Any actions (i.e., dismiss or replace) that you perform on one result in the selection will also be performed on the other selected items. +The Search view now also supports multi-select. Any actions (i.e., dismiss or replace) that you perform on one result in the selection will also be performed on the other selected items. ![Search Multi-select Demo](images/1_70/search-multiselect.gif) -### Tree find widget +### Tree find control -Trees now have support for the find widget. You can press `kbstyle(Ctrl/Cmd+F)` inside trees to pop up the find widget. You can use the find widget to highlight matched elements and/or hide all elements which do not match the search term. +Trees now have support for the Find control. You can press `kb(list.find)` inside trees to pop up the Find control. You can use the Find control to highlight matched elements and/or hide all elements which do not match the search term. -![Tree find widget](images/1_70/tree-filter.gif) +![Tree Find control](images/1_70/tree-filter.gif) + +### Arbitrary file creations via New File -### 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 may 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) @@ -154,11 +156,11 @@ This applies to **all platforms**, even Linux/macOS where those keys are normall ### Run recent command as a replacement for reverse search -When shell integration is enabled, we're aiming run recent command to be a cross-shell drop in replacement for the shell's reverse search (`kbStyle(Ctrl+r)`). There is a new contiguous search mode which is the default when triggering the command, this behaves like `kbStyle(Ctrl+r)` in most shells, with the option of switching back to fuzzy search: +When shell integration is enabled, we're aiming run recent command to be a cross-shell drop in replacement for the shell's reverse search (`kbstyle(Ctrl+R)`). There is a new contiguous search mode which is the default when triggering the command, this behaves like `kbstyle(Ctrl+R)` in most shells, with the option of switching back to fuzzy search: ![Run recent command's contiguous search will match the search term exactly, toggle Fuzzy Search to switch to fuzzy searching](images/1_70/terminal-si-run-recent-command.gif) -The new `inTerminalRunCommandPicker` context key is available which allows setting up a keybinding like `kbStyle(Ctrl+r)` to go to the next match. For example the following keybindings are now a fairly complete drop in replacement for your shell's reverse search, with ctrl+alt+r as a fallback to the old behavior: +The new `inTerminalRunCommandPicker` context key is available which allows setting up a keybinding like `kbStyle(Ctrl+R)` to go to the next match. For example the following keybindings are now a fairly complete drop in replacement for your shell's reverse search, with `kbstyle(Ctrl+Alt+R)` as a fallback to the old behavior: ```json { "key": "ctrl+r", "command": "workbench.action.terminal.runRecentCommand", "when": "terminalFocus" }, @@ -209,9 +211,10 @@ The defauult icon and terminal tab color can be set now per folder using `termin ### 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. +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: + ``` args: { task: "VS Code - Build" @@ -219,7 +222,6 @@ args: { } ``` - ### Improved automatic tasks flow The trusted workspaces 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`. @@ -229,13 +231,14 @@ The trusted workspaces feature has allowed us to simplify the flow for running a ### Action button improvements We continued to polish the source control action button based on user feedback: -* The "Sync Changes" action button is only shown when there is a high degree of certainty that the local branch is either ahead or behind the remote tracking branch. -* The "Commit" action button is only enabled based on the list of changed resources while factoring in the smart commit settings - `git.enableSmartCommit`, `git.suggestSmartCommit`, `git.smartCommitChanges`. -* The "Commit" action button icon is updated based on the branch protection settings - `git.branchProtection`, `git.branchProtectionPrompt`. + +* The **Sync Changes** action button is only shown when there is a high degree of certainty that the local branch is either ahead or behind the remote tracking branch. +* The **Commit** action button is only enabled based on the list of changed resources while factoring in the smart commit settings - `git.enableSmartCommit`, `git.suggestSmartCommit`, `git.smartCommitChanges`. +* The **Commit** action button icon is updated based on the branch protection settings - `git.branchProtection`, `git.branchProtectionPrompt`. ### Improved rebase conflict resolution -This milestone we have addressed some paper cuts in the rebase flow while resolving merge conflicts. Following this release users should be able to continue the rebase operation using the "Commit" button in the "Source Control" view after resolving all merge conflicts. +This milestone we have addressed some paper cuts in the rebase flow while resolving merge conflicts. Following this release users should 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 @@ -266,8 +269,9 @@ Here's how to use the new behavior in a node launch config. } ``` -### Picker for Debug Sessions -When debugging, you can now run `Debug: Select Debug Session` in the command palette. This shows a picker with your active debug sessions, which you can use to search and filter your individual debug sessions. The description for each picker item will show the session that spawned it, if applicable. Selecting an item in the picker will open the debug console from within the context of the selected debug session. +### Picker for debug sessions + +When debugging, you can now run **Debug: Select Debug Session** in the Command Palette. This shows a picker with your active debug sessions, which you can use to search and filter your individual debug sessions. The description for each picker item will show the session that spawned it, if applicable. Selecting an item in the picker will open the debug console from within the context of the selected debug session. ![Debug Session Picker Demo](images/1_70/debug-sessions.gif) @@ -275,16 +279,17 @@ When debugging, you can now run `Debug: Select Debug Session` in the command pal ### Keep newlines when formatting JSON -This feature allows one to keep the initial line positions upon line formatting of 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, enable the option `JSON > Format: Keep Lines` in the settings. +This feature allows one to keep the initial line positions upon line formatting of 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, enable the option **JSON > Format: Keep Lines** in the Setting editor. ## Notebooks -### "Go To" Button for Most Recently Failed Cell -If your most recently run cell failed, then there is now a button that will jump to that cell. You can also run `Notebook: Go to Most Recently Failed Cell` to perform the same action. +### Go to Most Recently Failed Cell + +If your most recently run cell failed, then there is now a button that will jump to that cell. You can also run **Notebook: Go to Most Recently Failed Cell** to perform the same action. This is particularly useful when you run a group of cells and want to know which cell failed and halted the group execution. -!["Go To Most Recently Failed Cell" Demo](images/1_70/go-to-most-recently-failed-cell.gif) +![Go To Most Recently Failed Cell Demo](images/1_70/go-to-most-recently-failed-cell.gif) ## VS Code for the Web @@ -318,11 +323,11 @@ A new User setting `python.interpreter.infoVisibility` is introduced which contr ## Preview features -### Sticky Scroll +### Sticky scroll -It is now possible to display a widget showing in which scope the user is in during scrolling. The sticky scroll widget will show in which class/interface/namespace/function/method/constructor the top of the viewport is in, allowing for easier localization within a document. +It is now possible to display UI showing in which scope the user is in during scrolling. The sticky scroll UI will show in which class/interface/namespace/function/method/constructor the top of the editor is in, allowing for easier localization within a document. -!["Sticky Scroll" Demo](images/1_70/sticky-scroll.gif) +!["Sticky scroll" Demo](images/1_70/sticky-scroll.gif) ### TypeScript 4.8 support @@ -336,17 +341,13 @@ We have been working the last couple of months to support **Settings Profiles** In this milestone we added support for **Settings Profiles** feature in the insiders release of VS Code for the Web via `workbench.experimental.settingsProfiles.enabled` setting. You can try this feature in the web using [insiders.vscode.dev](https://insiders.vscode.dev) -<<<<<<< HEAD -### Task reconnection - -On window reload, watch tasks can be reconnected to by enabling `task.experimental.reconnection`, which results in a faster return to work following an extension change or VS Code version update. - - -======= ![Settings Profiles demo, showing the theme, zoom level, and activity bar position changing as the profile is switched](images/1_70/settings-profiles.gif) _Theme: [Light Pink](https://marketplace.visualstudio.com/items?itemName=mgwg.light-pink-theme)_ ->>>>>>> vnext + +### Task reconnection + +On window reload, watch tasks can be reconnected to by enabling `task.experimental.reconnection`, which results in a faster return to work following an extension change or VS Code version update. ## Extension Authoring From 7b4bc65de894b64c81c62cb55045b130f7c68c39 Mon Sep 17 00:00:00 2001 From: Greg Van Liew Date: Fri, 29 Jul 2022 15:39:54 -0700 Subject: [PATCH 60/70] Update 1.70 macOS keybindings --- build/keybindings/doc.keybindings.osx.json | 41 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/build/keybindings/doc.keybindings.osx.json b/build/keybindings/doc.keybindings.osx.json index 62e6da63d9..86e923bcb3 100644 --- a/build/keybindings/doc.keybindings.osx.json +++ b/build/keybindings/doc.keybindings.osx.json @@ -380,6 +380,8 @@ "when": "editorTextFocus && hasWordHighlights" }, { "key": "escape", "command": "editor.cancelOperation", "when": "cancellableOperation" }, + { "key": "cmd+k cmd+,", "command": "editor.createFoldingRangeFromSelection", + "when": "editorTextFocus && foldingEnabled" }, { "key": "escape", "command": "editor.debug.action.closeExceptionWidget", "when": "exceptionWidgetVisible" }, { "key": "cmd+k cmd+i", "command": "editor.debug.action.showDebugHover", @@ -418,6 +420,8 @@ "when": "hasSymbols" }, { "key": "escape", "command": "editor.gotoNextSymbolFromResult.cancel", "when": "hasSymbols" }, + { "key": "cmd+k cmd+.", "command": "editor.removeManualFoldingRanges", + "when": "editorTextFocus && foldingEnabled" }, { "key": "cmd+k cmd+l", "command": "editor.toggleFold", "when": "editorTextFocus && foldingEnabled" }, { "key": "alt+cmd+]", "command": "editor.unfold", @@ -557,13 +561,17 @@ { "key": "up", "command": "showPrevParameterHint", "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, { "key": "shift+tab", "command": "acceptAlternativeSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "shift+enter", "command": "acceptAlternativeSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "tab", "command": "acceptSelectedSuggestion", - "when": "suggestWidgetVisible && textInputFocus" }, + "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, { "key": "enter", "command": "acceptSelectedSuggestion", - "when": "acceptSuggestionOnEnter && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, + "when": "acceptSuggestionOnEnter && suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, + { "key": "shift+escape", "command": "hideCodeActionMenuWidget", + "when": "CodeActionMenuVisible" }, + { "key": "escape", "command": "hideCodeActionMenuWidget", + "when": "CodeActionMenuVisible" }, { "key": "shift+escape", "command": "hideSuggestWidget", "when": "suggestWidgetVisible && textInputFocus" }, { "key": "escape", "command": "hideSuggestWidget", @@ -726,6 +734,8 @@ "when": "inKeybindings" }, { "key": "escape", "command": "list.clear", "when": "listFocus && listHasSelectionOrFocus && !inputFocus" }, + { "key": "escape", "command": "list.closeFind", + "when": "listFocus && treeFindOpen" }, { "key": "cmd+up", "command": "list.collapse", "when": "listFocus && treeElementCanCollapse && !inputFocus || listFocus && treeElementHasParent && !inputFocus" }, { "key": "left", "command": "list.collapse", @@ -740,6 +750,10 @@ "when": "listFocus && listSupportsMultiselect && !inputFocus" }, { "key": "shift+up", "command": "list.expandSelectionUp", "when": "listFocus && listSupportsMultiselect && !inputFocus" }, + { "key": "f3", "command": "list.find", + "when": "listFocus && treeSupportsFind" }, + { "key": "cmd+f", "command": "list.find", + "when": "listFocus && treeSupportsFind" }, { "key": "ctrl+n", "command": "list.focusDown", "when": "listFocus && !inputFocus" }, { "key": "down", "command": "list.focusDown", @@ -1139,7 +1153,8 @@ "when": "activeEditorCanSplitInGroup" }, { "key": "cmd+k cmd+\\", "command": "workbench.action.splitEditorOrthogonal" }, { "key": "ctrl+w", "command": "workbench.action.switchWindow" }, - { "key": "shift+cmd+b", "command": "workbench.action.tasks.build" }, + { "key": "shift+cmd+b", "command": "workbench.action.tasks.build", + "when": "taskCommandsRegistered" }, { "key": "escape", "command": "workbench.action.terminal.clearSelection", "when": "terminalFocus && terminalHasBeenCreated && terminalTextSelected && !terminalFindVisible || terminalFocus && terminalProcessSupported && terminalTextSelected && !terminalFindVisible" }, { "key": "cmd+c", "command": "workbench.action.terminal.copySelection", @@ -1440,5 +1455,19 @@ { "key": "shift+f4", "command": "references-view.prev", "when": "reference-list.hasResult && references-view.canNavigate" }, { "key": "shift+alt+h", "command": "references-view.showCallHierarchy", - "when": "editorHasCallHierarchyProvider" } + "when": "editorHasCallHierarchyProvider" }, + { "key": "cmd+down", "command": "focusNextCodeAction", + "when": "CodeActionMenuVisible" }, + { "key": "down", "command": "focusNextCodeAction", + "when": "CodeActionMenuVisible" }, + { "key": "cmd+up", "command": "focusPreviousCodeAction", + "when": "CodeActionMenuVisible" }, + { "key": "up", "command": "focusPreviousCodeAction", + "when": "CodeActionMenuVisible" }, + { "key": "shift+tab", "command": "onEnterSelectCodeAction", + "when": "CodeActionMenuVisible" }, + { "key": "enter", "command": "onEnterSelectCodeAction", + "when": "CodeActionMenuVisible" }, + { "key": "cmd+enter", "command": "onEnterSelectCodeActionWithPreview", + "when": "CodeActionMenuVisible" } ] \ No newline at end of file From 6661865e6a40bc746fc5576f88e0e0b3bbd8a9be Mon Sep 17 00:00:00 2001 From: John Murray Date: Sat, 30 Jul 2022 04:57:21 +0100 Subject: [PATCH 61/70] Remove reference to my reverted PR See https://github.com/microsoft/vscode/commit/3e26d50f995f4ed76adedff0138138b29b958625 --- release-notes/v1_70.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index e65f89e8e6..976cdfa241 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -462,9 +462,7 @@ Contributions to `vscode`: * [@ferdnyc (Frank Dana)](https://github.com/ferdnyc) * RPM: Make /usr/bin/code owned by package [PR #142907](https://github.com/microsoft/vscode/pull/142907) * Remove fakeroot wrapper, when building .rpm packages [PR #153249](https://github.com/microsoft/vscode/pull/153249) -* [@gjsjohnmurray (John Murray)](https://github.com/gjsjohnmurray) - * Warn user when they open a file within the install folder tree (#138815) [PR #155443](https://github.com/microsoft/vscode/pull/155443) - * Try to prevent update of user-type Windows installation when running as admin (#148428) [PR #155631](https://github.com/microsoft/vscode/pull/155631) +* [@gjsjohnmurray (John Murray)](https://github.com/gjsjohnmurray): Try to prevent update of user-type Windows installation when running as admin (#148428) [PR #155631](https://github.com/microsoft/vscode/pull/155631) * [@jbicker (Jan Bicker)](https://github.com/jbicker): Fixed wrong SignatureInformation.activeParameter comment [PR #155279](https://github.com/microsoft/vscode/pull/155279) * [@jeanp413 (Jean Pierre)](https://github.com/jeanp413): Proposal TerminalExitStatus.reason [PR #152833](https://github.com/microsoft/vscode/pull/152833) * [@jlelong (Jerome Lelong)](https://github.com/jlelong): Add word boundary to bracket pair delimiters starting or ending with letters [PR #151204](https://github.com/microsoft/vscode/pull/151204) From a4b5345c44d0dc68f185b04def2de377dda384bb Mon Sep 17 00:00:00 2001 From: gregvanl Date: Sun, 31 Jul 2022 20:55:37 -0700 Subject: [PATCH 62/70] Edit pass on 1.70 release notes --- release-notes/images/1_70/new-file.png | 4 +- .../images/1_70/search-decorations.png | 4 +- .../images/1_70/search-multiselect.gif | 4 +- release-notes/v1_70.md | 143 +++++++++--------- 4 files changed, 78 insertions(+), 77 deletions(-) diff --git a/release-notes/images/1_70/new-file.png b/release-notes/images/1_70/new-file.png index 9c9a8d6399..6645f69c73 100644 --- a/release-notes/images/1_70/new-file.png +++ b/release-notes/images/1_70/new-file.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c6dd8eb9ed7958225dabcf6c3319d4f803fc7e51ab7d7774fba7fffe00a6ac9 -size 29685 +oid sha256:fe5602833e96e321f6e82e7b64d50e2d92c59d69cd45cfb2cd2fc42722f9ea10 +size 23106 diff --git a/release-notes/images/1_70/search-decorations.png b/release-notes/images/1_70/search-decorations.png index b97fd29f78..bf2a971738 100644 --- a/release-notes/images/1_70/search-decorations.png +++ b/release-notes/images/1_70/search-decorations.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:01c1736f850de8d50fe951d28f82927716b45bdce099cf49586fe43b6b641977 -size 82917 +oid sha256:d367f328f6c162dd76123a54c7b2b96d12701af61a044967617c7120650b634d +size 89269 diff --git a/release-notes/images/1_70/search-multiselect.gif b/release-notes/images/1_70/search-multiselect.gif index 49da802f52..c796c8de3c 100644 --- a/release-notes/images/1_70/search-multiselect.gif +++ b/release-notes/images/1_70/search-multiselect.gif @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c43e7d2cc0916578f3eacf1f6e126312dc0a7b5c39bf66a0f3f9aa600a9052c2 -size 1348404 +oid sha256:614075ae92cf46f8b05bfe95b881fbdf594c43102d778de15caaaa71e01fa3ea +size 849527 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 976cdfa241..b12d6bded1 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -24,25 +24,25 @@ We really appreciate people trying our new features as soon as they are ready, s ### 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 which toggles the menu bar (not shown on macOS desktop), 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) -For Windows users expecting the system context menu, this can still be triggered by right-clicking the in the top left corner of the window or by pressing `Alt+Space`. Mouse position is used to determine the right behavior when triggering with `Alt+Space` so the custom menu will appear if it sits on top of the title bar. +For Windows users expecting the system context menu, the menu can still be triggered by right-clicking the VS Code icon in the top left corner of the window or by pressing `Alt+Space`. Mouse position is used to determine the behavior when triggering with `Alt+Space`, so the custom menu will appear if it sits on top of the title bar. ![system context menu](images/1_70/system-context-menu.png) -For Linux users, due to [#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 one of the items in the title bar that you would like to hide. ### Improved menu bar folding -With the addition of the command center, we tried shrinking the menu bar to a hamburger menu to gain real estate. After hearing user feedback, we have tweaked the original menu bar's folding behavior to be the most functional, preserving the old menu bar folding behavior until most of the menu is already collapsed. At this point, we switch to the hamburger menu. +With the addition of the Command Center, we tried shrinking the menu bar to a hamburger menu to make space. After hearing user feedback, we switched back to the old menu bar folding behavior until most of the menu is collapsed and only then switch to the hamburger menu. ![responsive menu bar folding](images/1_70/menu-bar-folding.gif) ### Accessible macOS title bar zoom -Also as part of improving the command center experience, when interactive components are present in the title bar on macOS, the title bar will now zoom with the rest of the UI for increased accessibility. +Also as part of improving the Command Center experience, when interactive components are present in the title bar on macOS, the title bar will now zoom with the rest of the UI for increased accessibility. ![macOS title bar zooming](images/1_70/macos-title-bar-zooming.gif) @@ -56,7 +56,7 @@ Manual folding ranges can be removed again with the command **Remove Manual Fold ### Preserve folded ranges -VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. An typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges are becoming 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same location or by using the command **Remove Manual Folding Ranges**. +VS Code now keeps folded ranges, even if the folding range is no longer part of the ranges computed by a folding provider. A typical example is when the user comments out the file, starts a string literal, or creates a syntax error that makes it impossible to create all the ranges. Such folded ranges become 'recovered' ranges. They are removed once the folding provider comes back with ranges at the same location or by using the command **Remove Manual Folding Ranges**. ![restored folding ranges](images/1_70/restored-folding-ranges.gif) @@ -72,13 +72,13 @@ You can now use command line options to bring up the merge editor in VS Code: -m --merge Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions and the output file to save merge results. ``` -This enables to use VS Code as merge tool for Git, for example, if you configure this in the `.gitconfig`: +This enables you to use VS Code as a merge tool for Git, for example, if you configure this in `.gitconfig`: ```properties [merge] - tool = code-insiders + tool = code-insiders [mergetool "code-insiders"] - cmd = code-insiders --wait --merge $REMOTE $LOCAL $BASE $MERGED + cmd = code-insiders --wait --merge $REMOTE $LOCAL $BASE $MERGED ``` ### Search file decorations @@ -89,19 +89,19 @@ Search results in the Search view now feature file decorations and colors to exp ### Search multi-select -The Search view now also supports multi-select. Any actions (i.e., dismiss or replace) that you perform on one result in the selection will also be performed on the other selected items. +The Search view now also supports multi-select. Any actions (for example, dismiss or replace) that you perform on one result in the selection will also be performed on the other selected items. -![Search Multi-select Demo](images/1_70/search-multiselect.gif) +![Search multi-select Demo](images/1_70/search-multiselect.gif) ### Tree find control -Trees now have support for the Find control. You can press `kb(list.find)` inside trees to pop up the Find control. You can use the Find control to highlight matched elements and/or hide all elements which do not match the search term. +Tree views, such as the File Explorer, now support the Find control. You can press `kb(list.find)` inside trees to pop up the Find control. You can use the Find control to highlight matched elements or toggle the **Filter** button to hide all elements that do not match the search term. ![Tree Find control](images/1_70/tree-filter.gif) ### 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 may 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 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. ![A input box with test.js inputted into it and the entry New File(test.js) selected](images/1_70/new-file.png) @@ -109,7 +109,7 @@ The File -> New File... (or New File... link on the getting started page) experi ### Shell integration enabled by default -Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default! For supported shell setups (most bash/zsh/pwsh configurations) it should all just work without any change necessary and you should see these command decorations: +Shell integration's automatic injection that [was moved out of preview last release](https://code.visualstudio.com/updates/v1_69#_shell-integration) is now enabled by default. For supported shell setups (most bash/zsh/pwsh configurations), it should all just work without any changes and you should see command decorations: ![When shell integration is enabled, blue, red and grey circles appear next to commands run in the terminal](images/1_70/terminal-si-intro.png) @@ -123,44 +123,48 @@ 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 and will pick those up](https://code.visualstudio.com/docs/terminal/shell-integration#_final-term-shell-integration). If you just don't like the command and/or scroll bar decorations [you can disable just those](#_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 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. ### Simplified shell integration manual install -The previous manual install steps took several steps and were platform and shell specific. The new manual install steps use 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 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. ```sh # Manual install on bash [[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)" ``` -You can read more about how to install for other shells and more information at [Terminal shell integration](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation). +You can read more about how to install shell integration for other shells at [Terminal shell integration](https://code.visualstudio.com/docs/terminal/shell-integration#_manual-installation). ### 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. This is available for easy access along with configuring the icons used in the command decoration context menu: +The new setting `terminal.integrated.shellIntegration.decorationsEnabled` allows configuring command decorations to display in the `gutter`, the `overviewRuler`, or neither. This is available in the context menu for easy access, along with configuring the icons: ![The command decoration context menu contains the new option Configure Command Decorations](images/1_70/terminal-si-config.png) +### 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`. + ### Extended PowerShell keybindings -Additional PowerShell keybindings that weren't possible before due to lack of VT encoding such as `kbstyle(Ctrl+Space)` have been added thanks to shell integration! Provided shell integration is working in pwsh, the following keybindings should now work: +There are additional PowerShell keybindings, such as `kbstyle(Ctrl+Space)`, thanks to shell integration. These weren't possible before due to the lack of VT encoding. Provided that shell integration is working in pwsh, the following keybindings should now work: -* `kbstyle(Ctrl+Space)`: Defaults to `MenuComplete` on Windows only -* `kbstyle(Alt+Space)`: Defaults to `SetMark` -* `kbstyle(Shift+Enter)`: Defaults to `AddLine` -* `kbstyle(Shift+End)`: Defaults to `SelectLine` -* `kbstyle(Shift+Home)`: Defaults to `SelectBackwardsLine` +* `kbstyle(Ctrl+Space)` - Defaults to `MenuComplete` on Windows only. +* `kbstyle(Alt+Space)` - Defaults to `SetMark`. +* `kbstyle(Shift+Enter)` - Defaults to `AddLine`. +* `kbstyle(Shift+End)` - Defaults to `SelectLine`. +* `kbstyle(Shift+Home)` - Defaults to `SelectBackwardsLine`. -This applies to **all platforms**, even Linux/macOS where those keys are normally possible. The defaults can always be rebound in your pwsh profile with `Set-PSReadLineKeyHandler`. If there are additional keybindings that you expect, [please let us know](https://github.com/microsoft/vscode/issues/new). +This applies to **all platforms**, even Linux/macOS where those keys are normally possible. The defaults can always be reset in your pwsh profile with `Set-PSReadLineKeyHandler`. If there are additional keybindings that you expect, [please let us know](https://github.com/microsoft/vscode/issues/new). ### Run recent command as a replacement for reverse search -When shell integration is enabled, we're aiming run recent command to be a cross-shell drop in replacement for the shell's reverse search (`kbstyle(Ctrl+R)`). There is a new contiguous search mode which is the default when triggering the command, this behaves like `kbstyle(Ctrl+R)` in most shells, with the option of switching back to fuzzy search: +When shell integration is enabled, we're aiming run recent command to be a cross-shell drop in replacement for the shell's reverse search (`kbstyle(Ctrl+R)`). There is a new contiguous search mode that is the default when triggering the command. This behaves like `kbstyle(Ctrl+R)` in most shells, with the option of switching back to fuzzy search: ![Run recent command's contiguous search will match the search term exactly, toggle Fuzzy Search to switch to fuzzy searching](images/1_70/terminal-si-run-recent-command.gif) -The new `inTerminalRunCommandPicker` context key is available which allows setting up a keybinding like `kbStyle(Ctrl+R)` to go to the next match. For example the following keybindings are now a fairly complete drop in replacement for your shell's reverse search, with `kbstyle(Ctrl+Alt+R)` as a fallback to the old behavior: +The new `inTerminalRunCommandPicker` context key is available that allows setting up a keybinding like `kbStyle(Ctrl+R)` to go to the next match. For example, the following keybindings are now a fairly complete replacement for your shell's reverse search, with `kbstyle(Ctrl+Alt+R)` as a fallback to the old behavior: ```json { "key": "ctrl+r", "command": "workbench.action.terminal.runRecentCommand", "when": "terminalFocus" }, @@ -168,28 +172,31 @@ The new `inTerminalRunCommandPicker` context key is available which allows setti { "key": "ctrl+r", "command": "workbench.action.quickOpenNavigateNextInViewPicker", "when": "inQuickOpen && inTerminalRunCommandPicker" }, ``` -Multi-line commands now display a new line symbol where appropriate and will also use bracketed paste mode, meaning they are treated as if they were pasted for supporting shells. This typically means they will be added all to the same prompt instead of executing multiple. +Multi-line commands now display a new line symbol where appropriate and will also use bracketed paste mode, meaning they are treated as if they were pasted for supporting shells. This typically means they will all be added to the same prompt instead of executing them separately. -![Run recent command now shows the "Return Symbol" unicode character (⏎, U+23CE) to visualize new lines](images/1_70/terminal-si-multi-line.png) +![Run recent command now shows the "Return Symbol" Unicode character (⏎, U+23CE) to visualize new lines](images/1_70/terminal-si-multi-line.png) ### Other shell integration improvements Here are the smaller improvements to shell integration: -* Command navigation has improved visual feedback, showing the "focus border" briefly like before and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer +* Command navigation has improved visual feedback, showing the "focus border" briefly and then keeping a persistent rectangle in the gutter to help better orient the user after jumping around the buffer. + ![A solid rectangle the color of your themes focus color now appears to the left of the command being navigated to](images/1_70/terminal-nav-feedback.png) + * The new `workbench.action.terminal.copyLastCommand` command is available to allow a keybinding to copy the last command's output (shortcut for `kbStyle(Ctrl/Cmd+Shift+Up)`, `kbStyle(Ctrl/Cmd+C)`, `kbStyle(Escape)`, `kbStyle(Ctrl/Cmd+End)`). + * Bash shell integration * More `$PROMPT_COMMAND` formats are supported. * Shell integration should work even better when the [`bash-preexec`](https://github.com/rcaloras/bash-preexec) helper is being used already. ### Rendering improvements -Several improvements were made to terminal rendering when GPU acceleration is enabled this release: +Several improvements were made to terminal rendering when GPU acceleration is enabled: -* Semi-circle powerline symbols are now custom rendered. Like the arrow symbols in the previous release, these should blend seamlessly with adjacent cells and extend to the height of the cell even when line height is used. +* Semi-circle Powerline symbols are now custom rendered. Like the arrow symbols in the previous release, these should blend seamlessly with adjacent cells and extend to the height of the cell even when line height is used. - ![Semi-circle powerline symbols now render without needing to configure a font](images/1_70/terminal-semi-circle.png) + ![Semi-circle Powerline symbols now render without needing to configure a font](images/1_70/terminal-semi-circle.png) * Round cornered box drawing characters (`╭`, `╮`, `╰`, `╯`) now use a smoother curve. @@ -203,10 +210,6 @@ Several improvements were made to terminal rendering when GPU acceleration is en ![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) -### Default color and icon tab settings - -The defauult icon and terminal tab color can be set now per folder using `terminal.integrated.tabs.defaultIcon` and `terminal.integrated.tabs.defaultColor`. - ## Tasks ### Filter support for run task command @@ -215,7 +218,7 @@ The **Tasks: Run Task** action supports filtering by task name and type for a mo For example: -``` +```json args: { task: "VS Code - Build" type: "npm" @@ -224,13 +227,13 @@ args: { ### Improved automatic tasks flow -The trusted workspaces 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`. +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 -We continued to polish the source control action button based on user feedback: +We continued to polish the Source Control action button based on user feedback: * The **Sync Changes** action button is only shown when there is a high degree of certainty that the local branch is either ahead or behind the remote tracking branch. * The **Commit** action button is only enabled based on the list of changed resources while factoring in the smart commit settings - `git.enableSmartCommit`, `git.suggestSmartCommit`, `git.smartCommitChanges`. @@ -238,17 +241,17 @@ We continued to polish the source control action button based on user feedback: ### Improved rebase conflict resolution -This milestone we have addressed some paper cuts in the rebase flow while resolving merge conflicts. Following this release users should 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 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. ### Commit input field spell checking -This milestone we have validated that all the necessary extension APIs are available to enable spell checking for the commit input field. We have reached out to the authors of two popular spell checking extension and submitted pull requests illustrating how to update their extensions to enabled spell checking for the commit input field. +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. ## Debugging -### Javascript debugging +### JavaScript debugging -When you create a launch config to debug a JS/TS 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 args 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 DAP were required. We have 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. +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. 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. @@ -271,7 +274,7 @@ Here's how to use the new behavior in a node launch config. ### Picker for debug sessions -When debugging, you can now run **Debug: Select Debug Session** in the Command Palette. This shows a picker with your active debug sessions, which you can use to search and filter your individual debug sessions. The description for each picker item will show the session that spawned it, if applicable. Selecting an item in the picker will open the debug console from within the context of the selected debug session. +When debugging, you can now run **Debug: Select Debug Session** in the Command Palette. This shows a picker with your active debug sessions, which you can use to search and filter your individual debug sessions. The description for each picker item will show the session that spawned it, if applicable. Selecting an item in the picker will open the Debug Console from within the context of the selected debug session. ![Debug Session Picker Demo](images/1_70/debug-sessions.gif) @@ -279,15 +282,15 @@ When debugging, you can now run **Debug: Select Debug Session** in the Command P ### Keep newlines when formatting JSON -This feature allows one to keep the initial line positions upon line formatting of 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, enable 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 contain these values on the same line after formatting. To enable this feature, set the option **JSON > Format: Keep Lines** in the Setting editor. ## Notebooks ### Go to Most Recently Failed Cell -If your most recently run cell failed, then there is now a button that will jump to that cell. You can also run **Notebook: Go to Most Recently Failed Cell** to perform the same action. +If your most recently run cell failed, there is now a button that will jump to that cell. You can also run **Notebook: Go to Most Recently Failed Cell** to perform the same action. -This is particularly useful when you run a group of cells and want to know which cell failed and halted the group execution. +This is useful when you run a group of cells and want to know which cell failed and halted the group execution. ![Go To Most Recently Failed Cell Demo](images/1_70/go-to-most-recently-failed-cell.gif) @@ -299,7 +302,7 @@ You can now set the display language of the browser using **Set Display Language ![Set Display Language](images/1_70/set-display-language.png) -Once set, you can clear the display language by clicking the **Clear Display Language** button available on the language pack extension whose language is currently set. +Once set, you can clear the display language by using the **Clear Display Language** button on the currently set language pack extension. ![Clear Display Language](images/1_70/clear-display-language.png) @@ -309,17 +312,17 @@ Once set, you can clear the display language by clicking the **Clear Display Lan #### Experimental extension: WWBD -We have created an experimental extension named [WWBD](https://marketplace.visualstudio.com/items?itemName=brettcannon.wwbd) to act as a sandbox for environment workflow ideas. As of now we are experimenting with a **Create Environment** command for virtual environments to see if a single command can help users set up a new virtual environment (see the extension page for the full details and other extension features). Please see the [Ideas category](https://github.com/brettcannon/WWBD/discussions/categories/ideas) in the project repository for what ideas we are considering, 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 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. #### New Getting started experience -We've polished the Python walkthrough flow so users can smoothly transition to installing python if need be and selecting it. Windows Store or appropriate walkthrough tile is opened when Python is not installed, where users can now auto-run the instructions displayed. Any prompts related to interpreters are now only shown when a user-action is performed which requires it, instead of automatically showing them at start-up leading to distracting user experience. Also, such prompts are now improved to be more precise about the errors and changes that are needed to be made. +We've polished the Python walkthrough flow so users can smoothly transition to installing Python if they need to. A Windows Store or 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. -#### Interpreter information in the status bar +#### Interpreter information in the Status bar -A new User setting `python.interpreter.infoVisibility` is introduced which controls when information of selected interpreter is displayed in the status bar. It can be set to "Always" to revert to the old behavior where selected interpreter is always displayed regardless of what file is opened. By default, we try our best to only show the information when Python-related files are opened. A warning status is added to indicate situations where 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. 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: -![Interpreter information in the status bar](images/1_70/interpreter-info.png) +![Interpreter information in the Status bar](images/1_70/interpreter-info.png) ## Preview features @@ -337,11 +340,11 @@ To start using the TypeScript 4.8 nightly builds, install the [TypeScript Nightl ### Settings Profiles -We have been working the last couple of months to support **Settings Profiles** in VS Code, which is one of the most popular asks from the community. This feature is available for preview in the [Insiders](https://code.visualstudio.com/insiders/) release via `workbench.experimental.settingsProfiles.enabled` setting. Please try out this feature and let us know your feedback by creating issues in our [VS Code Repository](https://github.com/microsoft/vscode/issues) or commenting in [issue #116740](https://github.com/microsoft/vscode/issues/116740). +We have been working the last couple of months to support **Settings Profiles** in VS Code, which is one of the most popular asks from the community. This feature is available for preview in the [Insiders](https://code.visualstudio.com/insiders/) release via `workbench.experimental.settingsProfiles.enabled` setting. Try it out and let us know your feedback by creating issues in the [VS Code repository](https://github.com/microsoft/vscode/issues) or commenting in [issue #116740](https://github.com/microsoft/vscode/issues/116740). -In this milestone we added support for **Settings Profiles** feature in the insiders release of VS Code for the Web via `workbench.experimental.settingsProfiles.enabled` setting. You can try this feature in the web using [insiders.vscode.dev](https://insiders.vscode.dev) +In this milestone, we also added support for **Settings Profiles** in VS Code for the Web. You can try it out using [insiders.vscode.dev](https://insiders.vscode.dev) and the same `workbench.experimental.settingsProfiles.enabled` setting. -![Settings Profiles demo, showing the theme, zoom level, and activity bar position changing as the profile is switched](images/1_70/settings-profiles.gif) +![Settings Profiles demo, showing the theme, zoom level, and Activity bar position changing as the profile is switched](images/1_70/settings-profiles.gif) _Theme: [Light Pink](https://marketplace.visualstudio.com/items?itemName=mgwg.light-pink-theme)_ @@ -353,13 +356,13 @@ On window reload, watch tasks can be reconnected to by enabling `task.experiment ### 'not in' operator for 'when' clauses -There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See [this operator's documentation](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) for details. +There is an operator that already exists for when clauses, `in`, which allows for dynamic lookup of a context key's value within another context key with an array or object-type value. We've added a new operator `not in`, which negates this. See the [when clause contexts](https://code.visualstudio.com/api/references/when-clause-contexts#in-and-not-in-conditional-operators) documentation for details. ### htmlLanguageParticipants contribution point -A new contribution point `htmlLanguageParticipants` allows HTML-like languages to declare that they want to inherit all HTML language server features such as code completions, hovers and outline. This is useful for languages that don't want to implement an full language server. +A new contribution point `htmlLanguageParticipants` allows HTML-like languages to declare that they want to inherit all HTML language server features such as code completions, hovers, and outline. This is useful for programming language extensions that don't want to implement a full language server. -An example is the built-in `handlebars` extension that now declares in its `package.json` : +An example is the built-in `handlebars` extension that now adds itself to the `htmlLanguageParticipants` in its `package.json`: ```json "contributes": { @@ -403,24 +406,28 @@ The `RunInTerminalRequest` supports a new property, `argsCanBeInterpretedByShell ### Progress for Electron sandbox support -This milestone we made substantial progress on eventually enabling Electron's [sandbox](https://www.electronjs.org/docs/tutorial/sandbox) by default. We plan on enabling sandbox in August for Insiders and eventually make it the default in Stable VS Code. +This milestone we made substantial progress toward enabling Electron's [sandbox](https://www.electronjs.org/docs/tutorial/sandbox) by default. We plan on enabling sandbox in August for Insiders and eventually make it the default in Stable VS Code. -For the curious out there, configuring `"window.experimental.useSandbox": true` in settings will enable sandbox mode. You should not notice anything changing hopefully, but if you find issues, please report them back to us! +For the curious out there, configuring `"window.experimental.useSandbox": true` in settings will enable sandbox mode. Hopefully you should not notice anything changing, but if you find issues, please report them back to us. ### Markdown language server -### Extensible html notebook renderer +### Extensible HTML notebook renderer ### Debian package dependencies -Debian package dependencies are now generated by a script rather than hard-coded. This closes an [issue filed back in 2016](https://github.com/microsoft/vscode/issues/13089) where missing dependencies would cause the program to crash during runtime on some machines. +Debian package dependencies are now generated by a script rather than hard-coded. This closes an [issue filed back in 2016](https://github.com/microsoft/vscode/issues/13089) where missing dependencies would cause the program to crash at runtime on some machines. ## Documentation and extensions +### Development container CLI + +The [dev container command-line interface](https://code.visualstudio.com/docs/remote/devcontainer-cli) (CLI) topic was updated for the [newest version](https://code.visualstudio.com/blogs/2022/05/18/dev-container-cli) of the CLI. The dev container CLI lets you build and run dev containers and is an open-source reference implementation of the [Development Container Specification](https://containers.dev) + ### Azure Developer CLI (azd) The [Azure Developer CLI](https://docs.microsoft.com/azure/developer/azure-developer-cli) and its complementary [VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.azure-dev) are now in public preview. The Azure Developer CLI (azd) accelerates the time it takes you to get from your local development environment to Azure by providing developer-friendly commands that map to key stages in your workflow: code, build, deploy, monitor, repeat. @@ -470,7 +477,7 @@ Contributions to `vscode`: * [@jzyrobert (Robert Jin)](https://github.com/jzyrobert) * Add Expand all button in explorer view [PR #153614](https://github.com/microsoft/vscode/pull/153614) * Edit showFoldingControls to have a never setting [PR #153764](https://github.com/microsoft/vscode/pull/153764) -* [@liby (Bryan Lee)](https://github.com/liby): Add support for angle bracket matching and colorization in Typescript [PR #151705](https://github.com/microsoft/vscode/pull/151705) +* [@liby (Bryan Lee)](https://github.com/liby): Add support for angle bracket matching and colorization in TypeScript [PR #151705](https://github.com/microsoft/vscode/pull/151705) * [@mingwiki](https://github.com/mingwiki): Fix Socks5 Proxy Regex Checking Warning [PR #144954](https://github.com/microsoft/vscode/pull/144954) * [@MonadChains (MonadChains)](https://github.com/MonadChains): Add command to copy output of the last command (#152097) [PR #153235](https://github.com/microsoft/vscode/pull/153235) * [@nirabhromakhal (nirabhromakhal)](https://github.com/nirabhromakhal): Fixed issue where status bar can overflow without affecting notification beak [PR #155649](https://github.com/microsoft/vscode/pull/155649) @@ -493,12 +500,6 @@ Contributions to `vscode`: * [@SvanT (Svante Boberg)](https://github.com/SvanT): Add missing disposals [PR #155976](https://github.com/microsoft/vscode/pull/155976) * [@yiliang114 (易良)](https://github.com/yiliang114): fix: typos [PR #155310](https://github.com/microsoft/vscode/pull/155310) -Contributions to `vscode-docs`: - -* [@dlech (David Lechner)](https://github.com/dlech): Update linux.md [PR #5450](https://github.com/microsoft/vscode-docs/pull/5450) -* [@Evavic44 (Victor Eke )](https://github.com/Evavic44): docs: remove example reference from faq section [PR #5410](https://github.com/microsoft/vscode-docs/pull/5410) -* [@timdaman (Tim Laurence)](https://github.com/timdaman): Fix directory command [PR #5460](https://github.com/microsoft/vscode-docs/pull/5460) - Contributions to `vscode-generator-code`: * [@hawkticehurst (Hawk Ticehurst)](https://github.com/hawkticehurst) From c1e726387a9877084c25448f45b402df2f18ad4b Mon Sep 17 00:00:00 2001 From: Jim Griesmer Date: Sun, 31 Jul 2022 23:11:36 -0700 Subject: [PATCH 63/70] Add a couple Jupyter items --- release-notes/v1_70.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index b12d6bded1..e80e2479cf 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -324,6 +324,27 @@ A new setting `python.interpreter.infoVisibility` was added, which controls when ![Interpreter information in the Status bar](images/1_70/interpreter-info.png) +### Jupyter +#### Copy plot images to clipboard +It is now possible to copy plots in cell outputs to the clipboard. + +Make sure you have the correct presentation selected as only png ouput is currently supported: +![image](https://user-images.githubusercontent.com/2019016/180049546-3afb2d96-fc83-4ed2-9fe9-6e7673a43ab2.png) +![image](https://user-images.githubusercontent.com/2019016/180049629-34731067-7491-4927-a30f-d9ae721870d3.png) + +#### Web extension +The following features were ported to the web extension: + +* Plot viewer +* Dataframe viewer + +If you'd like to experiment with the functionality, launch Jupyter from your local machine with: + +jupyter notebook --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net +And then connect to it using the command Jupyter: Specify Jupyter server for connections from within vscode.dev. + +For more information (and to comment), see this [discussion item](https://github.com/microsoft/vscode-jupyter/discussions/10315). + ## Preview features ### Sticky scroll From ddb3d66ca726cfa352e4a8ce4734820a5d994aeb Mon Sep 17 00:00:00 2001 From: Justin Chen <54879025+justschen@users.noreply.github.com> Date: Sun, 31 Jul 2022 23:57:17 -0700 Subject: [PATCH 64/70] added release notes on code actions widget! (#5512) --- release-notes/images/1_70/code-action-all.gif | 3 ++ release-notes/v1_70.md | 29 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 release-notes/images/1_70/code-action-all.gif diff --git a/release-notes/images/1_70/code-action-all.gif b/release-notes/images/1_70/code-action-all.gif new file mode 100644 index 0000000000..a6c5455df8 --- /dev/null +++ b/release-notes/images/1_70/code-action-all.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03bd18022fb27f9913645d1901a97163db167f140d7ff6e954564c49bd516c3e +size 498872 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index e80e2479cf..b7f494108e 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -105,6 +105,35 @@ The **File** > **New File...** (or **New File...** link on the getting started p ![A input box with test.js inputted into it and the entry New File(test.js) selected](images/1_70/new-file.png) +## Editor + +### Experimental: Code Actions Widget + +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 hitting Recactor or Source Actions, from the Lighbulb Widget, or from Quick Fixes (Quick Fix Menu). Try it out via the `editor.contrib.experimental.codeActionWidget.enabled` setting. Let us any feedback you have on the widget by creatibng issues in the [VS Code repository](https://github.com/microsoft/vscode/issues) or commenting in [issue #152913](https://github.com/microsoft/vscode/issues/152913). + + +![Code Action Widget demo, showing widget access from the context menu, the lightbulb widget, and quick fix.](images/1_70/code-action-all.gif) + + +In this milestone, we also added support for **Custom Keybindings** in the Code Action Widget, which includes the Quick Fix Menu (`Ctrl + .`). You can try it out by adding the following snippet with your desired custom keybindings to `keybindings.json`. + +```json +[ + { + "key": "ctrl+k", + "when": "CodeActionMenuVisible", + "command": "focusPreviousCodeAction" + }, + { + "key": "ctrl+j", + "when": "CodeActionMenuVisible", + "command": "focusNextCodeAction" + } +] +``` + ## Terminal ### Shell integration enabled by default From 5f88fa7b627faa75bcee69f6d6e99fc146f67604 Mon Sep 17 00:00:00 2001 From: tanhakabir Date: Mon, 1 Aug 2022 01:00:08 -0700 Subject: [PATCH 65/70] Add init VS Code Server notes --- remote-release-notes/v1_70.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/remote-release-notes/v1_70.md b/remote-release-notes/v1_70.md index 0cc7e155f9..aeae1cba8f 100644 --- a/remote-release-notes/v1_70.md +++ b/remote-release-notes/v1_70.md @@ -9,3 +9,13 @@ ## SSH ## WSL + +## The Visual Studio Code Server (private preview) + +### Connect in VS Code for Desktop + +With the VS Code Server and its port forwarding service, we enabled you to connect to any remote machine within VS Code for Web (vscode.dev). You can read more about it in its [announcement blog post](https://aka.ms/vscode-server-blog). + +Now we've enabled connecting to any remote machine on both the Web and Desktop versions of VS Code with the Remote Server extension (found by searching for `ms-vscode.remote-server` in the Extension marketplace). This means you can connect to any remote machine on any platform of VS Code without needing SSH. + +To learn more about how to get started with the VS Code Server in its [documentation](https://aka.ms/vscode-server-doc). From e42482c97221e8577c6ac7ef14f530c32ec68aa5 Mon Sep 17 00:00:00 2001 From: paulacamargo25 Date: Mon, 1 Aug 2022 01:33:40 -0700 Subject: [PATCH 66/70] Update v1_70.md --- release-notes/v1_70.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index b7f494108e..c4dc71494e 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -353,6 +353,16 @@ A new setting `python.interpreter.infoVisibility` was added, which controls when ![Interpreter information in the Status bar](images/1_70/interpreter-info.png) +#### Automatic debug configurations +We have implemented in the python extension the Visual Studio Code's automatic debug configuration feature, which allows us to analyze the current project and provide the user with quality debug configurations automatically that do not require additional configuration by the user. + +We can recognize Django, FastApi vs Flask project, as well as a simple python file. + +In the Visual Studio Code documentation you can check how the [automatic debug configuration](https://code.visualstudio.com/updates/v1_45#_automatic-debug-configurations) works and [some improvements](https://code.visualstudio.com/updates/v1_46#_automatic-debug-configurations-improvements) that we made. + +![Flask Automatic debug configuration](images/1_70/automatic-debug-configuration.gif) + + ### Jupyter #### Copy plot images to clipboard It is now possible to copy plots in cell outputs to the clipboard. From cbdab498c0b688d886b51313cd3bbab91df76d3b Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Mon, 1 Aug 2022 03:38:43 -0700 Subject: [PATCH 67/70] Add ctrl+c run recent command keybinding as well --- docs/terminal/shell-integration.md | 6 ++++++ release-notes/v1_70.md | 1 + 2 files changed, 7 insertions(+) diff --git a/docs/terminal/shell-integration.md b/docs/terminal/shell-integration.md index 65b3d943d9..fc8f2431c6 100644 --- a/docs/terminal/shell-integration.md +++ b/docs/terminal/shell-integration.md @@ -123,6 +123,12 @@ There is currently no keybinding assigned by default but you can add your own ke "command": "workbench.action.terminal.sendSequence", "args": { "text": "\u0012"/*^R*/ }, "when": "terminalFocus" +}, +// Have ctrl+c close the quick pick +{ + "key": "ctrl+c", + "command": "workbench.action.closeQuickOpen", + "when": "inQuickOpen && inTerminalRunCommandPicker" } ``` diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index c4dc71494e..b865fb00c7 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -199,6 +199,7 @@ The new `inTerminalRunCommandPicker` context key is available that allows settin { "key": "ctrl+r", "command": "workbench.action.terminal.runRecentCommand", "when": "terminalFocus" }, { "key": "ctrl+alt+r", "command": "workbench.action.terminal.sendSequence", "args": { "text": "\u0012"/*^R*/ }, "when": "terminalFocus" }, { "key": "ctrl+r", "command": "workbench.action.quickOpenNavigateNextInViewPicker", "when": "inQuickOpen && inTerminalRunCommandPicker" }, +{ "key": "ctrl+c", "command": "workbench.action.closeQuickOpen", "when": "inQuickOpen && inTerminalRunCommandPicker" }, ``` Multi-line commands now display a new line symbol where appropriate and will also use bracketed paste mode, meaning they are treated as if they were pasted for supporting shells. This typically means they will all be added to the same prompt instead of executing them separately. From 8e6008dd589e40b87938897162a701d1a9c1fc21 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Mon, 1 Aug 2022 16:34:15 +0200 Subject: [PATCH 68/70] 3 way merge editor improvements. --- release-notes/v1_70.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index b865fb00c7..5ffc26f93d 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -64,6 +64,14 @@ VS Code now keeps folded ranges, even if the folding range is no longer part of The folding controls in the gutter can now be hidden with the setting `"editor.showFoldingControls": "never"`. Folding ranges can still be expanded and collapsed using the folding commands and shortcuts. +### 3-way merge editor improvements + +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 SCM 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. + +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! + ### New command line option --merge You can now use command line options to bring up the merge editor in VS Code: From 91f5fb55d397c6ba59c846da4946aecf752d967d Mon Sep 17 00:00:00 2001 From: rebornix Date: Mon, 1 Aug 2022 08:54:38 -0700 Subject: [PATCH 69/70] interactive window restore --- .../images/1_70/interactive-window-restore.gif | 3 +++ release-notes/v1_70.md | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 release-notes/images/1_70/interactive-window-restore.gif diff --git a/release-notes/images/1_70/interactive-window-restore.gif b/release-notes/images/1_70/interactive-window-restore.gif new file mode 100644 index 0000000000..4fedc6a858 --- /dev/null +++ b/release-notes/images/1_70/interactive-window-restore.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b87d5afbf15c6ac818f0a1e0967a0a0ad5dbe75bc0ed52c341f4e016c51ce9a +size 516961 diff --git a/release-notes/v1_70.md b/release-notes/v1_70.md index 5ffc26f93d..4751ace10d 100644 --- a/release-notes/v1_70.md +++ b/release-notes/v1_70.md @@ -373,6 +373,7 @@ In the Visual Studio Code documentation you can check how the [automatic debug c ### Jupyter + #### Copy plot images to clipboard It is now possible to copy plots in cell outputs to the clipboard. @@ -393,6 +394,15 @@ And then connect to it using the command Jupyter: Specify Jupyter server for con For more information (and to comment), see this [discussion item](https://github.com/microsoft/vscode-jupyter/discussions/10315). +#### Interactive Window restore + +Interactive Window sessions can now be restored across VS Code window reloads by turning on 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. + + ## Preview features ### Sticky scroll From 71c3eb977a93fc56b8036e7f2509639ee839c99d Mon Sep 17 00:00:00 2001 From: Miguel Solorio Date: Mon, 1 Aug 2022 09:00:02 -0700 Subject: [PATCH 70/70] Add button separator color token --- api/references/theme-color.md | 1 + 1 file changed, 1 insertion(+) diff --git a/api/references/theme-color.md b/api/references/theme-color.md index 04f2431293..0a9bad0903 100644 --- a/api/references/theme-color.md +++ b/api/references/theme-color.md @@ -86,6 +86,7 @@ A set of colors for button widgets such as **Open Folder** button in the Explore - `button.background`: Button background color. - `button.foreground`: Button foreground color. - `button.border`: Button border color. +- `button.separator`: Button separator color. - `button.hoverBackground`: Button background color when hovering. - `button.secondaryForeground`: Secondary button foreground color. - `button.secondaryBackground`: Secondary button background color.