1
1
1
77)
Welcome to the March 2023 release of Visual Studio Code. There are many updates in
this version that we hope you'll like, some of the key highlights include:
Insiders: Want to try new features as soon as possible? You can download the
nightly Insiders build and try the latest updates as soon as they are available.
Accessibility
Terminal accessible buffer improvements
The terminal accessible buffer, which provides screen reader users access to the
terminal contents via Terminal: Focus Accessible Buffer (Shift+Tab), now
dynamically updates and remains active until Escape or Tab are used to end the
session.
Workbench
Copy GitHub deep links from editor gutter
You can now copy deep links for an editor line or range from the editor gutter when
working in a GitHub repository.
In VS Code Desktop, to be able to create GitHub permalinks and HEAD links from the
editor gutter, you need to install the GitHub Pull Requests and Issues extension.
In vscode.dev, deep links for GitHub repositories are available out of the box.
These actions have also been added to the Share submenu in the editor tab context
menu and Explorer context menu.
Terminal
Improved tab hover
The terminal tab hover now shows the shell's process ID, the full command line, and
an improved view of extension environment variable contributions.
Hovering the terminal tab will reveal details about the terminal, this can be
triggered with the keyboard via Ctrl/Cmd+K, Ctrl/Cmd+I
Source Control
Git LFS commit support in Remote Repositories
You can now commit LFS-tracked files without installing Git LFS when editing GitHub
and Azure Repos repositories. To get started, install the GitHub Repositories or
Azure Repos extensions on VS Code Desktop, run the Open Remote Repository command
to open your repository, and commit your changes using the source control view. The
extensions parse your .gitattributes configuration to determine whether your
changed files should be committed to the repository provider's Git LFS storage.
Note: Support for VS Code for the Web (vscode.dev) is not yet available.
And don't miss The EXTREMELY Helpful Guide to Merge Conflicts YouTube video, which
stars the 3-way merge editor.
Notebooks
Format on Save
You can now enable format on save for notebooks. This formats the entire notebook
when you save it. You can enable this by setting notebook.formatOnSave.enabled to
true.
Languages
TypeScript 5.0
VS Code now ships with TypeScript 5.0.2. This major update brings new TypeScript
language features, improved performance, and many important improvements and bug
fixes. You can read about TypeScript 5.0 on the TypeScript blog.
Type case inside of the switch statement and accept the suggestion for case ....
This will automatically insert cases for all values of this type. Note that this
only works when the value being switched over is a union or literal type.
The short video below adds the .pxt folder to .gitignore to hide the contained
files from the Source Control view.
Remote Development
The Remote Development extensions, allow you to use a Dev Container, remote machine
via SSH or Remote Tunnels, or the Windows Subsystem for Linux (WSL) as a full-
featured development environment.
Extensions
Extension installation not blocked by signature verification failures
Extension signature verification is incorrectly reporting errors for a small number
of valid extensions and preventing them from being installed. These failures are
caused by bugs in the VS Marketplace and VS Code and we are actively working on
fixes. In order to unblock extension use, VS Code will install extensions even if
signing verification fails. We will reenable signature verification checking once
VS Marketplace issue #619 is fixed, most likely in our next Stable release.
Contributions to extensions
Python
Move symbol refactoring
You can now more conveniently refactor your Python code with Pylance thanks to the
new Move symbol to Code Actions!
To try it out, select a symbol on a Python file and click on the light bulb that is
presented (Ctrl+.). You can either move the symbol to an existing file or to a new
file. If the location is a new file, a Python file is created with the same name as
your symbol. All the applicable import references are automatically updated with
the symbol move.
Examples of API usage are in the Python Environment APIs wiki page. We are also
planning to release an npm types package in the future so it's easier to keep track
of any changes in the Python extension API.
Jupyter
Kernel picker improvements for Python environments
The kernel picker now lists conda environments even if the Python runtime is not
installed in them.
For example, if a new conda environment is created using a CLI such as conda create
-n envML, this new environment is displayed in the list of Python Environments
under a section Conda Env Without Python.
When you select such an environment, the Python runtime and necessary dependencies
are automatically installed into the environment.
Pull requests can be opened on vscode.dev from the Pull Requests view.
There's a new setting to check the Auto-merge option in the Create Pull Request
view: githubPullRequests.setAutoMerge.
Review the changelog for the 0.62.0 release of the extension to see the other
highlights.
GitHub Copilot
GitHub Copilot is an AI pair programmer tool that helps you write code faster and
smarter. You can use the Copilot extension in VS Code to generate code, learn from
the code it generates, and even configure your editor.
We are excited to announce the preview of deeper Copilot integration into VS Code.
By using the GitHub Copilot Nightly extension and VS Code Insiders build, you'll be
able to try out new features such as:
Inline suggestions: Copilot suggestions appear inline as you work in your code.
Chat view: Ask Copilot for help with any task or question in the GitHub Copilot
Chat view.
Inline chat: Talk with Copilot while writing code, inline in your files.
Note: To get access to the chat view and inline chat, you'll need to sign up for
the GitHub Copilot chat waitlist.
You can ask Copilot to look for bugs, explain tricky code, create tests, and even
ask questions about VS Code.
You can learn more about the VS Code team's experience and future with Copilot in
the VS Code and GitHub Copilot blog post. You can also read the AI Tools in VS Code
article for more details about using Copilot in VS Code.
Preview features
Notebook search support for outputs
Last iteration, we introduced global search for formatted notebook content in open
notebooks, but only for cell and Markdown inputs. This iteration, we have added
support for searching notebook outputs. When you have a notebook open, there is a
toggle that allows you to customize where you would like to search in a notebook.
Enable search.experimental.notebookSearch to try this out!
Extension authoring
Upcoming Electron 22 update may require changes to native modules
We plan to update to Electron 22 in our next Stable release. This comes with
implications for extensions that use native modules due to enabling the V8 memory
cage: ArrayBuffers that point to external ("off-heap") memory are no longer
allowed.
We plan to provide a custom memory allocator so that native modules that are not
updated will still continue to work, but nevertheless, it is recommended to review
your usages of allocated external memory. Please follow the advice in the Electron
blog post for how to adopt this change.
// ...
}
The inline suggestions extension sample running in the Source Control input
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:
Find a proposal that you want to try and add its name to
package.json#enabledApiProposals.
Use the latest vscode-dts and run vscode-dts dev. The command downloads the
corresponding d.ts files into your workspace.
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.
vscode.workspace.onWillSaveNotebookDocument(e => {
if (event.reason == vscode.NotebookDocumentSaveReason.Manual) {
event.waitUntil(new Promise((resolve) => {
const notebookEdit = new vscode.NotebookEdit(...);
const edit = new vscode.WorkspaceEdit();
edit.set(event.document.uri, [notebookEdit]);
resolve([edit]);
}));
}
});
Engineering
EOL warning for windows 8 and 8.1
VS Code Desktop will be updating to Electron >=23 in the next couple of milestones.
With the Electron 23 update, VS Code desktop will no longer run on Windows 8 /
Windows Server 2012 and Windows 8.1 / Windows Server 2012 R2. In this milestone, we
have added deprecation notices for users on these affected platforms to prepare
them for migration. If you are running one of these Windows versions, take a look
at our FAQ for additional information.
Documentation
New programming language topics
Ruby in VS Code - Learn about Ruby language support (snippets, linting, debugging)
using the Ruby LSP extension.
Polyglot Notebooks - The Polyglot Notebooks extension enables polyglot programming
for C#, PowerShell, JavaScript, and more.
Notable fixes
174690 Comments API - How can author.iconPath reference a file bundled with the
extension?
175805 VS Code does not auto-detect IPv6 Processes for port forwarding
Thank you
Last but certainly not least, a big Thank You to the contributors of VS Code.
Issue tracking
Contributions to our issue tracking: