Add documentation and partner extensions sections

This commit is contained in:
gregvanl 2021-05-02 21:22:43 -07:00
Родитель b01432979a
Коммит 834d30a23f
6 изменённых файлов: 83 добавлений и 37 удалений

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

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

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

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

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

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

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

@ -33,7 +33,7 @@ We have changes the mouse hover feedback for actions all around the workbench, t
### Untitled editors hint
We have noticed that many new users are not aware that a language has to be set in order to get full VS Code language support. To help with this problem, we have introduced a hint for untitled editors to help users set the correct language mode. The untitled hint might not be helpful to advanced users, so it goes away immediately as you start typing or you can select **don't show** to never see it again.
We have noticed that many new users are not aware that a language has to be set in order to get full VS Code language support. To help with this problem, we have introduced a hint for untitled editors to help users set the correct language mode. The untitled hint might not be helpful to advanced users, so it goes away immediately as you start typing or you can select **don't show** to never see the hint again.
![Untitled editor shows an untitled hint](images/1_56/untitled-hint.png)
@ -155,17 +155,19 @@ VS Code now renders the Call Stack column indicator every time a debuggee is sto
![An code execution is stopped and a column indicator is rendered in the middle of a line](images/1_56/debug-column.gif)
### Settings
**Inline values are now enabled by default for some languages**
### Inline values are now enabled by default for some languages**
VS Code's debugger UI supports **Inline values** that show variable values **inline** in the editor when stepping through the source code. This feature is based on a generic implementation in VS Code core and so may not be a perfect fit for all languages, even sometimes showing incorrect values because it doesn't understand the underlying source language. For these reasons, the feature is not enabled by default.
With the new extension API, it is now possible for language extensions to provide correct inline value support and we are enabling the **Improved inline values** feature by default.
To enable this feature, the `debug.inlineValues` setting has a new (default) value `auto`. When set to `auto`, inline values are automatically enabled for those languages that have "improved inline value" support (PowerShell and Java will likely be the first languages to implement this feature).
To enable this feature, the `debug.inlineValues` setting has a new (default) value `auto`. When set to `auto`, inline values are automatically enabled for those languages that have "improved inline value" support.
**Debug view displayed on break**
The [Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) extension is one of the first debugger extensions to adopt the API. Below you can see the accurate values of the Java variables right next to their usage.
![Java extension displaying inline values in the editor while debugging](images/1_56/java-inline-values.png)
### Debug view displayed on break
The default value of the `debug.openDebug` setting is now `openOnDebugBreak` so that on every breakpoint hit, VS Code will open the Debug view. The Debug view is also displayed on first session start.
@ -183,17 +185,15 @@ You can now toggle the line numbers of a cell in current session temporarily fro
![Toggle Line Number of a Cell](images/1_56/notebook-toggle-line-numbers.gif)
### Cell toolbar position per file type
The cell toolbar position can be now customized per file type through setting `notebook.cellToolbarLocation`. For example, you can have the cell toolbar on the right side for GitHub Issue Notebook but have it on the left for Jupyter.
## Languages
### Markdown preview typographer support
The new `markdown.preview.typographer` setting lets you enabled smart quotes and simple [typeographic replacements](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) in the built-in markdown preview.
The new `markdown.preview.typographer` setting lets you enabled smart quotes and simple [typographic replacements](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) in the built-in markdown preview.
In the example below, markdown text such as `(c)` gets automatically replaced by copyright symbol `©` in the preview:
@ -274,6 +274,19 @@ This dialog is important for allowing the user to make a decision early and unde
You can follow the development of Workspace Trust and provide feedback in [issue #106488](https://github.com/microsoft/vscode/issues/106488).
## Contributions to extensions
### Remote Development
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.56 include:
* Local terminal warning when connected to a remote
* New volume view when you **Clone Repository in Container Volume**
You can learn about new extension features and bug fixes in the [Remote Development release notes](https://github.com/microsoft/vscode-docs/blob/main/remote-release-notes/v1_56.md).
## Extension authoring
### iframes now used for most webviews
@ -304,7 +317,7 @@ In addition, exceptions and console messages that occur inside of webviews are n
![Exceptions from a webview printed in the main developer tools](images/1_56/webview-inspect-exceptions.png)
You can also use the developer tools to evaluate expressions in a webview's context. After opening VS Code's dev tools with **Developer: Toggle Developer Tools**, open the console and select the `active-frame` for your webview from the context selector.
You can also use the developer tools to evaluate expressions in a webview's context. After opening VS Code's dev tools with **Developer: Toggle Developer Tools**, open the console, and select the `active-frame` for your webview from the context selector.
![Selecting the current scope of the debug console](images/1_56/webview-inspect-debug-scope.png)
@ -364,7 +377,7 @@ This milestone we moved the Workspace Trust extension API from proposed to stabl
You can declare your extension to provide complete or partial or no support in untrusted workspaces using the `untrustedWorkspaces` capability in `package.json`.
Following example declares that the extension is supported completely in untrusted workspaces. In this case the extension is enabled in untrusted worksapces.
The following example declares that the extension is supported completely in untrusted workspaces. In this case, the extension is enabled in untrusted workspaces.
```json
"capabilities": {
@ -374,7 +387,7 @@ Following example declares that the extension is supported completely in untrust
}
```
Following example declares that the extension is not supported in untrusted workspaces. In this case the extension is disabled in untrusted worksapces.
The next example declares that the extension is not supported in untrusted workspaces. In this case, the extension is disabled in untrusted workspaces.
```json
"capabilities": {
@ -384,9 +397,9 @@ Following example declares that the extension is not supported in untrusted work
}
```
If you have a setting that can be configured in the workspace but requires workspace to be trusted to apply the workspace value then you can simply include such setting using `restrictedConfigurations` array property in `untrustedWorkspaces` object. Doing so, VS Code will ignore the workspace value of these restricted settings when your extension reads these settings values using the VS Code [Workspace Configuration](https://code.visualstudio.com/api/references/vscode-api#WorkspaceConfiguration) API. Note that you should declare your extension with `limited` support in case you have restricted configurations.
If you have a setting that can be configured in the workspace but requires the workspace to be trusted in order to apply the workspace value, then you can include the setting using `restrictedConfigurations` array property in `untrustedWorkspaces` object. Doing so, VS Code will ignore the workspace value of these restricted settings when your extension reads these settings values using the VS Code [Workspace Configuration](https://code.visualstudio.com/api/references/vscode-api#WorkspaceConfiguration) API. You should declare your extension with `limited` support in case you have restricted configurations.
Following example declares the settings which are restricted in untrusted workspaces.
The following example declares the settings that are restricted in untrusted workspaces.
```json
"capabilities": {
@ -436,7 +449,7 @@ We added the `NotebookSerializer` API. It provides a simplified way to translate
### Notebook controller
The notebook controller API replaces the kernel provider API. Notebook controllers provide the execution engine of your notebook, the implementation that create the notebook output. Notebooks can provide multiple controllers or none and VS Code allows users to select controllers. In return, extensions are free to create, modify, and remove controllers as their domain model demands.
The notebook controller API replaces the kernel provider API. Notebook controllers provide the execution engine of your notebook, which create the notebook output. Notebooks can provide multiple controllers or none and VS Code allows users to select controllers. In return, extensions are free to create, modify, and remove controllers as their domain model demands.
### Notebook cell Status bar
@ -446,11 +459,11 @@ The `NotebookCellStatusBarItemProvider` API replaces the `createCellStatusBarIte
In current versions of VS Code, sending typed arrays to or from a webview has a few quirks:
- Typed arrays, such as `UInt8Array`, are very inefficiently serialized. This can cause performance issues when you need to transfer many megabytes of data.
* Typed arrays, such as `UInt8Array`, serialize very inefficiently. This can cause performance issues when you need to transfer many megabytes of data.
- Sent typed arrays are not recreated as the correct type on the receiving side. If you send a `UInt8Array`, the receiver instead gets an generic object that has the data values of the `UInt8Array`.
* Sent typed arrays are not recreated as the correct type on the receiving side. If you send a `UInt8Array`, the receiver instead gets a generic object that has the data values of the `UInt8Array`.
While both of these issues are bugs, we also can't fix them without potentially breaking extensions that rely on the existing behavior. At the same time, there's zero reason an newly written extensions would want the current confusing and inefficient behavior.
While both of these issues are bugs, we also can't fix them without potentially breaking extensions that rely on the existing behavior. At the same time, there's zero reason a newly written extension would want the current confusing and inefficient behavior.
Therefore, we've decided to leave the existing behavior in place for existing extensions but opt new extensions into the more correct behavior. This is done by looking at the `engines` in your extension's `package.json`.
@ -515,7 +528,7 @@ The recommended fix is to not use an iframe and to inline the contents of the HT
### No implicit override enabled in codebase
The upcoming TypeScript 4.3 release a new [`override` keyword](https://github.com/microsoft/TypeScript/issues/2000) which tells the compiler that a method in a subclass overrides a method in its superclass. There's also a new `--noImplicitOverride` flag that enforces that all methods that override a method from a superclass must use the `override` workd:
The upcoming TypeScript 4.3 release a new [`override` keyword](https://github.com/microsoft/TypeScript/issues/2000) which tells the compiler that a method in a subclass overrides a method in its superclass. There's also a new `--noImplicitOverride` flag that enforces that all methods that override a method from a superclass must use the `override` keyword:
```ts
class Foo {
@ -529,9 +542,9 @@ class SubFoo extends Foo {
The override keyword has a few benefits:
- When reading code, it alerts you that a method is overriding one from the base class
* When reading code, it alerts you that a method is overriding one from the base class
- It is an error to try to override a method that does not exist on the base class. This can help catch errors caused by renaming a method in a base class but forgetting to update the method name in the subclasses.
* It is an error to try to override a method that does not exist on the base class. This can help catch errors caused by renaming a method in a base class but forgetting to update the method name in the subclasses.
This iteration we adopted the override keyword in our codebase and also enabled `--noImplicitOverride` for both core VS Code and all builtin extensions. While we automated the majority of this work, the change did help us catch a few cases where our code was incorrectly re-declaring a property or had unclear inheritance patterns.
@ -541,7 +554,29 @@ This new strictness rule should also help us catch some common programming mista
We have updated our [Windows Package Manager](https://docs.microsoft.com/windows/package-manager/) publishing pipeline to publish our user and system installers for `arm64`, and to adopt the [v1 package manifest schema](https://github.com/microsoft/winget-cli/blob/master/doc/ManifestSpecv1.0.md), allowing us to consolidate the user and system installers for `x86`, `x64` and `arm64` into a single manifest. Users can pick between the user and system installers using the `--scope` parameter when [installing](https://docs.microsoft.com/windows/package-manager/winget/install) a package or using the [winget CLI settings]([install](https://docs.microsoft.com/windows/package-manager/winget/install)).
## Documentation
## Documentation and extensions
### Updated introductory videos
The VS Code [introductory videos](https://code.visualstudio.com/docs/getstarted/introvideos) have been updated. The videos range from [Getting Started](https://code.visualstudio.com/docs/introvideos/basics) and [Using extensions](https://code.visualstudio.com/docs/introvideos/extend) to VS Code features like [Debugging](https://code.visualstudio.com/docs/introvideos/debugging) and [Version Control](https://code.visualstudio.com/docs/introvideos/versioncontrol).
![https://link](images/1_56/intro-video-debugging.png)
### New C++ videos
The [C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) team has created a set of [introductory videos](https://code.visualstudio.com/docs/cpp/introvideos-cpp) explaining how to configure IntelliSense, build, and debug your C++ projects.
### The Story and Technology Behind VS Code
You can read about the history and underlying technology of VS Code in [this interview](https://www.git-tower.com/blog/developing-for-the-desktop-vscode/) with VS Code engineer, [Ben Pasero](https://twitter.com/benjaminpasero). Ben talks about the early days of VS Code and what it's like to use Electron as an application framework enabling VS Code run on macOS, Windows, and Linux.
## Partner extensions
### Azure Machine Learning
The [Azure Machine Learning](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.vscode-ai) extension enables you to create and manage powerful cloud computing resources for your machine learning workflows. With its remote capabilities, you can seamlessly [connect to your compute resources](https://techcommunity.microsoft.com/t5/azure-ai/supercharge-azure-ml-code-development-with-new-vs-code/ba-p/2260129) in a secure, auditable, and compliant manner.
![Microsoft Azure Machine Learning extension](images/1_56/azure-machine-learning.png)
## Notable fixes

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

@ -4,27 +4,29 @@
### Local terminal indicator and message
Any _local_ terminal launched within a remote window will now have a special indicator in the dropdown or terminal tab and will also display a warning message to help differentiate them from remote terminals.
Any **local** terminal launched within a remote window will now have a special indicator in the dropdown or terminal tab and will also display a warning message to help differentiate them from remote terminals.
![](images/1_56/local_terminals.png)
![Warning to say that shell is running on your local machine](images/1_56/local_terminals.png)
## Containers (version 0.174.x)
### Clone repository in container volume now supports to manage the created volumes in a new view
### Clone Repository in Container Volume adds a new management view
The commands **Remote-Containers: Clone Repository in Container Volume** and **Remote-Containers: Clone GitHub Pull Request in Container Volume** create a Docker volume for the cloned repository. The Remote Explorer now shows a view **DEVVOLUMES** which supports to inspect and manage these volumes.
The commands **Remote-Containers: Clone Repository in Container Volume** and **Remote-Containers: Clone GitHub Pull Request in Container Volume** create a Docker volume for the cloned repository. The Remote Explorer now shows a new **DEVVOLUMES** view, where you can inspect and manage these volumes.
![](images/1_56/devvolumes-view.png)
![Devvolumes view in Remote Explorer](images/1_56/devvolumes-view.png)
From the context menu shown for volumes you can:
- Explore the contents of a volume in a new development container
- Inspect the Docker meta data for a volume
- Remove the volume.
From the context menu shown for volumes, you can:
The **DEVVOLUMES** toolbar provides commands to clone a repository in a container volume and to remove unused volumes. Finally, the hover provides additional information about the volume:
- The cloned repository
- The branch name or pull request Id
- The time when the volume was last used
- The containers that are using the volume.
* Explore the contents of a volume in a new development container.
* Inspect the Docker meta data for a volume,
* Remove the volume.
The advanced scenario where multiple repositories are cloned in a single volume is still supported. The command **Remote-Containers: Clone Repository in Named Container Volume** allows you to pick an existing or create a new volume for a cloned repository.
The **DEVVOLUMES** toolbar provides commands to clone a repository in a container volume and to remove unused volumes. In addition, the hover provides additional information about the volume:
* The cloned repository.
* The branch name or pull request ID.
* The time when the volume was last used.
* The containers that are using the volume.
The advanced scenario where multiple repositories are cloned in a single volume is still supported. The command **Remote-Containers: Clone Repository in Named Container Volume** allows you to pick an existing or create a new volume for a cloned repository.