diff --git a/release-notes/v1_45.md b/release-notes/v1_45.md index 59d02c001..29479f048 100644 --- a/release-notes/v1_45.md +++ b/release-notes/v1_45.md @@ -11,17 +11,20 @@ DownloadVersion: 1.45.0 -Welcome to the Insiders build. These are the preliminary notes for the April 1.45 release of Visual Studio Code. As we get closer to the release date, you'll find details below about new features and important fixes. +Welcome to the April 2020 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include: -Until the April milestone release notes are available, you can still track our progress: +* **[Accessibility improvements](#accessibility)** - New Focus commands to move around the workbench, status bar accessibility. +* **[Switch editor tabs via mouse wheel](#switch-tabs-using-mouse-wheel)** - Quickly switch open files in the editor using your mouse wheel. +* **[Faster syntax highlighting](#faster-syntax-highlighting)** - Programming language colorization is up to 3 times faster. +* **[Custom semantic colors](#semantic-token-styling)** - Change semantic token colors through your user settings. +* **[GitHub authentication support](#git-authentication-for-github-repos)** - Automatic Git authentication for GitHub repositories. +* **[Remote Development](#remote-development)** - Container configuration recommendations, WSL 2 support. +* **[JavaScript debugger preview](#new-javascript-debugger)** - CPU profiler support, improved Auto Attach to Node.js processes. +* **[New Docker Compose topic](#docker-compose)** - Learn how to use Docker Compose to work with multiple containers. -* **[April iteration plan](https://github.com/microsoft/vscode/issues/95168)** - Review what's planned for the milestone. -* **[Commit log](https://github.com/Microsoft/vscode/commits/master)** - GitHub commits to the vscode open-source repository. -* **[Closed issues](https://github.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22April+2020%22+is%3Aclosed)** - Resolved bugs and implemented feature requests in the milestone. +>If you'd like to read these release notes online, go to [Updates](https://code.visualstudio.com/updates) on [code.visualstudio.com](https://code.visualstudio.com). -We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new. - -If you find issues or have suggestions, you can enter them in the [VS Code repository](https://github.com/Microsoft/vscode/issues) on GitHub. +**Insiders:** Want to try new features as soon as possible? You can download the nightly [Insiders](https://code.visualstudio.com/insiders) build and try the latest updates as soon as they are available. And for the latest Visual Studio Code news, updates, and content, follow us on Twitter [@code](https://twitter.com/code)! ## Accessibility @@ -39,6 +42,8 @@ One of our team's top priorities is making Visual Studio Code a more accessible When you use the mouse wheel to scroll over editor tabs, you currently cannot switch to the tab, only reveal tabs that are out of view. Now with a new setting `workbench.editor.scrollToSwitchTabs`, this behavior can be changed if you change it to `true`. +Below you can see that when the cursor focus in the editor tab region, if the user scrolls their mouse wheel, the active editor changes. + ![Scroll Tabs](images/1_45/scroll-tabs.gif) **Note:** You can also press and hold the `Shift` key while scrolling to get the opposite behavior (for example, you can switch to tabs even when the `scrollToSwitchTabs` setting is off). @@ -55,9 +60,24 @@ We've updated the styling of the sidebar section headers for our default Dark an ![Sidebar section headers](images/1_45/sidebar-section-header.png) -### Semantic token styling in the user settings +### More workspace recommendations -The setting to customize semantic theming rules in the user settings has been finalized. Semantic coloring is available for TypeScript and JavaScript, with support for Java and C++ under development. It is enabled by default for built-in themes and being adopted by theme extensions. +VS Code now recommends following Git-related extensions if your workspace is configured with Git and GitHub remote. + +* [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) +* [GitHub Pull Requests and Issues](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) + +## Editor + +### Faster syntax highlighting + +Syntax Highlighting in VS Code runs by [interpreting Text Mate Grammars](https://code.visualstudio.com/blogs/2017/02/08/syntax-highlighting-optimizations). These grammars are authored with regular expressions written in a particular dialect and can be evaluated using the [oniguruma regular expression library](https://github.com/kkos/oniguruma). Up until now, we have been using two distinct libraries for evaluating such regular expressions, one for VS Code desktop (a native node module), and another one for VS Code in the browser (a Web Assembly binary). + +We have now written a dedicated Web Assembly binding that is optimized for usage by our Text Mate interpreter. Thanks to avoiding memory allocations in inner loops, and by adopting new APIs added just a few months ago to oniguruma, we have been able to create a variant that is faster than both of the previous approaches and delivers up to 3 times faster times for highlighting regular programming files. You can see [pull request #95958](https://github.com/microsoft/vscode/pull/95958) more details and measurements. + +### Semantic token styling + +You can now customize semantic theming rules in your user settings. Semantic coloring is available for TypeScript and JavaScript, with support for Java and C++ under development. It is enabled by default for built-in themes and being adopted by theme extensions. The `editor.semanticTokenColorCustomizations` allows users to overrule the theme settings and to customize the theming. @@ -90,21 +110,6 @@ The Default Dark+ and the Default Light+ theme now color constants in a differen ![Constant color in the Light+ theme](images/1_45/new-constant-color-light-theme.png) -### More workspace recommendations - -VS Code now recommends following Git-related extensions if your workspace is configured with Git and GitHub remote. - -* [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) -* [GitHub Pull Requests and Issues](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) - -## Editor - -### Faster syntax highlighting - -Syntax Highlighting in VS Code runs by [interpreting Text Mate Grammars](https://code.visualstudio.com/blogs/2017/02/08/syntax-highlighting-optimizations). These grammars are authored with regular expressions written in a particular dialect and can be evaluated using the [oniguruma regular expression library](https://github.com/kkos/oniguruma). Up until now, we have been using two distinct libraries for evaluating such regular expressions, one for VS Code desktop (a native node module), and another one for VS Code web (a Web Assembly binary). - -We have now written a dedicated Web Assembly binding that is optimized for usage by our Text Mate interpreter. Thanks to avoiding memory allocations in inner loops, and thanks to adopting some new API added just a few months ago to oniguruma, we have been able to create a variant that is faster than both of the previous approaches and delivers up to 3 times faster times for highlighting regular programming files. You can see [here](https://github.com/microsoft/vscode/pull/95958) more details and measurements. - ### Disable persistent Undo Last milestone, changed the Undo/Redo stack to be persisted when you close a file and reopen it. Not everyone wanted this new feature, so there is now a setting, `files.restoreUndoStack`, to disable persistent Undo. @@ -207,13 +212,13 @@ Editor links in Markdown files and links in the Markdown preview can now point t ## Source Control -### Git GitHub authentication +### Git authentication for GitHub repos -VS Code now has automatic Git authentication against GitHub repositories. You can now clone, pull, push to and from public and private repositories without configuring any credential manager in your system. Even git commands invoked in the integrated terminal, for example `git push`, are now automatically authenticated against your GitHub account. +VS Code now has automatic Git authentication against GitHub repositories. You can now clone, pull, push to and from public and private repositories without configuring any credential manager in your system. Even Git commands invoked in the Integrated Terminal, for example `git push`, are now automatically authenticated against your GitHub account. You can disable GitHub authentication with the `git.githubAuthentication` setting. You can also disable the terminal authentication integration with the `git.terminalAuthentication` setting. -### Hide Git commit input +### Hide Git commit input box A new setting `git.showCommitInput` allows you to hide the commit input box for Git repositories. @@ -239,6 +244,38 @@ You can now sign in with your GitHub account to synchronize your VS Code prefere We also added support for synchronizing global snippets. +### New JavaScript debugger + +This month we continued making progress on our new JavaScript debugger. It's installed by default on Insiders, and can be installed [from the Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug-nightly) in VS Code Stable. You can start using it with your existing launch configurations by enabling the `debug.javascript.usePreview` setting. + +Here are some new features added this month: + +**Profiling Support** + +You can capture CPU profiles from your Node.js or browser applications by clicking the new **Profile** button in the Call Stack view, or using the **Debug: Take Performance Profile** command. Once you do, you can choose how long the profile will run: until you stop it, for a length of time, or until you hit another breakpoint. + +After the profile ends, it's saved in your workspace folder and opened in VS Code. If you're running our stable build, you'll want to install our [visualizer extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-js-profile-table) to view it. On Insiders, the extension is already built-in. When you open the profile, code lenses are added to your files containing performance information at a function level and for certain 'hot' lines. Unlike profiles captured in many other tools, the recorded profile is sourcemap-aware. + +![Animation showing the process of taking a profile](images/1_45/js-debug-profiling.gif) + +*Theme: Earthsong, Font: Fira Code* + +**Auto Attach integration** + +When `debug.javascript.usePreview` is turned on, VS Code's [Auto Attach](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-feature) will use a new method provided by `js-debug` that allows all terminals to work similarly to the Debug Terminal. + +Compared to Auto Attach using the existing debugger: + +* The debugger is attached immediately allowing you to hit breakpoints early on in the program. +* Child processes are debugged automatically. +* There's no process-polling overhead during Auto Attach. + +**Copy Complex Values from Variables View** + +Previously, trying to copy complex values, like objects, from the vscode **Variables** view would often result in truncated or incomplete data. Changes in VS Code and js-debug allow us to copy the complete value. + +![Animation showing copying and pasting a very large array](images/1_45/js-debug-copy.gif) + ### Product icon themes Visual Studio Code contains a set of built-in icons that are used in views and the editor, but can also be used in hovers, the status bar, and by extensions. These icons are **product icons** as opposed to **file icons**, which are used next to file names throughout the UI. @@ -249,34 +286,6 @@ The product icons that ship with VS Code are contained in the [Codicon icon font See the [Product Icon Themes](https://code.visualstudio.com/api/extension-guides/product-icon-theme) documentation for more details and have a look at the [Product Icon Theme Sample](https://github.com/Microsoft/vscode-extension-samples/tree/master/product-icon-theme-sample) -### New JavaScript debugger - -This month we've continued making progress on our new JavaScript debugger. It's installed by default on Insiders, and can be installed [from the Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug-nightly) in VS Code Stable. You can start using it with your existing launch configurations by enabling the `debug.javascript.usePreview` setting. Here are some new features added this month: - -**Profiling Support** - -You can capture CPU profiles from your Node.js or browser applications by clicking the new "Profile" button in the Call Stack view, or using the **Debug: Take Performance Profile** command. Once you do, you can choose how long the profile will run: until you stop it, for a length of time, or until you hit another breakpoint. - -After the profile ends, it's saved in your workspace folder and opened in VS Code. If you're running our stable build, you'll want to install our [visualizer extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-js-profile-table) to view it. On Insiders, the extension is already built-in. When you open the profile, code lenses are added to your files containing performance information at a function level and for certain 'hot' lines. Unlike profiles captured in many other tools, the recorded profile is sourcemap-aware. - -![Animation showing the process of taking a profile](images/1_45/js-debug-profiling.gif) - -*Theme: Earthsong, Font: Fira Code* - -**Auto-Attach Integration** - -When `debug.javascript.usePreview` is turned on, VS Code's [auto-attach](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-feature) will use a new method provided by `js-debug` that allows all terminals to work similarly to the Debug Terminal. Compared to auto-attach using the existing debugger: - -* The debugger is attached immediately allowing you to hit breakpoints early on in the program -* Child processes are debugged automatically -* There's no process-polling overhead during auto attach. - -**Copy Complex Values from Variables View** - -Previously, trying to copy complex values, like objects, from the vscode **Variables** view would often result in truncated or incomplete data. Changes in VS Code and js-debug allow us to copy the complete value. - -![Animation showing copying and pasting a very large array](images/1_45/js-debug-copy.gif) - ### TypeScript/JavaScript symbol search across all open projects When using TypeScript 3.9+, VS Code's [workspace symbol search](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name) now includes results from all opened JavaScript and TypeScript projects by default. We previously only searched the project of the currently active file. @@ -316,6 +325,12 @@ Lastly, you can now move your custom containers around with all of the containin Work continues on the [Remote Development extensions](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack), which allow you to use a container, remote machine, or the [Windows Subsystem for Linux](https://docs.microsoft.com/windows/wsl) (WSL) as a full-featured development environment. +Feature highlights in 1.45 include: + +* Remote - Containers: Provide container configuration recommendations. +* Remote - Containers: WSL2 Docker and Podman engines support. +* Remote - Containers: New `devcontainer.json` variables for local and container folders. + You can learn about new extension features and bug fixes in the [Remote Development release notes](https://github.com/microsoft/vscode-docs/tree/master/remote-release-notes/v1_45.md). ### GitHub Issue Notebook @@ -388,29 +403,33 @@ There are new colors for styling the Debug view: * `debugTokenExpression.number`: Foreground color for numbers in debug views * `debugTokenExpression.error`: Foreground color for expression errors in debug views -### Source Control: New `preserveFocus` argument to open resource commands +### Source Control + +**New preserveFocus argument to open resource commands** When invoking the `SourceControlResourceState.command` command, an additional `preserveFocus: boolean` argument will be passed, which lets extension authors to provide a better user experience. -### Source Control: Input mimetype +**Input text mimetype** -The Source Control input text now has a new mimetype: `text/x-scm-input`. +The Source Control input text now has a dedicated mimetype: `text/x-scm-input`. -### Source Control: Input.visible +**Control input box visibility** -You can now control the visibility of the Source Control input box for each repository using the `SourceControlInputBox.visible` property. +Extensions can now control the visibility of the Source Control input box for each repository using the `SourceControlInputBox.visible` property. -### Git: Remote source providers +### Git -The Git extension API now supports other extensions to [provide remote sources](https://github.com/microsoft/vscode/blob/68213a7df9ee450fecec51f4f2a6dc8a44592f53/extensions/git/src/api/git.d.ts#L230) in order to participate in the `Git: Clone` command. +**Remote source providers** + +The Git extension API now supports other extensions to [provide remote sources](https://github.com/microsoft/vscode/blob/68213a7df9ee450fecec51f4f2a6dc8a44592f53/extensions/git/src/api/git.d.ts#L230) in order to participate in the **Git: Clone** command. Here's an example by the [GitHub Pull Requests](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) extension: ![Clone from GitHub](images/1_45/clone.gif) -### Git: Credential providers +**Credential providers** -The Git extension API now supports other extensions to [provide authentication credentials](https://github.com/microsoft/vscode/blob/68213a7df9ee450fecec51f4f2a6dc8a44592f53/extensions/git/src/api/git.d.ts#L231) in order to authenticate git commands invoked against HTTPS git repositories within the workbench and integrated terminal. +The Git extension API now allows other extensions to [provide authentication credentials](https://github.com/microsoft/vscode/blob/68213a7df9ee450fecec51f4f2a6dc8a44592f53/extensions/git/src/api/git.d.ts#L231) in order to authenticate Git commands invoked against HTTPS Git repositories within the workbench and integrated terminal. ### SignatureInformation.activeParameter diff --git a/remote-release-notes/v1_45.md b/remote-release-notes/v1_45.md index be67bb8cf..58567f22d 100644 --- a/remote-release-notes/v1_45.md +++ b/remote-release-notes/v1_45.md @@ -1,20 +1,16 @@ # April 2020 (version 1.45) -## Visual Studio Code Remote Core - -## SSH - ## Containers ### Container Configuration recommendation -When adding a development container configuration for a workspace using the **Remote-Containers: Add Development Container Configuration Files** we now recommend the container configurations that could be a good fit your workspace. The recommendation is done based on the used platform and the used languages. +When adding a development container configuration for a workspace using the **Remote-Containers: Add Development Container Configuration Files**, we now recommend the container configurations that could be a good fit your workspace. The recommendation is done based on the used platform and the used languages. ![Add Container Configurations](images/1_45/add-configuration.png) ### WSL 2 Support -Remote-Containers now supports the WSL 2 based engine of Docker Desktop for Windows. You can author your `devcontainer.json` in WSL 2 using the Remote-WSL extension and then reopen the WSL 2 folder in a container: +Remote-Containers now supports the WSL 2 based engine of Docker Desktop for Windows. You can author your `devcontainer.json` in WSL 2 using the Remote - WSL extension and then reopen the WSL 2 folder in a container: ![Reopen in Container for WSL 2](images/1_45/containers-wsl2-support.png) @@ -22,7 +18,7 @@ This currently requires Windows Insiders build 18917 or later (slow ring will do ### Podman Support -On Linux we now support Podman as the container engine. Simply create a symlink `docker` to the Podman executable on the `PATH`. +On Linux, we now support Podman as the container engine. Simply create a symlink `docker` to the Podman executable on the `PATH`. Make sure you have `conmon` >= 2.0.14 installed to get the fix for [containers/libpod#5046](https://github.com/containers/libpod/issues/5046). @@ -35,5 +31,3 @@ There are three additional variables for the `devcontainer.json`: | `${localWorkspaceFolderBasename}` | Name of the local folder that was opened in VS Code (that contains `.devcontainer/devcontainer.json`). | | `${containerWorkspaceFolder}` | The path where the workspaces files can be found in the container. | | `${containerWorkspaceFolderBasename}` | Name of the folder where the workspace files can be found in the container. | - -## WSL