Visual studio code 2022
Visual studio code 2022
What’s new in Visual Studio 2022
Updated for the 17.3 release. See full release notes | View product roadmap
With Visual Studio 2022, you’ll always get the best-in-class tools and services available for any developer, any app, and any platform. Whether you’re using Visual Studio for the first time or you’ve been using it for years, there’s a lot to like in our newest version!
For more news + how-to’s, check out our Visual Studio 2022 channels on YouTube, Twitch, Twitter, and TikTok.
Performance improvements
Visual Studio 2022 is faster, more approachable, more lightweight, and is designed for both learners and those building industrial scale solutions.
Visual Studio 2022 is 64-bit
Visual Studio 2022 on Windows is now a 64-bit application. This means you can open, edit, run, and debug even the biggest and most complex solutions without running out of memory. To learn more, see both the Visual Studio 2022 vision and Visual Studio 2022 17.0 Preview blog posts.
Find in Files is faster
In Visual Studio 2022, we focused on improving the performance of several key features. For example, Find in Files is now as much as 3x faster when searching large solutions such as Orchard Core.
New in 17.1: With new indexed searching, Find in Files is even faster! For more information, see the Code search in Visual Studio 2022 is about to get much faster blog post.
To learn more about current and upcoming changes to the search experience in Visual Studio 2022, see the Sneak Peek and Edit Your Code While You Search blog post.
Git tooling is faster
New in 17.2: We’ve integrated a relatively new Git feature called the commit graph, which helps to improve both the performance of your Git operations and the performance of Visual Studio itself. For the latest info, see the Supercharge your Git experience in Visual Studio 2022 blog post.
Build modern apps
Visual Studio 2022 includes better cross-platform app development tools and the latest version of C++ build tools, to include C++20 support.
Updates for Blazor & Razor editors + Hot Reload for ASP.NET
Visual Studio 2022 includes a big update for the Blazor and Razor editors, and new capabilities for Hot Reload in ASP.NET Core—including Hot Reload when you save a file or when you apply changes to CSS files live!
Innovation at your fingertips
From real-time & asynchronous collaboration tools to improved insights and productivity tools that seamlessly integrate with your daily workflow, Visual Studio 2022 has this and more.
Git multi-repo support and line-staging support
If you’ve worked with projects hosted on different Git repositories, you might have used external tools or multiple instances of Visual Studio to connect to them. In Visual Studio 2022, you can work with a single solution that has projects in multiple repositories and contribute to them all from a single instance of Visual Studio. To learn more, see the Multi-repo support in Visual Studio blog post.
New in 17.3: We recently added line-staging support, also known as interactive staging. Now, you can stage chunks of changes in your files right from the code editor, or split changes across different commits. For more information, see the Stage lines of code in Visual Studio page.
IntelliCode improvements
Whole line completion: In Visual Studio 2022, the IntelliCode feature can now automatically complete code up to a whole line at a time. For details, see the Type less, code more with IntelliCode completions blog post.
Quick Actions recommendations: IntelliCode can now spot when you’re performing a common task and recommend the right Quick Action, completing it right as you’re typing. To learn more, see the Discover quick actions for common tasks as you type, with IntelliCode blog post.
Designing for everyone
We’re refreshing the user interface to better keep you in your flow. Some of the changes include cosmetic touches that modernize the UI or reduce crowding.
Look & feel
From new iconography to subtle color contrast ratio adjustments and a new Cascadia Code font, we’re working to make Visual Studio 2022 more accessible for everyone. For all the details, see the We’ve upgraded the UI in Visual Studio 2022 blog post.
Personalization
One of our key focus areas is to make Visual Studio more personalized and flexible so that you can make the IDE your own. For example, Visual Studio 2022 offers you the ability to sync with your Windows theme. So, if you’ve enabled the «night light» feature there, Visual Studio uses it, too. For more info, see the Personalize your Visual Studio 2022 blog post.
To learn more about the latest tabs and docs updates in Visual Studio 2022, see the Improved doc management personalization blog post.
What’s next
Want to know more about what we’re planning for Visual Studio 2022? See the Roadmap page, the Preview release notes, and the Visual Studio Blog for details.
Give us feedback
Why send feedback to the Visual Studio team? Because we take customer feedback seriously. It drives much of what we do.
If you want to make a suggestion about how we can improve Visual Studio, you can do so by using the Suggest a Feature tool.
If you experience an issue where Visual Studio stops responding, crashes, or other performance issues, you can easily share repro steps and supporting files with us by using the Report a Problem tool.
Новые возможности Visual Studio 2022
Обновлено для выпуска 17.3. См. полные заметки о выпуске | Просмотр стратегии развития продукта
В Visual Studio 2022 всегда предоставляются лучшие в своем классе средства и службы для любого разработчика, любого приложения и любой платформы. Независимо от того, сколько времени вы уже используете Visual Studio, в последней версии вы найдете много интересного.
Другие новости и практические руководства см. на наших каналах по Visual Studio 2022 на YouTube, в Twitch, Twitter и TikTok.
Повышение производительности
Visual Studio 2022 —более быстрая, более производительная и упрощенная версия, предназначенная для учащихся, а также пользователей, которые создают решения промышленного масштаба.
Visual Studio 2022 предоставляется в 64-разрядной версии
Visual Studio 2022 для Windows теперь является 64-разрядным приложением. Это означает, что вы можете открывать, изменять, запускать и отлаживать даже самые большие и сложные решения, не беспокоясь о нехватке памяти. Дополнительные сведения см. в записях блога, посвященных концепции Visual Studio 2022 и Visual Studio 2022 17.0 (предварительная версия).
Более быстрый поиск при использовании возможности «Найти в файлах»
В Visual Studio 2022 мы сфокусировались на улучшении производительности нескольких основных возможностей. Например, возможность Найти в файлах теперь более чем в 3 раза быстрее выполняет поиск больших решений, таких как Orchard Core.
Новые возможности в версии 17.1: с новым индексным поиском поиск в файлах еще быстрее! Дополнительные сведения см. в статье «Поиск кода» в Visual Studio 2022, чтобы получить гораздо более быструю запись блога.
Дополнительные сведения о текущих и предстоящих изменениях в интерфейсе поиска в Visual Studio 2022 см. в записи блога «Поиск и изменение кода».
Средства Git быстрее
Новые возможности в версии 17.2. Мы интегрировали относительно новую функцию Git, называемую графом фиксации, что помогает повысить производительность операций Git и производительность самой Visual Studio. Актуальные сведения см. в этой записи блога.
Создание современных приложений
Visual Studio 2022 включает улучшенные средства разработки для кроссплатформенных приложений и последнюю версию средств сборки C++, в которую добавлена поддержка C++20.
Обновления для Blazor & Редакторы Razor + Горячая перезагрузка для ASP.NET
Visual Studio 2022 включает большое обновление для редакторов Blazor и Razor, а также новые возможности для Горячая перезагрузка в ASP.NET Core, включая Горячая перезагрузка при сохранении файла или при применении изменений к CSS-файлам в реальном времени!
Инновации у вас под рукой
С помощью асинхронных средств совместной работы в режиме реального времени & для улучшения аналитических сведений и средств повышения производительности, которые легко интегрируются с вашим ежедневным рабочим процессом, Visual Studio 2022 имеет это и многое другое.
Поддержка нескольких репозиторий Git и поддержка промежуточного хранения строк
Если вы работали с проектами, размещенными в разных репозиториях Git, возможно, вы использовали внешние инструменты или несколько экземпляров Visual Studio для подключения к ним. В Visual Studio 2022 вы можете работать с одним решением, которое включает проекты в нескольких репозиториях, и изменять их все из одного экземпляра Visual Studio. Дополнительные сведения см. в записи блога Поддержка нескольких репозиториев в Visual Studio.
Усовершенствования IntelliCode
Завершение целой строки. В Visual Studio 2022 возможность IntelliCode теперь может автоматически завершать целую строку кода за раз. Дополнительные сведения см. в записи блога Пишите код быстрее, вводя меньше текста, с помощью функции завершения строк IntelliCode.
Рекомендации по быстрым действиям. IntelliCode теперь может обнаружить, когда вы выполняете общую задачу и рекомендуете правильное быстрое действие, завершив его правильно по мере ввода. Дополнительные сведения см. в записи блога Обнаружение быстрых действий для распространенных задач при вводе с помощью IntelliCode.
Разработка для всех и каждого
Мы обновляем пользовательский интерфейс, чтобы упростить для вас поток операций. Некоторые из изменений включают косметические штрихи, которые модернизируют пользовательский интерфейс или уменьшают переполненность.
Внешний вид &
От новых значков до незначительных корректировок коэффициента контрастности цвета и нового шрифта Cascadia Code — мы постоянно улучшаем Visual Studio 2022, чтобы сделать среду доступной для всех. Дополнительные сведения см. в записи блога Обновленный пользовательский интерфейс Visual Studio 2022.
Personalization
Одно из наших ключевых направлений заключается в том, чтобы сделать Visual Studio более индивидуализированной и гибкой, чтобы вы могли настроить среду IDE так, как нужно вам. Например, Visual Studio 2022 предлагает возможность синхронизации с темой Windows. Например, если вы включили «ночную тему», Visual Studio тоже будет ее использовать. Для получения дополнительной информации см. в записи блога Персонализация своего Visual Studio 2022.
Дополнительные сведения о последних вкладках и обновлениях документации в Visual Studio 2022 см. в записи блога » Улучшенная персонализация управления документами «.
Что дальше?
Обратная связь
Зачем отправлять отзыв группе Visual Studio? Потому что мы серьезно относимся к отзывам клиентов. Они влияют на многие наши действия.
Если вы хотите внести предложение по улучшению Visual Studio, это можно сделать с помощью средства Предложить функцию.
Если возникает проблема с «зависанием» или аварийным завершением работы Visual Studio либо иные проблемы с производительностью, вы легко можете сообщить нам шаги для воспроизведения проблемы и отправить сопроводительные файлы с помощью средства Сообщить о проблеме.
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.
Visit the Visual Studio site to download other Visual Studio 2022 products.
Preview Channel is not «go-live» and not intended for use on production computers or for creating production code. For more information, see Visual Studio Product Lifecycle and Servicing.
Visual Studio 2022 version 17.4 Preview Releases
Support Timeframe
Visual Studio 2022 version 17.4 will be the next long term servicing channel once it’s released. Enterprise and Professional users who are configured to receive updates on the 17.4 LTSC channel are supported and will receive fixes to security vulnerabilities through July 2024. For more information about Visual Studio supported baselines, please review the Support Policy for Visual Studio 2022.
Visual Studio 2022 Blog
The Visual Studio 2022 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 releases in the following posts:
released August 9th, 2022
Summary of What’s New in this Release of Visual Studio 2022 version 17.4 Preview 1
Installation and Updates
The Visual Studio installer that’s debuting in this Visual Studio 2022 version 17.4 Preview 1 includes two new features: Rollback and Remove out-of-support components
The first feature included with the Visual Studio installer is Rollback – the ability to return to your previously installed version of Visual Studio.  
What will happen?
Rolling back will return Visual Studio to the version installed prior to the last applied update. It will keep any modifications to selected components chosen since that last update. Local customizations such as your user settings and profiles will be removed. However, your common synchronized settings such as themes, fonts, key bindings, and windows layout will be restored.
As of now, you will be able to rollback to components that come with the VS instance and shared components such as SDKs and tools that are owned and managed only by VS. Per-machine extensions, system-wide components, and tools that are not managed by Visual Studio will remain in their current versions. However, per-user extensions will be uninstalled. Please refer to section “Components that are compatible” below for more information. 
What will happen to my security updates?
Security updates that are included in a release greater than the version you rolled back to will be removed which could make your device vulnerable. We recommend always updating back soon to the latest version to stay secure.  
Which versions support rollback?
You will be able to test the Rollback feature using the latest Visual Studio 2022 Preview version (17.4 P1).  
Components that are compatible  
The following table outlines the type of components that are supported with the rollback feature. As a general rule of thumb, components that VS installs, and uses are included in the rollback attempt.  
Can I rollback if I am in a managed environment?
Due to your organizational policies and the requirement to be on the most secure version, your rollback attempt might be undone. We recommend that you be on the preview channel to test this feature out.  
How can I Rollback?
You should be seeing “Rollback to previous version” from the More dropdown button on a product card after an update. 
From there, a warning pop up will appear and you will have the option to either cancel or proceed.
Let us know your thoughts!
We would love to get your feedback on the rollback feature, so please give it a try and let us know what you think. You can share any feedback by visiting https://aka.ms/DeveloperCommunity-RollbackFeedback.
The second new feature included with the Visual Studio installer is the ability to easily remove all of the components that have transitioned to an out-of-support state. Both Developers and IT administrators can invoke this action to bulk uninstall these unsupported components, which will facilitate maintaining a secure and compliant environment. Part of this feature is being delivered in Preview 1, and the rest will come online with Preview 2. For additional details on the Preview, please visit the RemoveOos preview details and feedback page.
Git Tooling
.NET Productivity
Read our blog post to learn more.
F#
C++
Code Search and Navigation
Introducing performance, reliability and UI enhancements to the All-In-One Search experience (Ctrl + Q). Now you can preview code and static images. As we continue to work on performance and reliability, there will temporarily be limitations in what results can be previewed.
You can enable All-In-One Search: Tools > Manage Preview Features > «New Visual Studio Search experience (restart required)».
Test tools
Configuration
Today we released the preview of the Visual Studio Administrative Template files (ADMX/ADML). Right now, it’s hard for IT admins to discover what all global policies exist for Visual Studio, and it’s equally hard for admins to integrate and manage these policies within commonly used IT Administration infrastructure and tools. The Visual Studio Administrative Template files (ADMX/ADML) enable admins to easily discover, manage and control Visual Studio behaviors that are available to be governed by policy. Please find additional information and provide feedback on this Preview here.
From Developer Community
Known Issues
See all open issues and available workarounds in Visual Studio 2022 by following the below links.
Feedback and suggestions
Blogs
Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.
March 2022 (version 1.66)
Update 1.66.1: The update addresses these issues.
Update 1.66.2: The update addresses these security issues.
Welcome to the March 2022 release of Visual Studio Code. There are many updates in this version that we hope you’ll like, some of the key highlights include:
If you’d like to read these release notes online, go to Updates on code.visualstudio.com.
Watch the release party: Listen in as the VS Code team discusses some of the new features. You can find the recording of the event on our YouTube channel.
Highlights short: If you just have 60 seconds, check out the March VS Code release highlights video to quickly see what’s new.
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
The team works hard to make VS Code one of the most accessible editors available. This release contains several improvements to help usability and accessibility:
Workbench
Local history
Local history of files is now available in the Timeline view. Depending on the configured settings, every time you save an editor, a new entry is added to the list:
Each local history entry contains the full contents of the file at the time the entry was created and in certain cases, can provide more semantic information (for example, indicate a refactoring).
From an entry you can:
There are new global commands to work with local history:
These commands don’t have default keybindings but you can add your own keyboard shortcuts.
There are also new settings to work with local history:
A new filter action in the Timeline view toolbar allows you to enable or disable individual providers:
Note: Local history entries are stored in different locations depending on your use of VS Code. When opening local files, the entries are persisted in the local user data folder and when opening remote files, they will be stored on the remote user data folder. When no file system is available (for example, in certain cases when using VS Code for Web), entries are stored into IndexedDB.
Settings editor
Language filter
Note that these overrides remain configured until explicitly reset by clicking in the gear icon and resetting the setting.
The short video below has the language filter set to @lang:css to display all possible CSS language override settings.
Workspace and Folder settings preservation
Workspace and folder settings in the Settings editor are now preserved until manually reset by the user. This change helps the case where the user wants to explicitly specify a workspace setting value that is equal to the default value of a setting, but is different from the user setting value. Previously, users had to open the workspace settings JSON file to set this value.
Below the editor tab size is set in Settings editor Workspace tab and it is automatically added to the workspace’s settings.json file.
Primary notification buttons
The first button of a notification now appears with a primary color to distinguish from other buttons. This follows the same patterns as dialogs.
New context keys for editors
There are new context keys indicating whether an editor is the first or last in an editor group:
These context keys can be used to conditionally enable keyboard shortcuts using when clauses.
Default binary editor
Smoother authentication experiences
You may notice smoother authentication flows of both GitHub and Microsoft.
Install pre-release and normal extensions together from CLI
VS Code now supports installing pre-release and normal extensions together from the command line. For example, the following command line instruction will install the pre-release version of GitHub.vscode-pull-request-github extension and release version of GitHub.remotehub extension:
Improved platform specific extension updates
VS Code now supports updating a platform specific extension to a more specific target platform version. For example, if you are on Windows 64-bit and have installed the C/C++ extension for Windows 32-bit and the Marketplace has the extension with same version for Windows 64-bit, VS Code will automatically update the extension to the 64-bit version.
Audio cue improvements
The new setting audioCues.volume (0-100, default is 50) can be used to control the volume of audio cues. There is also an updated audio cue for folded regions.
New names for Side Panel and Side Bar
Two releases ago, we introduced the Side Panel. At that time, we removed the capability to move the bottom panel that contains the terminal to the side in favor of new coherent commands. After listening to user feedback, we determined that there were important workflows that this decision broke and we decided to revert that change.
This left us with two panels, the panel and side panel, both of which could live on the side of the workbench. To account for this and better reflect the direction of the new side panel, we have decided to update the naming of both the Side Bar and Side Panel. The Side Bar will now be referred to as the Primary Side Bar in the UI, while the Side Panel will now be referred to as the Secondary Side Bar.
These names will be reflected in menus and commands throughout the editor; however, no command IDs have been changed to prevent breaking existing keybindings.
Reduce motion mode
Comments
The Comments UI is used extensively by the GitHub Pull Requests and Issues extension to add comments to issues and pull requests but can be adopted by any extension.
Comments view discoverability
Add a comment discoverability
Now, when you hover over any part of a line where a comment can be added on, the «+» symbol is shown in the left gutter.
Comment accessibility improvements
There are several comments accessibility improvements:
Terminal
Display all find matches
When searching in the terminal, all instances of the search term will now be highlighted. The currently selected match also has a specific highlight, which can be customized separately.
Scroll bar annotations
Annotations now appear in the scroll bar of the terminal to indicate points of interest in the buffer.
For example, find results have corresponding annotations in the scroll bar.
When the preview feature of shell integration is enabled, an annotation is displayed in the scroll bar for each command that gets run.
Command navigation improvements
A little known feature that’s been around for a while is the ability to quickly navigate between commands in the terminal. Originally this was based on when Enter was pressed but now when shell integration is enabled, it will be upgraded to use the shell integration knowledge to more reliably identify the correct lines. Additionally, UI feedback is now shown when jumping between commands.
This feature can be accessed via the following keybindings:
The Shift key can be held down to make selections between commands in the terminal.
Copied text retains HTML styling
To copy rich text from the terminal, run the Terminal: Copy Selection as HTML command or use the terminal context menu entry Copy as HTML.
Minimum contrast ratio default changed
Source Control
Source Control Repositories view
Previously, the repositories in the Source Control Repositories view have been sorted as they were being discovered when opening a folder/workspace with multiple repositories. This was problematic as the discovery order can vary and repositories appeared to be in random order. This milestone, repositories are always sorted by name in the Source Control Repositories view.
Editor
Quick suggestions as inline completions
Snippet variables for cursor index
For example, the snippet below will add an ordered list item for each cursor:
Updated source control decorators
In order to make the source control decorators more visible for accessibility, we’ve added a new pattern for modified lines and increased the contrast for all decorators.
Bracket pair colorization
Improved language detection
Last iteration we added the setting workbench.editor.historyBasedLanguageDetection to configure whether to make use of a new language detection strategy that takes into consideration the file types you have opened. This setting is now enabled by default, and a new setting workbench.editor.preferHistoryBasedLanguageDetection was added to give more priority to the results from this strategy.
VS Code for the Web
Drag and drop folders
You can now drag and drop local files and folders into a browser window opened on vscode.dev or insiders.vscode.dev with a browser that supports the web file system access API to access the contents. This works both when dropping over the editor area as well as the File Explorer.
Remote Repositories
Extension refactoring
Previously, the Azure Repos extension depended directly on the GitHub Repositories extension. Azure Repos and GitHub Repositories now depend on a common extension, Remote Repositories, which supports common workflows across GitHub and Azure Repos. All APIs previously exposed by the GitHub Repositories extension are now exposed by Remote Repositories.
Reminder to sync repository
When you reopen a repository with uncommitted changes, by default Remote Repositories does not display the latest version of your repository. We now display a dialog to manually sync your repository so that your repository stays up to date with what’s on GitHub or Azure Repos. You can control this dialog using the remoteHub.uncommittedChangesOnEntry setting.
Azure Repos
This milestone we are enabling the capability to edit and commit changes to repositories that are hosted in Azure Repos. We have also added basic functionality to create, update, and open pull requests for Azure Repos.
Notebooks
Find decorations on scroll bar
The Find results in notebooks will now be rendered in the scroll bar:
Move focus to the interactive window
There are two new commands for placing focus in the interactive window.
These commands don’t have default keybindings but you can add your own keyboard shortcuts.
Debugging
JavaScript debugging
The JavaScript debugger now supports collecting and visualizing heap profiles. Heap profiles allow you to see where and how much memory is allocated over time. These have been added as an option in the Debug: Take Performance Profile command, which is also accessible via a record ⏺ button in the CALL STACK view.
Languages
CSS formatter
The built-in CSS extension now ships with a formatter. The formatter works with CSS, LESS and SCSS. It is implemented by the JS Beautify library and comes with the following settings:
‘ (for example, a > b ).
JavaScript semantic highlighting in HTML
Not only does this make code colors more consistent, it also adds some important semantic information that was missing before, such as highlighting readonly types.
TypeScript 4.6.3
VS Code now bundles TypeScript 4.6.3. This minor update fixes a few important bugs.
Markdown shorthand reference links are now clickable
In the editor, clicking these links navigates to the link definition. In the Markdown preview, the links instead navigate to the link destination.
reStructuredText grammar
There is now a built-in extension for reStructuredText (rst) file syntax highlighting.
Contributions to extensions
Python
Changes to the interpreter display in the Status bar
The Python extension, in order to be consistent with other languages, moved the selected Python interpreter information towards the right side in the Status bar beside the Python language status item. With the intention of cleaning up the Status bar, it’s now only displayed when a Python or a settings.json file is currently open.
New Python File command
There’s now two faster ways to create empty Python files: through a new command called Python: New Python File, or through the New File. item on the Get Started page.
Pylint extension
There is now a new Microsoft Pylint extension for linting using pylint. This extension utilizes the Language Server Protocol to provide linting support.
Jupyter
There were several improvements to the Jupyter extension this milestone.
Kernel Support
Kernel startup was improved with:
Data Viewer
Named indexes for DataFrames and Series are now supported in the Data Viewer.
New Jupyter notebook
Creation of new Jupyter notebooks is now consolidated in the New File. menu.
Remote Development
Work continues on the Remote Development extensions, which allow you to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.
Feature highlights in 1.66 include:
You can learn about new extension features and bug fixes in the Remote Development release notes.
GitHub Pull Requests and Issues
Work continues on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues. Check out the changelog for the 0.40.0 release of the extension to see the highlights.
Preview features
Terminal shell integration
Shell integration continued to see more improvements this release mainly in the form of reliability and improvements to the decorations described in the Terminal section above.
Here are the highlights:
TypeScript 4.7 support
This update includes initial support for the upcoming TypeScript 4.7 release. See the TypeScript 4.7 iteration plan for more details on what the TypeScript team is currently working on.
To start using the TypeScript 4.7 nightly builds, install the TypeScript Nightly extension.
Explorer file nesting
This iteration we continued to work on support for file nesting in the Explorer. As part of this work, we polished support for moving, renaming, and deleting nested files, and added the setting explorer.experimental.fileNesting.operateAsGroup to configure whether edits to a nesting parent should be applied to its children as well.
Extension authoring
Notebook-aware document selectors
We have finalized an addition to the vscode.DocumentSelector type. This type allows you to associate language features like Go to Definition to specific documents, it drives the UI, and also decides if the corresponding provider is asked for results. We have added a new property that allows extensions to narrow down on notebook types. For example, < language: 'python', notebookType: 'jupyter-notebook'>targets all python documents that are embedded in Jupyter notebooks.
Inlay hints can have edits
The InlayHint type can now have an optional, lazy textEdits property. Inlay hints that have edits set to them will apply them on double-click. The textEdits should be used to make the edits that are needed to make the inlay hint obsolete. For example, double clicking a hint representing an inferred type should insert that type annotation.
Output channel with custom language ID
In this milestone, we have finalized the createOutputChannel API to create an output channel with custom language ID. This will allow you to contribute token or syntax coloring and CodeLens features to your Output channel by passing a language ID.
Color theme kind: High Contrast Light
Color themes can now specify hc-light as base theme ( uiTheme ). The base theme is used for all colors not defined by the color theme.
High Contrast Light theme for color contributions
Color contributions can now also define a High Contrast Light theme ( highContrastLight ). If not specified, the light color will be used as default.
NODE_MODULE_VERSION and Node.js API update
Desktop | Remote | |
---|---|---|
NODE_MODULE_VERSION / process.versions.modules | 101 | 93 |
Node-API / process.versions.napi | 8 | 8 |
Tree drag and drop API
With the newly finalized TreeDragAndDropController API, extension-contributed tree views can support drag and drop. The tree view sample has an example of how to use this API.
Debugger extension authoring
Support for CompletionItem.detail
Last month, the Debug Adapter Protocol added a detail property to the CompletionItem object. This property is now supported in VS Code. You will see the detail in the suggest widget in the Debug Console.
Language Server Protocol
Type Hierarchy, inline values, and inlay hints support has been moved out of the proposed state to prepare for the 3.17 release. A new next version of the libraries has been published.
There is also a first version of a meta model for LSP together with the corresponding schema as a JSON schema or as TypeScript type definitions. The meta model contains the following information: specified requests and notifications together with their parameter types, return types, partial return types, and registration options. It also contains all defined structures and enums.
Debug Adapter Protocol
We have addressed several documentation issues of the Debug Adapter Protocol:
Proposed extension 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:
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.
InputBox validation message severity
Our InputBox APIs (via window.showInputBox and window.createInputBox ) provide mechanisms for validating the user’s input. This iteration we are extending it with a proposed API to show severity.
For example, if you wanted to show the user an information message based on their input, your validation message can return:
which would look like this:
Details of this proposal can be found in inputBoxSeverity.
Notebook document change events
There is a new proposal for notebook document change events: it is available as notebookDocumentEvents and contains two events:
Tabs API shape finalization
The tabs API is approaching finalization next milestone and is currently in a state where the shape will remain stable with little to no changes. The April 2022 iteration will be the last chance to provide feedback regarding the shape and features of this API. Feedback can be provided via GitHub issues. The tabs API allows for the reading of open tabs, their locations, and closing them.
Inline Completions
We continued working on inline completions to prepare for finalization in the next couple of releases. Inline completions can now be used to suggest snippets or text-replacements (previously, only text-insertions were supported).
Drop into editor
The proposed text editor drop API lets extensions handle drops into text editors. These drop events can come from within VS Code—such as dragging a file from VS Code’s Explorer into a text editor—or can be generated by dropping a file from your operating system into VS Code.
We’ve included experimental support for generating links when you drop into a Markdown file. You can also see the Markdown extension’s source for an example of the API in use.
Resolved/unresolved comments
There is a new proposal for setting a resolved or unresolved state on comment threads. Comment threads that specify a state will be given additional UX treatment.
Engineering
Electron 17 update
In this milestone, we are excited to ship with Electron v17 in VS Code. This is a major update from our previous adoption of Electron v13 and takes advantage of the process reuse architecture from Electron. Over the past year, we have been reimplementing and gradually rolling out changes to some of our core services with respect to their interaction and lifetime associated with the workbench in preparation for this new architecture:
Special thanks to everyone involved with this effort, also thanks to the community for self-hosting on Insiders and providing feedback so we can confidently ship this update.
What does this change mean for VS Code users?
Operations like switching workspaces and reloading workspaces should now be faster. With this update, we also bump our Chromium version to 98.0.4758.109 and Nodejs version to 16.13.0.
What’s next?
We will continue Electron version adoption under their new release cadence. We are also actively working towards sandboxing the workbench and the next step is to improve the communication channel between the Node.js hosted service and a sandboxed workbench, which will allow us to further simplify the new architecture.
RPM package requirements list improvement
We now calculate the dependencies needed for the rpm packages as part of our build process inspired by the work done in Chromium. This allows us to provide an up-to-date dependency list when adopting newer runtimes or native modules. We will also introduce a similar change to our debian packages in the upcoming milestone.
Support out-of-band releases for built-in extensions
Those built-in extensions that are available in the Marketplace can now be released out-of-band and VS Code will detect the new version and update the extension. This will enable these extensions to support pre-releases as well.
Documentation
R in VS Code
There is a new R in Visual Studio Code topic describing R programming language support in VS Code with the R extension. The R extension includes rich language features such as code completions and linting as well as integrated R terminals and dedicated workspace, data, and plot viewers.
Development containers blog post
In case you missed Burke Holland’s recent blog post on using dev containers to create easy to use programming environments, check out «The problem with tutorials». The blog post describes how Laravel uses pre-configured Docker containers to provide the runtime and dependencies for their PHP framework tutorials.
Notable fixes
Thank you
Last but certainly not least, a big Thank You to the contributors of VS Code.
Web extensions
Extension authors for enabling extensions that run code as web extensions (the list below is between March 1 2022 and March 27 2022):
Issue tracking
Contributions to our issue tracking:
Pull requests
Contributions to vscode :
Contributions to vscode-css-languageservice :
Contributions to vscode-js-debug :
Contributions to vscode-languageserver-node :
Contributions to vscode-vsce :
Contributions to debug-adapter-protocol :
Contributions to language-server-protocol :
July 2022 (version 1.70)
Update 1.70.1: The update addresses these issues.
Update 1.70.2: The update addresses these issues.
Welcome to the July 2022 release of Visual Studio Code. There are many updates in this version that we hope you’ll like, some of the key highlights include:
If you’d like to read these release notes online, go to Updates on code.visualstudio.com.
Watch the release party: Listen in as the VS Code team discusses some of the new features. You can find the recording of the event on our YouTube channel.
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.
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 that toggles the menu bar (not shown on macOS desktop), Command Center, and layout controls.
For Linux users, due to issue #156397, the empty space in the title bar will not open a context menu. You must right-click on 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 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.
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.
Fold selection
The command Create Manual Folding Ranges from Selection ( ⌘K ⌘, (Windows, Linux Ctrl+K Ctrl+, ) ) 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.
Manual folding ranges can be removed again with the command Remove Manual Folding Ranges ( ⌘K ⌘. (Windows, Linux Ctrl+K Ctrl+. ) ).
Manual folding ranges are especially useful for cases when there isn’t programming language support for folding.
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. 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.
Hide folding controls
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 Source Control view.
Highlights include new commands to accept all changes from one side, improved context menus, enhanced diff colors, and a greater emphasis on conflicting versus non-conflicting changes.
We also started exploring alternative diffing algorithms to improve precision of merge conflicts. If you encounter suboptimal change highlighting or alignment in either the diff or the merge editor, we would like to record these cases in our GitHub issue tracker!
Command line option merge
You can now use command line options to bring up the merge editor in VS Code:
Search file decorations
Search results in the Search view now feature file decorations and colors on the right to express the file’s problems and source control information. This is similar to the file decorations already shown in the File Explorer.
Search multiple selection
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.
Tree find control
Tree views, such as the File Explorer, now support the Find control. You can press ⌘F (Windows, Linux Ctrl+F ) 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.
Note: If you are used to opening the Find control in the editor when invoking ⌘F (Windows, Linux Ctrl+F ) while the File Explorer has focus, you can configure your keybindings accordingly:
Arbitrary file creations via New File
The File > New File. (or New File. link on the Get 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.
Terminal
Shell integration enabled by default
Shell integration’s automatic injection that was moved out of preview last release 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:
Note: On Windows, you’ll need PowerShell 7 (pwsh) for shell integration support. You can install via https://aka.ms/PSWindows.
If the shell integration features don’t light up automatically, you will need to set up manual installation, which has been simplified in this release.
This will disable only VS Code’s shell integration injection. Even when disabled, if your setup has shell integration enabled for some other terminal that VS Code understands, it will still pick those up. If you don’t like the command and/or scroll bar decorations, you can disable just their display, while still taking advantage of the extra functionality that shell integration brings.
Simplified shell integration manual install
Previously manual install took several steps and was platform and shell specific. The new manual install uses the code CLI to fetch the shell integration script and works cross-platform and when connected to a remote window, meaning you can sync it in your dotfiles and it should just work.
You can read more about how to install shell integration for other shells at Terminal shell integration.
More shell integration configuration options
You can also configure the default, success, or error icons from the dropdown.
Default color and icon tab settings
Extended PowerShell keybindings
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 ( Ctrl+R ). There is a new contiguous search mode that is the default when triggering the command. This behaves like Ctrl+R in most shells, with the option of switching back to fuzzy search:
The new inTerminalRunCommandPicker context key is available that allows setting up a keybinding like 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 Ctrl+Alt+R as a fallback to the old behavior:
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.
Other shell integration improvements
Here are the smaller improvements to shell integration:
Command navigation has improved visual feedback, showing the «focus border» briefly and then keeping a persistent rectangle in the gutter to help highlight the position in the buffer.
Bash shell integration:
Rendering improvements
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.
Improved clipping of glyphs when the background color changes, this was commonly seen when npm outputs a warning.
Similar to the clipping problem above, there was an issue where the anti-aliasing in some glyphs would overlap other characters and 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 nearly the same color as the background.
Source Control
Action button improvements
We continued to polish the Source Control action button based on user feedback:
Improved rebase conflict resolution
This milestone we addressed some smaller issues 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 confirmed that all the necessary extension APIs are available to support spell checking in 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 commit description text.
Debugging
JavaScript debugging
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.json configuration 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 (DAP) were required. We made this change to DAP, 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 configuration:
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 focus the debug session in the Call Stack view. Debug actions (for example, Pause, Step, Restart, Stop) will be performed on the focused debug session. Selecting a session also shows the session’s Debug Console.
Tasks
Filter support for Run Task command
The Tasks: Run Task ( workbench.action.tasks.runTask ) action supports filtering by task name and type for a more concise and configurable way to select and execute tasks.
Improved automatic tasks flow
The Trusted Workspace feature allows VS Code to simplify the flow for running automatic tasks. By default, automatic tasks will run if a folder is trusted and you’ll be prompt once per folder otherwise. This behavior can be configured with the task.allowAutomaticTasks setting (default auto ) to always ( on ) or never ( off ) prompt before running an automatic task.
Languages
Keep newlines when formatting JSON
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 keep these values on the same line after formatting. Extra line breaks (newlines) in JSON files are also preserved. 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, 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 useful when you run a group of cells and want to know which cell failed and halted the group execution.
Notebook Markdown Preview attachment rendering
It is now possible to render embedded base64 images within a Jupyter notebook.
The following Markdown source code:
Will be rendered as:
Share Notebook links
The Copy vscode.dev Link command in the Share submenu now supports notebook links.
VS Code for the Web
Set Display Language
You can now set the display language of the browser using the Set Display Language button available on the language pack extension in the Extensions view.
Once set, you can clear the display language by using the Clear Display Language button on the currently set language pack extension.
Contributions to extensions
Python
Get started experience
The Python extension walkthrough now smoothly transitions users to installing Python if they need to, and selecting it. Microsoft Store or an appropriate walkthrough tile is opened when Python is not installed and users can auto-run the displayed instructions. Any prompts related to interpreters are only shown when a user action requires an interpreter, 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
A new setting python.interpreter.infoVisibility was added, which controls when information about the selected interpreter is displayed in the Status bar. By default, interpreter information will only be shown when Python-related files are opened ( onPythonRelated ). It can be set to always to revert to the old behavior where the selected interpreter is displayed regardless of what file is opened. A warning status is added to indicate situations when the selected interpreter is invalid:
Automatic debug configurations
The Python extension now supports automatic debug configuration that analyzes the current project and provides you with a debug configuration that does not require additional modification.
The extension recognizes Django, Flask, and FastApi projects, as well as simple Python files.
Experimental extension: WWBD
There is a new experimental Python extension named WWBD that acts as a sandbox for Python 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 in the project repository for other ideas that are being considered, including conda support.
Jupyter
Copy plot images to clipboard
It is now possible in the Jupyter extension to copy plots in cell outputs to the clipboard. Make sure you have the correct presentation selected as only PNG output is currently supported:
Once you have set the correct presentation type, select the copy to clipboard button in the upper right:
Web extension
The following features were ported to the web version of the Jupyter extension:
If you’d like to experiment with the functionality, launch Jupyter from your local machine with:
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.
Interactive Window restore
Limitations: Raw kernel states are not persistent across window reloads (see more information in this discussion item). If you are using a remote Jupyter server, the Interactive Window will be connected to previous kernel sessions on reloads.
GitHub Pull Requests and Issues
There has been more progress on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues. Highlights of this release include:
Check out the changelog for the 0.48.0 release of the extension to see the other highlights.
Remote Development
Work continues on the Remote Development extensions, which allow you to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.
You can learn about new extension features and bug fixes in the Remote Development release notes.
Preview features
Editor sticky scroll
It is now possible to display UI showing which scope the user is in during scrolling. The «sticky scroll» UI will show which class/interface/namespace/function/method/constructor the top of the editor is in, helping you know the location within a document. Enable sticky scroll with the editor.experimental.stickyScroll.enabled setting.
TypeScript 4.8 support
This update includes support for the upcoming TypeScript 4.8 release. See the TypeScript 4.8 iteration plan 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 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 release via workbench.experimental.settingsProfiles.enabled setting. Try it out and let us know your feedback by creating issues in the VS Code repository or commenting in issue #116740.
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 and the same workbench.experimental.settingsProfiles.enabled setting.
Task reconnection
Code Actions
We have been working to provide a better experience with Code Actions in VS Code. Code Actions include Refactorings, Source Actions, and Quick Fixes.
The new experimental Code Actions control can be opened from the context menu by selecting Refactor or Source Action, from a lighbulb, or via a Quick Fix. Try it out via the editor.experimental.useCustomCodeActionMenu setting. Let us know about any feedback by creating issues in the VS Code repository or commenting in issue #152913.
Refactoring previews for Code Actions are also accessible from the new Code Action control. Hover over enabled items to view how to preview. Custom keybindings are supported for selection of Code Actions, as well as to preview the selection.
Edit Sessions across VS Code for the Web and desktop
Work continues on Edit Sessions, which let you bring your uncommitted changes along when you continue working on a repository across VS Code for the Web or desktop. Some highlights include:
To try out Edit Sessions, set workbench.experimental.editSessions.enabled in your settings and use the Edit Sessions: Store Current Edit Session command, signing in with GitHub or Microsoft authentication when prompted. Then use the Edit Sessions: Resume Latest Edit Session command in a repository on another machine or VS Code instance to restore the working contents of all modified files to your workspace. You can sign out of Edit Sessions at any time using the Edit Sessions: Sign Out command.
As we continue to iterate on the Edit Sessions experience, try it out and share your feedback with us via a comment in issue #141293.
Extension Authoring
‘not in’ operator for ‘when’ clauses
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 programming language extensions that don’t want to implement a full language server.
An example is the built-in handlebars extension that now adds itself to the htmlLanguageParticipants in its package.json :
The Quarkus extension has already adopted the contribution point. It enriches the HTML features with additional proposals for the embedded Qute HTML template language:
Drop into editor API
The text editor drop API lets extensions handle dropping of files or other content into text editors. These drop events can come from within VS Code, such as dragging a file from VS Code’s Explorer into a text editor, or can be generated by dropping a file from your operating system into VS Code.
To drop a file into an editor, users can hold down kbsytyle(Shift) while dragging and then drop the file to a specific location in the file. At this point, your extension can choose what to do with the dropped data.
Check out the drop into editor extension sample for a simple example of this API in action.
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:
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
The new webview context menu proposal makes it easy for advanced webviews to customize the context menus that shows when a user right-clicks inside a webview. This new contribution point uses VS Code’s normal context menus, so custom menus fit right in with the rest of the editor. Webviews can also show custom context menus for different sections of the webview.
To try out this new API, you need to enable the contribWebviewContext proposal.
To add a new context menu item to your webview, add a new entry in menus under the new webview/context section. Each contribution takes a command (which is also where the title comes from) and a when clause. The when clause should include webview == ‘YOUR_WEBVIEW_VIEW_TYPE’ to make sure the context menus only apply to your extension’s webviews:
Inside of the webview, you can also set the contexts for specific areas of the HTML using the data-vscode-context data attribute (or in JavaScript with dataset.vscodeContext ). The data-vscode-context value is a JSON object that specifies the contexts to set when the user right-clicks on the element. The final context is determined by going from the document root to the element that was clicked.
Consider this HTML for example:
If the user right-clicks inside of the
View size
The view size proposal lets extensions provide weights to the views they contribute:
Extensible HTML notebook renderer
To try using this experimental API, your extension needs to extend the vscode.builtin-renderer API.
Your renderer can then register a rendering hook on the vscode-builtin-renderer :
Test out this new API and let us know what you think!
Debug Adapter Protocol
argsCanBeInterpretedByShell for RunInTerminalRequest
Engineering
Progress for Electron sandbox support
This milestone we made substantial progress toward enabling Electron’s 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. Hopefully you should not notice anything changing, but if you find issues, please report them back to us.
Markdown language server
This iteration, we extracted much of VS Code’s tooling for writing Markdown into a library and language server. This includes our tooling for path completions, document outlines, and diagnostics.
VS Code’s built-in Markdown extension has already switched to using this new language server, although hopefully you will not notice any difference in behavior. This switch should help improve performance though, as it moves the Markdown tooling to its own process. Moving to a language server also helped us improve the performance of our experimental Markdown link diagnostics.
Our hope is that other tools and editors will also be able to benefit from these new packages and even contribute back to them. Together we can build better Markdown tooling for everyone! If you are interested, check out the relevant projects:
Debian package dependencies
Debian package dependencies are now generated by a script rather than hard-coded. This closes an issue filed back in 2016 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 (CLI) topic was updated for the newest version of the CLI. The dev container CLI lets you build and run dev containers and is an open-source reference implementation of the Development Containers Specification
Azure Developer CLI (azd)
The Azure Developer CLI and its complementary VS Code extension 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.
The Azure Developer CLI uses extensible 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.
Thank you
Last but certainly not least, a big Thank You to the contributors of VS Code.
Issue tracking
Contributions to our issue tracking:
Pull requests
Contributions to vscode :
Contributions to vscode-generator-code :
Contributions to vscode-js-debug :
Contributions to vscode-json-languageservice :
Contributions to monaco-editor :
April 2022 (version 1.67)
Update 1.67.1: The update addresses this security issue.
Update 1.67.2: The update addresses these issues.
Welcome to the April 2022 release of Visual Studio Code. There are many updates in this version that we hope you’ll like, some of the key highlights include:
If you’d like to read these release notes online, go to Updates on code.visualstudio.com.
Watch the release party: Listen in as the VS Code team discusses some of the new features. You can find the recording of the event on our YouTube channel.
Highlights short: If you just have 60 seconds, check out the April VS Code release highlights video to quickly see what’s new.
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.
Workbench
Explorer file nesting
The Explorer now supports nesting related files based on their names. There are several settings to control this behavior:
Nesting under index.ts when a file matches the directory’s name ( «index.ts»: «$
Nesting files that have the same name as a different file but with an added segment ( «*»: «$
File nesting has been available through an experimental setting for several iterations. The behavior now is mostly unchanged, except for file operations. The experimental setting explorer.experimental.fileNesting.operateAsGroup has been removed in favor of treating nests as a group when collapsed, but as single entities otherwise. This means that if you want to copy, cut, drag, or delete an entire nested stack of files, you can collapse the nest then operate on it as a single entity. When nested elements are expanded, selections will behave as normal.
Settings editor search filter button
The Settings editor search control now contains a funnel button on the right side. Clicking on the button shows a list of filters that you can apply to the search query in order to filter down the results.
Settings editor language filter indicator
Settings editor language filters now change the scope text to more clearly show which language is being acted on when a language filter is applied. The short video above shows the Markdown language filter ( @lang:markdown ) being applied to the filtered settings.
For reference, when a language filter is applied, modifying a setting’s value will modify the value of that setting for that language only. Language-specific settings are scoped in settings.json by the language identifier:
Save files after refactoring
Refactorings, like Rename, often modify multiple files and leave them with unsaved changes (dirty). External development tools usually require these files to be saved. To make this workflow easier, there is a new setting files.refactoring.autoSave that defaults to true and controls if files that were part of a refactoring should be saved automatically.
Exclude dirty editors in editor limit
A new setting workbench.editor.limit.excludeDirty controls if the maximum number of opened editors should exclude dirty editors for counting towards the configured limit. The setting is disabled by default ( false ).
Bring back «Uncommitted Changes» to Timeline
When we introduced Local History feature last month, we removed the Uncommitted Changes entry from the Git timeline provider because it felt a bit redundant. However, some users see real value in this timeline entry and now you can bring it back by configuring the new git.timeline.showUncommitted setting accordingly.
New editor placeholder when opening fails
When an editor fails to open, VS Code no longer shows a notification and reveals the previous opened editor. Instead, there is a generic placeholder with the error message and, in some cases, actions to resolve the error.
Language status improvements
Additionally, the language status item will now show hints to switch languages when your document is suspected to be a different language than what is currently set. This applies only to untitled editors and notebook cells, and can be configured with the workbench.editor.languageDetectionHints setting. Below this is demonstrated in the Handy Dandy Notebook, which supports executing cells in various different languages.
Show invalid or incompatible extensions
Confirm before quit
A new setting window.confirmBeforeClose can be configured to show a confirmation dialog before quitting the application.
Note: The setting is not entirely new and has been available in VS Code for Web for some time.
comments.openView default value
Multiline comments
Behind the scenes, VS Code has supported multiline comments since the comments UX was finalized, but multiline comments were never surfaced in the UI. You can now see and leave multiline comments.
Handle URI in new window
Editor
Bracket pair colorization enabled by default
Given the positive feedback of the new bracket pair colorization feature introduced in the 1.60 release, we enabled bracket pair colorization by default.
Bracket pair colorization can also be disabled just for specific languages:
TextMate grammars can mark tokens as unbalanced
Previously, TextMate grammars could not mark certain brackets as unbalanced, like the closing parenthesis in the case-statement of shell scripts:
With this feature, the grammar of the shell script can now indicate that ) in case-statements should not be matched:
New bracket matching algorithm
Bracket matching now uses the same data structure as bracket colorization. This both increases accuracy and performance.
Old bracket matching behavior (notice that the colors and the highlight decoration do not match):
New bracket matching behavior:
Bracket guide improvements
Horizontal bracket guides now properly support wrapped lines. Also, bracket pairs that only span a single line get their own horizontal bracket guide.
Toggle inlay hints
Editor › Inlay Hints: Enabled value:
Improved inline suggestions
Last month we added the ability to use 👻 ghost text (faint coloring) for quick suggestions. Reminder: you need to use inline for the editor.quickSuggestions setting. We have done some polish work in this area, notably trigger characters and TypeScript «complete functions with arguments» are now supported.
Drag and drop text into editor
You can now drag and drop text from other applications into a text editor. On macOS for example, this lets you drop an emoji from the emoji panel into a text editor:
While dragging, a dotted cursor shows you where the text will be inserted.
Terminal
Find result count
When searching in the terminal, the result count and currently selected match index are now displayed in the Find control.
Source Control
Source Control Repositories view
Editor decoration improvements
The setting defaults to using the pattern for the modified line decoration but not for added:
Performance improvements
Expanded remote source providers API
The Git extension API now allows extensions that register or display remote source providers to provide richer information about remote sources.
Remote source providers can now set the description and icon for individual remote sources. Additionally, providers can optionally specify recent remote sources. These are displayed at the top level in the picker for easy access and sorted by timestamp if one is provided.
The expanded API has been adopted by the built-in GitHub extension, as well as the GitHub Repositories and Azure Repos extensions in github.dev and vscode.dev.
Clone from GitHub using SSH
Debugging
Auto-expand lazy variables
New button for lazy variables
We’ve updated the text link button to a real button with the «eye» codicon. The «eye» codicon was also updated to look more eye-like.
Shift-click to disable breakpoints
You can now Shift+Click on a breakpoint (or conditional breakpoint, or logpoint) to disable it, and to re-enable it.
Languages
Markdown: Drop into editor to create link
You can now quickly create Markdown links by dragging and dropping files from VS Code’s Explorer into a Markdown editor. Hold Shift while dragging the file over a Markdown editor to drop it into the editor and create a link to it:
If the file looks like an image, VS Code will automatically insert a Markdown image. Otherwise a normal Markdown link is added.
This also works when dragging some types of files from other applications, such as dragging and dropping images from a web browser:
Markdown: Find All References to headers
VS Code now supports running Find All References in Markdown files for headers. This lets you see all the places where a given header is used within the current workspace, including links to it from other Markdown files.
To get started, place your cursor either on the header itself or on the fragment part of a link to the header (for example, #some-header in (#_some-header) or (/path/to/file#some-header) ) and run Find All References.
This will show all references in the References view. If you prefer a different view, you can also use the Peek References or Go to References commands.
Markdown: Find all references to reference links
VS Code also supports finding all references to reference links within the current file. This is supported for:
Markdown: Find all references to files
You can also now find all the references to a given Markdown file in the current workspace. Again this includes links across files.
This can be triggered in a few ways:
This will list all places where a given file is referenced, including references to headers within that file.
Markdown: Find all references to URLs
Finally, we also support finding all places where a given URL is used in the current workspace.
Markdown: Rename headers
Ever change a header in a Markdown file only to realize that you also accidentally broke all links to it? That’s where our new rename support for Markdown can help.
To get started, place your cursor on a header and then press F2 to start a rename. Enter the new text for the header and then press Enter to accept. This will both update the current header as well as updating all known links to it in the current workspace.
Markdown: Rename reference links
You can also rename reference links in Markdown. This will update all the reference links in the current Markdown file:
Markdown: Rename files
Rounding out our new Markdown rename support, you can now use F2 on file paths in Markdown links to both rename the file on disk as well as updating all Markdown references to it:
Currently renaming files is only supported using F2 on a link to the file in the text editor. In upcoming iterations, we also plan to support update links when a rename is triggered in the Explorer.
The new setting json.validate.enable lets you turn off the JSON validation.
VS Code for the Web
Open Remote Repository picker
VS Code for the Web now respects the window.openFoldersInNewWindow setting when you use the Open Remote Repository picker. This aligns the picker behavior with the other versions of VS Code and replaces the Open in New Window Quick Pick item button.
Contributions to extensions
Inlay hints
The Java language service included in the Extension Pack for Java now supports inlay hints to show parameter names for method signatures.
There are three modes for Java parameter name inlay hints:
Lazy variable resolution
The Debugger for Java extension now supports ‘lazy’ variables. This feature lets you defer the operations for an expensive variable until you explicitly expand the debugger UI to see it’s value.
Jupyter
Jupyter PowerToys extension
We are excited to announce the Jupyter PowerToys extension that provides experimental functionality for working with Jupyter notebooks. In its first release, we have prototyped the following features:
We’d love for you to take these for a spin and let us know what you think so that we can hone them into a supported feature someday!
For more information, refer to the README in the vscode-jupyter-powertoys repository.
Web extension
If you’d like to experiment with the functionality, launch Jupyter from your local machine with:
And connect to it using the command Jupyter: Specify Jupyter server for connections.
In upcoming releases, we will be enabling more features when running in a browser, including:
Jupyter kernel handling
A number of updates were made to Jupyter kernel handling:
Python
No reload when changing language servers
The Python extension now supports updating the value of the python.languageServer setting and automatically restarting the language server without needing to reload VS Code.
Black formatter extension
There is now a Black Formatter extension that provides formatting support for Python using the black formatter. A pre-release version of the extension is available to install.
Import organization with isort
New isort extension, which provides import organization using the isort library. A pre-release version of the extension is available.
Remote Development
Work continues on the Remote Development extensions, which allow you to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.
You can learn about new extension features and bug fixes in the Remote Development release notes.
GitHub Pull Requests and Issues
Work continues on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues. Highlights of this release include:
Check out the changelog for the 0.42.0 release of the extension to see the other highlights.
Preview Features
Settings Profile
In this milestone, we introduced Settings Profile that is a collection of your settings, extensions, and UI customizations. If you customized VS Code, you can now export your customizations to a Settings Profile file ( mysetup.code-profile ) and save it to your computer and share it with others.
The following short video shows exporting a Settings Profile from VS Code:
You can also import a Settings Profile file to restore your customizations.
Below shows importing a Settings Profile into VS Code:
You can host your Settings Profile file in the cloud, for example save it as a public GitHub gist, and share the URL with others. One can import the Settings Profile file by providing the URL.
Note: At present, only the following UI customizations are included in the Settings Profile. More will be added in the future.
TypeScript 4.7 Support
This update includes support for the upcoming TypeScript 4.7 release. See the TypeScript 4.7 iteration plan for more details on what the TypeScript team is currently working on. Some highlights:
To start using the TypeScript 4.7 nightly builds, install the TypeScript Nightly extension.
Extension authoring
Tab API
Notebook change and save events
We have finalized two notebook-related events:
Support for non-recursive workspace file watchers
In previous milestones, we announced that the createFileSystemWatcher API can be used to watch any folder on disk as long as the folder is not inside the opened workspace. We have now relaxed this restriction and allow non-recursive file watchers anywhere, even inside the opened workspace. Non-recursive watchers have the advantage that configured settings for excludes ( files.watcherExclude ) do not apply so you can be sure that the file watcher will only emit for the paths you subscribe to.
We are working on full support for recursive watchers with custom exclude rules for extensions, so stay tuned for more!
UX Guidelines
The UX Guidelines for extension authors has been redone to have its own table of contents, where you can find best practices for using the various VS Code user interface elements. Specific topics discuss the recommended Do’s and Don’t’s when creating UI for your extensions so that they seamlessly integrate within VS Code.
Running extension tests
Before, VS Code would exit the extension host process as soon as test running was finished. Now, when running extension tests, VS Code will first go through the regular deactivate flow and only afterwards exit. This allows extensions that spawn processes to better clean up after themselves.
Dropping files into custom trees
Building on the recently finalized tree drag and drop API, we now have basic support for dropping files from the OS into extension tree views using the text/uri-list MIME type.
Debugger extension authoring
UI for supportSuspendDebuggee and supportTerminateDebuggee
The disconnect request has two extra options that enable a client to control what happens to a debuggee when disconnecting:
A debug adapter can use the capabilities supportSuspendDebuggee and supportTerminateDebuggee to signal that it supports these options. When supported, a dropdown will appear next to the stop button in the debug toolbar with extra disconnect commands.
For example, in a «launch»-type debug session, for a debug adapter that supports both capabilities, the default toolbar button will be the normal Stop button, but the dropdown will include Disconnect ( terminateDebuggee: false ) and Disconnect and Suspend ( terminateDebuggee: false, suspendDebuggee: true ).
Language Server Protocol
Support for notebooks and pull diagnostics has been moved out of the proposed state to be ready to ship the 3.17 release. New versions of the corresponding client and server libraries have been published to npm.
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:
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.
Drop into editor
The proposed text editor drop API lets extensions handle drops into text editors. These drop events can come from within VS Code—such as dragging a file from VS Code’s Explorer into a text editor—or can be generated by dropping a file from your operating system into VS Code.
This iteration we’ve switched this API to a provider based model. We’ve also created a new extension sample that demonstrates how to use this api.
Badges on views
The new proposal for adding badges to views is available to try out. Similar to how badges work on views provided by VS Code core, extensions can use this API proposal to add number badges to views.
Engineering
Playwright for Electron smoke tests
We have been using Playwright for our web-based smoke tests for a long time. However, our Electron-based smoke tests were still relying on our own custom solution. With the Electron support in Playwright, we were able to reuse most of our web-based smoke test code and use it for our Electron smoke tests too. We are excited to now use the Trace Viewer to diagnose failing smoke tests post-mortem.
New localization pipeline for extensions
VS Code supports a number of display languages that you can enable by installing a language pack. These are great for localizing VS Code itself and built-in extensions to VS Code. This iteration, we have started the standardization effort for localizing extensions that aren’t built-in that the team owns. You’ll see the results of this effort in the GitHub Repositories and Azure Repos extensions as their common dependency extension, Remote Repositories, is the first extension to onboard to this.
Next iteration, we will continue this standardization effort and onboard more extensions. The Python extension is currently in progress and GitHub Repositories and Azure Repos will be quick to follow. We want to get to a point where every extension owned by the team is localized and any new extension created in the future will be able to onboard with ease so that users who aren’t native English speakers can have a great experience in VS Code.
Documentation
Rust in VS Code
There is a new Rust in Visual Studio Code topic describing Rust programming language support in VS Code with the rust-analyzer extension. The rust-analyzer extension includes rich language features such as code completions, linting, refactorings, debugging, and more.
Notable fixes
Thank you
Last but certainly not least, a big Thank You to the contributors of VS Code.
Web extensions
Extension authors for enabling extensions that run code as web extensions (the list below is between March 28 2022 and May 1 2022):
Issue tracking
Contributions to our issue tracking:
Pull requests
Contributions to vscode :
Contributions to vscode-css-languageservice :
Contributions to vscode-generator-code :
Contributions to vscode-js-debug :
Contributions to vscode-pull-request-github :
Contributions to debug-adapter-protocol :
Contributions to language-server-protocol :
June 2022 (version 1.69)
Update 1.69.1: The update addresses these issues.
Update 1.69.2: The update addresses these issues.
Welcome to the June 2022 release of Visual Studio Code. There are many updates in this version that we hope you’ll like, some of the key highlights include:
If you’d like to read these release notes online, go to Updates on code.visualstudio.com.
Watch the release party: Listen in as the VS Code team discusses some of the new features. You can find the recording of the event on our YouTube channel.
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.
Workbench
3 way merge editor
In this release, we continued working on the 3-way merge editor. This feature can be enabled by setting git.mergeEditor to true and will be enabled by default in future releases.
The merge editor allows you to quickly resolve Git merge conflicts. When enabled, the merge editor can be opened by clicking on a conflicting file in the Source Control view. Checkboxes are available to accept and combine changes in Theirs or Yours:
All language features are available in the merge editor (including diagnostics, breakpoints, and tests), so you get immediate feedback about any issues in the merged result.
The result can also be edited directly. Note how the checkbox updates as expected:
When closing the merge editor or accepting the merge, a warning is shown if not all conflicts have been addressed.
We would love to hear your feedback! To share a merge conflict with us, use the command Merge Editor (Dev): Copy Contents of Inputs, Base and Result from JSON and paste the content in your GitHub issue.
Command Center
The Command Center has been polished and is now ready to be tried. Enable it via window.commandCenter setting.
The Command Center replaces the normal title bar and lets you quickly search for files in your project. Click the main section to display the Quick Open dropdown with your recent files and a search box.
The Command Center also has a button on the right to display the Quick Access options via ‘?’. On the left are Go Back and Go Forward buttons to navigate through your editor history.
Settings editor modified indicator
The Settings editor now shows when a setting has a language override. For context, language overrides always take precedence over non-language-specific overrides, so if the value of a setting doesn’t seem to affect the behavior of the setting for a certain type of file, it could be that the setting has a language override.
The indicator text was changed to be more clear and concise. The short video below shows the new Modified elsewhere indicator. Hovering over the indicator reveals a hover that shows language overrides, when applicable. The video later shows the new default override indicator with the text Default value changed.
Do Not Disturb mode
The new Do Not Disturb mode hides all non-error notification popups when enabled. Progress notifications will be automatically shown in the Status bar. Hidden notifications are still available to view in the Notification center.
You toggle Do Not Disturb mode by opening the Notification center (select the bell icon in the right of the Status bar) and clicking the slash bell icon. Do Not Disturb mode is indicated in the Status bar by the slash bell icon.
Toggle between Light and Dark themes
A new command allows you to toggle between your preferred light and dark themes, Preferences: Toggle between Light/Dark Themes. When in a light theme, the command switches to a dark theme and vice versa.
When in a high contrast theme, the command remains in high contrast and switches to the preferred high contrast theme of the opposite color theme.
The preferred themes are defined by the settings:
Minimap context menu
The VS Code minimap displays a high level outline of your source code file on the side of the editor. You have been able to toggle the visibility of the minimap via the View: Toggle Minimap command or disable the minimap completely with the Editor > Minimap: Enabled ( editor.minimap.enabled ) setting. With this release, there is now a context menu to easily show or hide the minimap.
You can also tune the appearance with the Size ( editor.minimap.size ), Scale ( editor.minimap.scale ), and Slider ( editor.minimap.showSlider ) settings. If the minimap is hidden, you can still display the context menu by right-clicking the side gutter.
Share menu
The Copy vscode.dev Link command can be used from the File > Share submenu to quickly get a vscode.dev link for your open GitHub repository. The Share submenu is also available from the editor context menu.
Terminal
Shell integration
Shell integration for PowerShell, bash, and zsh that has been in preview since the January release is now out of preview! We’re planning on enabling it by default in the 1.70 release.
To enable the shell integration feature, check Terminal > Integrated > Shell Integration : Enabled in the Settings editor or set the value in your settings.json :
Shell integration allows VS Code’s terminal to understand more of what’s going on inside the shell in order to enable more features. One of the goals with shell integration was for it to work with zero configuration required. This was achieved by automatically «injecting» the shell integration script into the shell session via shell arguments and/or environment variables when the setting is enabled. There are some cases where this does not work such as in sub-shells or some complex shell setups, but we also have a manual install route for those more advanced cases.
Below is a summary of the features shell integration currently provides:
Command decorations and the overview ruler
Shell integration has the ability to get the exit codes of the commands run within the terminal. Using this information, decorations are added to the left of the line to indicate whether the command succeeded or failed. These decorations also show up in the overview ruler in the scroll bar, just like in the editor.
The decorations can support contextual actions like rerunning the command:
The command decorations can be configured with the following settings:
Command navigation
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 ( Ctrl+R ). Recent commands come from the current session’s history, previous session history for this shell type, and the common shell history file.
Some other functionality of the command:
There is currently no keybinding assigned by default to Run Recent Command but, as an example, it could be hooked up to Ctrl+Space with the following keybinding:
Go to recent directory
Similar to the run recent command feature, the Terminal: Go to Recent Directory command keeps track of directories that have been visited and allows quick filtering and navigating ( cd ) to them:
Alt can be held to write the text to the terminal without running it.
Current working directory detection
Shell integration tells us what the current working directory is. This information was previously impossible to determine on Windows without a bunch of hacks, and required polling on macOS and Linux, which wasn’t good for performance.
The current working directory is used to resolve relative links, show the directory a recent command ran within, as well as support the split current working directory «terminal.integrated.splitCwd»: «inherited» feature.
Growing support for shell setups
This release we improved integration with bash-preexec, added basic support for powerlevel10k, and detected more cases where shell integration will not work and gracefully disable the feature. We expect a long tail of improvements in this area over time.
SetMark sequence support
The terminal now supports the sequence ‘OSC 1337 ; SetMark ST’ originally created by iTerm2, making it possible to add a mark on the left of the line as well as in the scroll bar:
Here are some examples of how to trigger this in scripts:
Custom rendering of simple Powerline glyphs
The four common angled bracket Powerline symbols are now custom rendered similar to box drawing and block characters when GPU acceleration is enabled in the terminal. This comes with several benefits:
Consistent format for messages from VS Code
Previously messages in the terminal that were directly written by VS Code, not the process, used several different formats. This is now consistent across the board with loud format and a more subtle format:
Accessibility improvements
The terminal saw several improvements to accessibility this iteration:
Process reconnection and revive improvements
Terminal persistence received some UX and reliability improvements:
Tasks
Decorations
For start/stop tasks, a decoration appears next to the start of the task and is styled according to the run’s exit code, if any.
For watch tasks, a decoration appears by the first reported problem for each compilation.
Icon and color support
An icon can now be set for a task with a Codicon id and a terminal ANSI color property. For example:
Source Control
Commit «action button» for Git repositories
In the 1.61 release, Publish and Sync Changes «action buttons» were added for Git repositories. This milestone, we have added a Commit button that has a primary action as well as a set of secondary actions. The secondary action can be controlled using the git.postCommitCommand setting, and lets you also do a push or sync after the commit.
Author commit message using an editor
This milestone you can now use a full text editor to author commit messages, whenever no message is provided in the commit input box. To use this new flow, click the Commit button without providing a commit message.
You now can author your commit message in the editor. To accept the commit message and complete the commit operation, either close the editor tab or select the Accept Commit Message button in the editor toolbar. To cancel the commit operation, you can either clear the contents of the text editor and close the editor tab, or select the Discard Commit Message button in the editor toolbar.
You can disable this new flow, and fallback to the previous experience that uses the quick input control, by toggling the git.useEditorAsCommitInput setting. After the setting is changed, you will have to restart VS Code for the change to take effect.
To use the same flow for git commit commands executed in the Integrated Terminal, enable the git.terminalGitEditor setting. After enabling the setting, you will have to restart your terminal session.
Branch protection indicators
Last milestone, we added the git.branchProtection setting that you can use to configure specific branches to be protected. This milestone visual indicators (lock icon) were added to the Status bar and the branch picker for the branches that are protected.
Debugging
Improved Step Into Target UI
Some debuggers allow stepping directly into specific function calls when paused on a line. This iteration, we improved the UI for this:
Navigate in the Debug Console
Console access through the Quick Access menu
There is now a Quick Access menu to view a list of your Debug Consoles. In the menu, you can select a console name to show it in the bottom panel. Here, you can search and filter through your console names.
There are three different ways to access this Quick Access menu:
Using the Debug: Select Debug Console command.
Manually typing out debug consoles (with a trailing space character) in the Quick Open menu.
Console access through the View menu
You can also access a list of Debug Consoles from within the existing View menu. Type view (with a trailing space) in the Quick Open menu and scroll down to the Debug Console panel header. You will see a list of available Debug Consoles.
Toggling between consoles
You can now use ⇧⌘[ (Windows, Linux Ctrl+PageUp ) to navigate to the previous Debug Console and ⇧⌘] (Windows, Linux Ctrl+PageDown ) to go to the next console.
Loaded Scripts search and filtering
Previously, you could only view your loaded scripts within a tree view from the Run and Debug menu. Now, you can search and navigate to a script using the new Debug: Open Loaded Script. command. It works just like the Go to File. command, but you can navigate to a loaded script.
JavaScript debugging
Sourcemap toggling
You can now easily toggle sourcemaps on and off by clicking the 🧭 compass icon in the title of the Call Stack view. When sourcemaps are toggled off, breakpoints set in the source code will still work, but be moved to their equivalent locations in compiled code, and the debugger will step through compiled code instead of source code.
When sourcemaps are turned off, a similar button is shown in the debug toolbar that can turn them back on. Toggle state is persisted in the workspace.
toString() variable previews
If a variable or property has a custom toString() method, it will be called to render the preview in the VARIABLES view and hovers. This is an improvement over generic object previews for complex types that have good string representations.
For example, VS Code’s Range has a toString method that makes it easier to digest at a glance:
Step Into Target support
The JavaScript debugger now supports Step Into Target, allowing you to easily step into function calls on a line of code.
This can be accessed via the Debug: Step Into Target command ( ⌘F11 (Windows, Linux Ctrl+F11 ) ) or by right-clicking on the line.
Unbound breakpoint warning icon in JavaScript debugging
If you are debugging a TypeScript/JavaScript project and having trouble configuring sourcemaps or getting your breakpoints to bind, VS Code will now show a hint message in the Breakpoints view with a link to the JavaScript debugger’s breakpoint troubleshooting tool. You will also see the hint when hovering the gray breakpoint icon in the editor.
When the API to show this hint is finalized, other debuggers will be able to show the hint with their own appropriate message.
Editor
Refactoring with Preview
Previously, there was no way to review changes that would have been applied by a refactoring. To improve the refactoring experience, there is now a Refactor with Preview command that can be accessed from the Command Palette. Refactor with Preview. works just like the Refactor. command, but will open up a refactor preview panel. Users can select a refactor preview to open up a larger view of the refactoring preview in the editor. This iteration primarily focused on previewing code changes from refactorings, with future features and a custom Code Action menu control to follow.
Refactor with Preview. opening a pane in the workbench and opening the refactor preview editor view.
Languages
Support for angle bracket links in Markdown
Markdown lets you use angle brackets to write link destinations that contain spaces or other special characters:
This iteration, we’ve improved support for angle bracket links so that they are correctly highlighted and clickable in the editor.
Emmet inline completions setting
Emmet has a new setting emmet.useInlineCompletions that allows inline completions to occur in files. For now, it is best to enable the setting only for editing HTML and CSS files.
The short video below was recorded with the editor.quickSuggestions setting set to off for all entries.
JSON notifications in the language indicator
When there are too many folding ranges, document symbols, or color decorators to be shown, VS Code no longer uses notifications, but uses the JSON language indicator to inform the user.
HTML final new line formatter setting change
files.insertFinalNewline applies to all programming languages. If you want different settings per language, you can use a language scope:
Notebooks
Support for in-notebook extension recommendations
To help improve the getting started experience for notebooks when a required extension is not installed, we have updated the extension recommendation flow and let you install extensions directly from a notebook window. This greatly reduces the number of steps needed to go from no extensions installed to runnable cells within VS Code. This iteration enabled this experience for Python Jupyter notebooks with more notebook types and languages to follow.
Comments
Toggle editor commenting
The new command Comments: Toggle Editor Commenting toggles all editor commenting features, including the commenting range gutter decoration, the «+» on line hover, and all editor comment widgets. Commenting will be automatically disabled in Zen Mode.
Drag for multiline comments
The Add a Comment «+» button can be dragged to add a multiline comment.
Enterprise
UpdateMode Group Policy on Windows
VS Code now has support for Windows Registry-based Group Policy, which allows system administrators to create and deploy policies on machines they manage.
Refer to Group Policy on Windows in the Enterprise documentation to learn more.
VS Code for the Web
Theme tester supports built in themes
The theme tester is a route in vscode.dev that can be used to showcase and try a color theme without installing it. This has been available for Theme extensions on the Marketplace by specifying the extension ID and theme name. For example, to see the GitHub Theme extension (extension ID github.github-vscode-theme ) «GitHub Dark Default» theme, you would launch vscode.dev with the URL:
The theme tester can now also be used with the built-in themes in VS Code. Use vscode.theme-defaults for the extension ID placeholder and then the theme name you want to check out.
For example, to test the «High Contrast Light» theme, you would use the following URL:
Partial localization support for extensions
Configure Display Language command
For some users, configuring the language used by their browser is not possible. To work around this, VS Code for the Web now has the Configure Display Language command that allows you to override the default language that your browser is set to.
Additionally, you can use the Clear Display Language Preference command remove this override.
VS Code Server (private preview)
In VS Code, we want users to seamlessly leverage the environments that make them the most productive. The VS Code Remote Development extensions allow you to work in the Windows Subsystem for Linux (WSL), remote machines via SSH, and dev containers directly from VS Code. These extensions install a server on the remote environment, allowing local VS Code to smoothly interact with remote source code and runtimes.
We are now providing a private preview of a standalone «VS Code Server,» which is a service built off the same underlying server used by the remote extensions, plus some additional functionality, like an interactive CLI and facilitating secure connections to vscode.dev, without requiring an SSH connection.
Our ultimate goal is to enhance the code CLI you use today to open both desktop and web instances of VS Code, no matter where your projects are stored. While we’re actively working toward this, the VS Code Server is a great milestone we’re eager to release as a private preview to get your feedback.
You can learn more about how to get started with the VS Code Server in its announcement blog post and video, and review further details in its documentation.
Contributions to extensions
ESLint
Version 2.2.6 of the ESLint extension has shipped. In addition to various bug fixes, there is now linting support in notebook cells for all supported ESLint languages.
Jupyter
IPyWidgets
A number of IPyWidget issues related to loading of resources (images, scripts, etc.) have been resolved, thereby improving support for widgets such as VegaFusion, ipyleaflet, Chemiscope, mobilechelonian, and ipyturtle.
Other notable IPyWidget fixes include displaying complex and nested (including interactive) outputs within the Jupyter Output widget.
Web extension
We’ve made progress on supporting more of the core functionality in the web version of the Jupyter extension.
This month the following features were ported to the web extension:
If you’d like to experiment with the functionality, launch Jupyter from your local machine with:
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.
GitHub Pull Requests and Issues
There has been more progress on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues. Highlights of this release include:
Check out the changelog for the 0.46.0 release of the extension to see the other highlights.
Preview features
TypeScript 4.8 support
This update includes support for the upcoming TypeScript 4.8 release. See the TypeScript 4.8 iteration plan 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 extension.
Markdown link validation
We’ve continued to polish link validation in Markdown files. This experimental feature can help catch broken links to images or headers in Markdown files.
In addition to fixing a number of bugs and improving performance, we’ve also renamed some of the settings to make their functionality more clear. Here are the new setting names:
Give it a try and let us know what you think of the new feature!
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. In this milestone, we are happy to announce that this feature is ready for preview in the 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 or commenting in issue #116740.
A Settings Profile is comprised of settings, keyboard shortcuts, extensions, state, tasks, and snippets. You can customize VS Code for different development environments like Web, Machine Learning, or for multiple programming language classrooms like Python, Java or for personal modes like Work or Demo and save them as Settings Profiles. You can open multiple workspaces (folders) with different profiles simultaneously based on the projects you are working on or the classroom you are attending or when you are presenting.
Below demonstrates customizing VS Code for web development environment and creating a settings profile out of it.
Here shows how you can easily change from a development profile to a demo profile.
You can open your React project in web development profile and Python class project in Python class profile simultaneously as shown in the following picture.
You can customize the foreground and background colors of the settings profile Status bar entry by using following color customization keys in settings.
You can manage and remove settings profiles using the Remove Settings Profile. action available in the Settings Profiles sub menu in Settings gear menu.
Access edit sessions across VS Code for the Web and desktop
This milestone we are announcing a preview of edit sessions in VS Code. Edit sessions enable you to bring your uncommitted changes along when you continue working on a repository wherever VS Code is available, whether that is VS Code for the Web, desktop VS Code, or across different machines.
For example, you can use edit sessions to transfer and access working changes:
Edit sessions are currently in preview behind the workbench.experimental.editSessions.enabled setting. In this initial release, you can use the following commands to store and resume your working changes:
To get started with edit sessions, use the Edit Sessions: Store Current Edit Session command and sign in with GitHub or Microsoft authentication when prompted. Then use the Edit Sessions: Resume Latest Edit Session command in a repository on another machine or VS Code instance to restore the working contents of all modified files to your workspace. You can sign out of edit sessions at any time using the Edit Sessions: Sign Out command.
As we continue to iterate on the edit sessions experience, try it out and share your feedback with us via a comment in issue #141293.
Extension authoring
Iterable vscode.d.ts collection types
The full set of newly iterable types is:
Extensible notebook renderers
Notebook renderers allow extensions to customize how cells and outputs are rendered in notebooks. This iteration, we’ve extended the notebook renderer API to allow a renderer to augment another renderer, including some of built-in renderers from VS Code. This allows extensions to add new functionality to notebook rendering without having to reimplement a full renderer. It also provides a better user experience since users don’t have to switch between a new renderer to see the correctly rendered content.
The Notebook Extend Markdown Renderer Sample shows how an extension can extend VS Code’s built-in Markdown renderer with emoji support. Let’s take a quick look at the key parts!
The API for extensible notebook renderers is intentionally loosely defined. To get started, our extension needs to contribute a new notebook renderer. Because we are extending an existing renderer, we use the entrypoint field here to specify both the ID of the renderer to extend (in this case, VS Code’s built-in vscode.markdown-it-renderer ) along with a path to the renderer script to load:
This renderer will now be activated whenever the vscode.markdown-it-renderer is activated.
The key part to note here is that extendMarkdownIt is simply a method returned by the base renderer. Other extensible renderers can easily return their own extension points.
Check out the Notebook Extend Markdown Renderer Sample for a complete example of extending VS Code’s built-in Markdown-It renderer.
Read external files from DataTransfers
High contrast light in webviews
Webviews now can target high contrast light color themes using the vscode-high-contrast-light CSS class:
The vscode-high-contrast-light class is automatically added to the body element of the webview.
Icons in Test Item Labels
Source Control input box enablement
Extension authors can now toggle the enablement of the input box in the Source Control view using the enabled property.
JSON word pattern change
Every language comes with a word pattern that defines which characters belong to a word when in that language. JSON was different to all other languages in that it included the quotes of string literals and the full string literal content. It now follows other languages and contains just letters, numbers, and hyphens.
The change will fix issues when expanding the selection (Command: Expand Selection), allow word completions inside strings, and fix some code suggestion abnormalities.
Extensions that relied on the word pattern, for example for the default replace range in code completions, need to update their implementation to explicitly state the replace range for all completions.
Debug Adapter Protocol
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:
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.
Paste Edit Provider
We’ve updated the documentPaste API proposal to make it easier to correctly implement, specifically when working with multiple cursors.
As a reminder, this API lets extensions hook into copy and paste inside text editors. Extensions can use it to modify the text that is inserted on paste. The document paste extension sample shows the updated API in action:
WebUSB, WebSerial, and WebHID access on web
There is now experimental support for using WebUSB, Web Serial, and WebHID from web extensions.
To access these APIs, your extension first needs to request access to the desired devices by running one of these commands:
These commands will prompt the user to select a device. Each command takes a list of device filters as its argument. For example:
After the command finishes, your extension can use the normal web APIs to access any devices that the user has granted access to:
All of the normal web device APIs should work, with the expectation of those such as requestDevice that need to show UI elements to the user.
At the moment, this functionality only works on web and support is limited to the Chrome and Edge browsers. Also keep in mind that this feature is still experimental, so we may iterate on its design. Give it a try and share your feedback!
Engineering
Electron 18 update
Documentation
TypeScript editing and refactoring
There are two new topics focusing on TypeScript Editing and Refactoring in VS Code. There you’ll learn about specific features such as Inlay hints, CodeLens, and formatting options specific to TypeScript as well as the available code refactorings.
Notable fixes
Thank you
Last but certainly not least, a big Thank You to the contributors of VS Code.
Web extensions
Extension authors for enabling extensions that run code as web extensions (the list below is between June 7 and July 4, 2022):
Issue tracking
Contributions to our issue tracking:
Pull requests
Contributions to vscode :
Contributions to vscode-generator-code :
Contributions to vscode-js-debug :
Contributions to vscode-pull-request-github :
January 2022 (version 1.64)
Update 1.64.1: The update addresses these security issues.
Update 1.64.2: The update addresses these issues.
Welcome to the January 2022 release of Visual Studio Code. There are many updates in this version that we hope you will like, some of the key highlights include:
If you’d like to read these release notes online, go to Updates on code.visualstudio.com.
Watch a highlight of the new features in this version at the VS Code team’s release party. You can find the recording of the event on our YouTube channel.
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.
Workbench
New Side Panel
This milestone, we introduce the Side Panel, a new surface in the workbench opposite the Side Bar, where you can house views from the Side Bar or the bottom Panel. Unlike moving the bottom Panel to the left or the right of the editor, the new Side Panel works in addition to the bottom Panel so you can see more sets of views at once.
To use the Side Panel, you need to move some views over to it. Based on one of our most upvoted feature requests, you might want to move Outline view from the Side Bar to the Side Panel. You can do this by dragging and dropping the view into the Side Panel. If the Side Panel is not open, just like the bottom Panel, dragging a view to the edge of the editor area, will pop it open.
In the short video below, the Outline view is dragged to the right and dropped to create the Side Panel. The user can then switch views in the Side Bar (here opening the global Search view), while keeping the Outline view visible.
Alternatively, you can use the Move View command from the Command Palette, which will display a dropdown of available views. When you select a view, you can then choose the location by either creating a new Panel/Side Bar/Side Panel entry or placing the view in an existing location such as Explorer or Source Control.
Views can be drag and dropped between the Panel, Side Bar, and Side Panel by grabbing the view icon. You can reset a view’s location back to its default by right-clicking on the view icon and selecting Reset Location.
If you’d like to reset all views back to the default layout, you can run Views: Reset View Locations from the Command Palette.
Replacing Panel location
As mentioned above, the new Side Panel provides similar functionality as moving the Panel to the left or right, yet improves on this by not moving the entire contents of the original panel. Along with view drag and drop between panels, the new Side Panel is replacing the option to move the bottom Panel.
In light of that, we have deprecated the workbench.panel.defaultLocation setting as well as the Move Panel commands in favor of similar commands:
The old Move Panel commands have been remapped to the new command that provides the similar behavior. Even with this mapping, we recommend updating your keybindings to the new commands.
Below, the entire bottom Panel is moved to the Side Panel and then back to the original Panel location.
Panel alignment
Addressing another popular feature request, we have added a new layout option called Panel Alignment. This option allows you to configure how far the bottom Panel spans across your window. There are four options:
Note that with all options, the Activity Bar is considered the edge of the window.
You can configure these options in the menu under View > Appearance > Align Panel or using the new Set Panel Alignment to. commands.
Customize Layout control
The contents of the menu are still being worked on, but currently you should see the ability to toggle the Side Bar, Panel, and Side Panel. Additionally, you will see an entry for a new command Customize Layout. This new command triggers a new interactive Quick Pick experience allowing you to control all aspects of layout configuration in one place.
Try it out, and let us know if you have any feedback in issue #137633.
Settings editor
The Settings editor search now looks for string value matches in string and enum settings when searching.
The new search algorithm also prioritizes whole word matches, which means that if one has both the Java and JavaScript extensions, the Java settings will show up first when searching «java».
Lastly, dropdowns (such as for files.autoSave ) and list widgets (such as for files.associations ) in the Settings editor now work with touchscreen devices.
Settings Sync
Settings Sync now supports synchronizing User Tasks.
The default Settings Sync machine names now include the browser and product names in VS Code for the Web.
Explorer: Confirm and disable Undo
The File Explorer has long supported an Undo stack to revert file and folder edits (rename, cut/copy/paste, move, import, etc.). Some users find this functionality unexpected, so there is now a setting to disable Undo in the Explorer ( explorer.enableUndo ).
Editor
Audio cues
Audio cues indicate if the current line has certain markers, such as errors, breakpoints, or folded text regions.
More audio cues are to come and we will iterate on the sound design.
Unicode highlighting improvements
To improve the Unicode highlighting feature introduced in the November release, there are new settings to better deal with false positives.
The new setting editor.unicodeHighlight.allowedLocales can be used to allow characters that are common in one or many configured locales. By default, this includes the current VS Code display language and the current OS language. At the moment, only locales translated in vscode-loc Language Packs are supported.
Editor folding limit
A new setting editor.foldingMaximumRegions allow users to change the maximum number of folding ranges that are shown in an editor. By default, the limit is 5000. Note that larger numbers can result in a reduced performance.
Editor adapts to language feature timings
Extensions power almost all language features, including built-in features like folding regions, CodeLens, inlay hints, and semantic tokens. These features aren’t triggered by user gestures but by typing, usually after a timeout. For instance, CodeLens updates as you type, and so does semantic tokens. The chosen timeout values had been fixed and more or less arbitrary. With this release, the editor adapts to the observed timings so that slower machines or network connections aren’t overwhelmed with requests and faster machines are utilized better.
Terminal
Automatic replies
The terminal now features an opt-in feature to automatically reply when a specific sequence of characters is received. A good example of where this is useful is the Windows batch script message Terminate batch job (Y/N)? after hitting Ctrl+C when running a batch script. To get the terminal to automatically reply with Y and enter ( \r ) on Ctrl+C in Windows add the following setting:
You can set up custom replies for other things, but be careful when doing this, as you are sending text to the process automatically. For example, you could use it to automatically update Oh My Zsh when prompted:
If you use Clink and enable their similar feature, you can disable it in Clink or in VS Code by setting the reply to null to avoid the two features conflicting with each other:
Enhanced VT support
Support for Operating System Command (OSC) 4/10/11/12 escape sequences were added that enables applications to control the terminal’s theme colors.
Keyboard navigable links
Previously, link navigation in the terminal required the use of a mouse. Now, links can be opened using only the keyboard via the following commands:
Source Control
More control on repository discovery
Based on community feedback, there are two new settings to better control the process of discovering Git repositories and accommodate more diverse folder structures.
Changes list sort improvements
A new setting ( scm.defaultViewSortKey ) controls the default sort key used for the changes list in the Source Control view. The choice for the sort key is also remembered for each folder/workspace.
The options are:
You will need to reload the VS Code window to apply the setting change.
New Git stash command
To help track down performance issues, the Git Output channel now shows the time when a git command was executed as well as the duration of the command, excluding the time it took to spawn the child process.
Notebooks
Find text in rendered Markdown and code cell outputs
VS Code now supports find text in the rendered view of Markdown cells and output of code cells. The feature is disabled by default as it would require rendering of all Markdown cells and outputs, which might be costly when opening a notebook. You can turn on this feature by choosing options (Markdown Preview, Code Cell Outputs) from the filter dropdown on the Find control input box.
Currently, there are some limitations when searching text in outputs. For example, you cannot search streaming/text output rendered by VS Code itself. We plan to improve this in the next iteration.
Cell collapsing UI
Markdown cell fold hint
When a region of Markdown cells has been folded, a message will appear with the number of folded cells to make it more apparent that some cells are hidden.
Cell execution hints
We made some changes to make it more obvious when a cell is executing, and which cell is executing.
First, when a cell is executing but is not scrolled into view, a progress bar will be shown at the top of the editor pane.
Second, a new button, Go To Running Cell, is added to the notebook toolbar when a cell is executing.
Third, if code cells are visible in the outline or breadcrumbs via the notebook.outline.showCodeCells and notebook.breadcrumbs.showCodeCells settings, they will display an animated running icon when they are executing.
Debugging
Viewing and editing binary data
VS Code’s generic debugger now supports viewing and editing binary data (aka «memory»). Variables for which memory viewing and editing is available show an inline binary icon in the Variables view, and selecting it opens the Hex Editor:
Memory viewing and editing relies on the memory-related features of the Debug Adapter Protocol and debug extensions have to implement these features in order to enable the corresponding UI in VS Code. For details, see section Debugger extension authoring below. In this release, only the built-in JavaScript debugger supports viewing and editing of binary data, but we expect other debug extensions to follow soon.
JavaScript debugging
Exclude callers from pausing at breakpoints
Sometimes you might set a breakpoint or add a debugger statement, but only want to pause when called from a certain code path. DOM event handlers like mousemove are a good example for this. In this release, the JavaScript debugger added the ability to «exclude a caller» from pausing at a breakpoint or debugger statement.
When paused at a location, you can right-click on a frame in the CALL STACK view and choose the Exclude Caller command. A new EXCLUDED CALLERS view will be shown to allow you to view and manage excluded callers, and afterwards your program won’t pause at a breakpoint location if the excluded caller appears anywhere in its call stack.
Edge support on Linux
Microsoft Edge debugging is now available on Linux, via the edge debug type.
Languages
Markdown path IntelliSense
The built-in Markdown extension now includes path IntelliSense for links and images.
Path IntelliSense can also help you link to headers within the current file or within another Markdown file. Start the path with # to see completions for all the headers in the file (depending on your settings, you may need to use ⌃Space (Windows, Linux Ctrl+Space ) to see these):
Markdown strikethrough support
VS Code now supports rendering
text in both the Markdown editor and in the built-in Markdown preview:
Strikethroughs are written by wrapping text in two tilde characters.
While all of VS Code’s built-in themes support strikethroughs, some themes from the Marketplace may require an update to properly render strikethrough text in the editor.
TS 4.5.5
VS Code now bundles TypeScript 4.5.5.
Surround with snippets for JS/TS
Many of the JavaScript and TypeScript snippets have been updated to support surrounding selected text.
To use surround with, first select some text and then run Insert Snippet. Instead of replacing the selected text, snippets such as if or forof will now use the selected text as the body of the new statement.
HTML auto insert quotes after equals
When typing = after a property in HTML, the language service now automatically inserts quotes and places the cursor between the quotes. The setting html.completion.attributeDefaultValue lets you specify what type of quotes (single or double) and by default uses double quotes.
JSON Clear schema cache command
A new command Clear schema cache clears the cache of previously downloaded schemas.
LaTeX support
LaTeX basic language support has been added. This includes syntax highlighting and auto-closing pairs.
VS Code for the Web
Remote Repositories
GitHub Repositories
Commits created in VS Code for the Web are now signed and marked as Verified in the GitHub UI. Additionally, maintainers can now commit to pull requests submitted from forks when using VS Code for the Web. This is thanks to the new GitHub GraphQL createCommitOnBranch API.
Additionally, the Source Control view now supports multiple selection.
Previously, creating empty commits was only supported after cloning your GitHub repository to a local or remote machine. You can now also create empty commits in VS Code for the Web using the GitHub Repositories: Commit Empty command.
A new configuration was also added to enable automatically downloading the full contents of repositories below a given size to enable advanced features like whole-repository text search and Go to Reference. The setting remoteHub.experimental.fs.maxAutoDownloadSize controls the repository size limit before a prompt will be shown on attempting to download full contents. By default, maxAutoDownloadSize is not set, in order to never download without prompting.
Azure Repos
Azure Repos support has moved out of the GitHub Repositories extension into its own dedicated extension that can also be installed on desktop.
Adopted pre-release extensions
VS Code for the Web now bundles pre-release versions of both the GitHub Pull Request and Issues and GitHub Repositories extensions.
PWA and offline support
VS Code for the Web has adopted the PWA model and can now be installed as a PWA on the host OS. Thanks to that adoption, it is also now possible to enable some offline functionality. Having once visited vscode.dev or insiders.vscode.dev, users can now use it to edit local files even while offline.
Contributions to extensions
Python
Improved interpreter Quick Pick
In order to make it easier to select the desired interpreter, the Python extension now groups interpreters by type in the Select Interpreter Quick Pick.
We’re also experimenting with moving the active/selected interpreter in the Status bar towards the right possibly inside the language status, so check the Python status in the right side in case it isn’t visible.
Add support for ‘conda run’
The Anaconda team is working on the issue and hopes to have a fix out soon. You can update your version of Anaconda on the Conda website once the new version is released.
Smart selection and better folding support
Improvements were also made for Python code selection and folding via the Pylance language server.
Selecting Python code using the keyboard takes fewer keystrokes as the semantic information of your code is taken into account when defining the selection range:
As for folding, previously the regions were defined just by indentation, which was not ideal for some cases, such as multi-line strings. Now folding regions take into account semantic information appropriately, and also supports #region comments:
Jupyter
Remote Jupyter servers
The Jupyter extension now no longer requires you to reload VS Code when switching between local and remote Jupyter servers. In addition, the extension now displays both local and remote kernels together in the kernel picker.
Hex Editor
The Hex Editor has undergone some significant architectural refactoring. Notably, in most cases it’s now able to open files of any size without performance issues. Additionally, its layout width is now configurable, and it has a more capable Find/Replace implementation. Continued improvements will be forthcoming in future iterations.
Remote Development
Work continues on the Remote Development extensions, which allow you to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.
You can learn about new extension features and bug fixes in the Remote Development release notes.
GitHub Pull Requests and Issues
Work continues on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues. Check out the changelog for the 0.36.0 release of the extension to see the highlights.
Preview features
Terminal shell integration
Using this information, we can enhance existing features in various ways:
Shell integration enables the following new features:
The goal is to turn on shell integration by default when reliability of the feature is good enough. The approach we’re taking with regard to argument injection is to be as unintrusive as possible. For example, we do not modify your shell initialization scripts automatically like some terminals but instead intercept the creation of the process, inspect the arguments, and inject shell integration arguments if we are confident the terminal can run with them. The hope is to make it work well without any configuration required by the user, and to not interfere with your existing shell settings.
The current shells supported are pwsh for Windows and pwsh, bash, and zsh for Linux and macOS.
As mentioned previously, this is an experimental feature that is a little rough around the edges and there are some known issues:
Explorer file nesting
The Explorer now has experimental support for displaying files in the same directory in a logically nested layout. This can be helpful for visually grouping related files together and collapsing files into a «root» file to reduce clutter. Several new settings have been added to control this behavior:
Extension authoring
Language default icons
Language contributors can define an icon for the language.
The icon is shown if the current file icon theme only has a generic file icon for the language.
Also file icon themes like Minimal or None that do not show file icons, will not use the language icon. If a file icon theme has an icon for an extension or file name, these will be preferred.
File icon themes can customize the new behavior by defining showLanguageModeIcons: true|false in the theme file.
QuickPickItem separators
Extension authors now have the ability to add separators to a Quick Pick. This is useful for grouping items or adding a bit of space between items:
In the example above, you would add the following object to your list of items:
vscode.workspace.createFileSystemWatcher now supports any path
The existing vscode.workspace.createFileSystemWatcher API was improved to allow you to pass in any file or folder path for file watching, even if it is outside of the workspace. Previously, the file watcher was limited to the opened folders in the workspace.
Depending on the glob pattern you pass into the method, the watcher will either be recursive (for example, **/*.js ) or non-recursive ( *.js ). Recursive watchers require more resources, so we recommend using simple glob patterns if possible.
Note: As part of this change, we made a behavioral change for existing file watchers. A file watcher that is instructed with just a glob pattern (for example, vscode.workspace.createFileSystemWatcher(‘**’) ) will no longer receive events for files that changed outside of the workspace. It will only receive file events from paths that are inside the workspace. If the user does not have an open workspace, no event will be delivered via this method anymore. This was done to ensure that extensions do not receive unexpected events from outside the workspace.
vscode.TerminalLocation
You can specify where an extension terminal will be created with the new TerminalLocation API.
This enables creating a split terminal by providing a parentTerminal, choosing between the editor area and the panel, and more.
Cancellation token for onWill events
The VS Code API exposes events to participate in file operations, like onWillRenameFiles. This participation can be long-running and therefore users can cancel it. With this release, user-side cancellation can be observed by extensions via a cancellation token on the corresponding event, for example FileWillRenameEvent#token. This allows extensions to cancel expensive downlevel operations as well.
Git extension APIs
onTaskType activation event
Extension that provide tasks can limit their unneeded activations by using the new onTaskType:foo activation event. This is an improvement over activating on onCommand:workbench.action.tasks.runTask as workbench.action.tasks.runTask is usually too eager for task providing extensions.
Debugger extension authoring
VS Code now implements the memory-related features of the Debug Adapter Protocol
In this release, VS Code has started to support viewing and editing binary data by supporting the following memory-related features of the Debug Adapter Protocol:
Language Server Protocol
A new next version of the Language Server Protocol, together with the corresponding npm modules, has been published. The version contains a proposed implementation for notebook documents. The specification part can be read here.
Proposed extension 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:
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.
Disable terminal persistence
Inlay hint API
This is a shout out to everyone who’s interested in the inlay hints API. It is nearing completion and has added support for interactive label parts. Those allow you to bind a source code location to hints that in return enables features like code navigation. Also, commands are now supported. The latest state and development of this proposal is here: vscode.proposed.inlayHints.d.ts
Language status API
The language status item API is planned for finalization. Please try it out and provide feedback for vscode.proposed.languageStatus.d.ts
Testing Proposals
We’re proposing an official way to implement a «refresh» handler for tests, check out vscode.proposed.testRefresh.d.ts. This will allow extensions to unify behind a standard «refresh» button in VS Code and avoid implementing their own.
Additionally, we propose that TestItem have a sortText attribute in vscode.proposed.testSortText.d.ts.
Inline completions: Automatic bracket completion
Tree drag and drop proposal supports dragging into the editor
Comment timestamp
Engineering
vscode-bisect tool
A new tool for bisecting released VS Code Insiders versions (web and desktop) is available to help diagnose issues:
Run Code Web & Server from sources
The scripts to run VS Code for the Web and VS Code Server from sources has moved to the scripts folder:
Extensions
In this milestone, we improved Marketplace interactions by minimizing the number of queries VS Code makes to the service.
Notable fixes
Thank you
Last but certainly not least, a big Thank You to the contributors of VS Code.
Web extensions
Extension authors for enabling extensions that run code as web extensions (the list below is between December 7 2021 and January 31 2022):
Issue tracking
Contributions to our issue tracking:
Pull requests
Contributions to vscode :
Contributions to vscode-css-languageservice :
Contributions to vscode-eslint :
Contributions to vscode-extension-samples :
Contributions to vscode-html-languageservice :
Contributions to vscode-js-debug :
Contributions to vscode-pull-request-github :
Contributions to vscode-textmate :
Contributions to vscode-vsce :
Contributions to debug-adapter-protocol :
Contributions to monaco-editor :
Contributions to node-jsonc-parser :
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2022. Инструкции по установке и обновлению Visual Studio 2022 см. в документации по обновлению до последнего выпуска Visual Studio 2022. Кроме того, см. инструкции по установке в автономном режиме.
Предварительная версия не готова к выпуску, а также к использованию на рабочих компьютерах или созданию кода готовых программных продуктов. Дополнительные сведения см. в разделе Жизненный цикл и обслуживание продуктов Visual Studio.
Предварительные выпуски Visual Studio 2022 версии 17.4
Поддержка диапазона времени
Блог Visual Studio 2022
Блог Visual Studio 2022 является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio 2022 можно найти в следующих записях:
Выпущено 9 августа 2022 г.
Сводка новых средств в этом выпуске Visual Studio 2022 версии 17.4, предварительная версия 1
Установка и обновления
Установщик Visual Studio, дебютировав в этой версии Visual Studio 2022 версии 17.4( предварительная версия 1), включает две новые функции: откат и удаление компонентов, не поддерживающих
Первая функция, включенная в установщик Visual Studio, — откат — возможность вернуться к ранее установленной версии Visual Studio.
Откат вернет Visual Studio в версию, установленную до последнего примененного обновления. Он будет сохранять любые изменения выбранных компонентов, выбранных с момента последнего обновления. Будут удалены локальные настройки, такие как параметры пользователя и профили. Однако будут восстановлены общие синхронизированные параметры, такие как темы, шрифты, привязки ключей и макет окон.
По состоянию на данный момент вы сможете выполнить откат к компонентам, которые поставляются с экземпляром VS и общими компонентами, такими как пакеты SDK и средства, принадлежащие и управляемые только VS. Расширения для каждого компьютера, системные компоненты и средства, которые не управляются Visual Studio, останутся в их текущих версиях. Однако расширения для каждого пользователя будут удалены. Дополнительные сведения см. в разделе «Компоненты, совместимые» ниже.
Что произойдет с обновлениями для системы безопасности?
Обновления системы безопасности, включенные в выпуск, превышающий откат версии, которую вы откатили, будут удалены, что может сделать ваше устройство уязвимым. Мы рекомендуем всегда обновляться в ближайшее время до последней версии, чтобы оставаться в безопасности.
Какие версии поддерживают откат?
Вы сможете протестировать функцию отката с помощью последней предварительной версии Visual Studio 2022 (17.4 P1).
В следующей таблице описан тип компонентов, поддерживаемых функцией отката. Как правило большого пальца, компоненты, устанавливаемые VS, и используются, включаются в попытку отката.
Можно ли выполнить откат, если я в управляемой среде?
Из-за политик организации и требований к наиболее безопасной версии попытка отката может быть отменена. Мы рекомендуем использовать канал предварительной версии, чтобы протестировать эту функцию.
Как выполнить откат?
После обновления вы увидите «Откат до предыдущей версии» в раскрывающемся списке «Дополнительно» на карточке продукта.
После этого появится всплывающее предупреждение, и вы сможете отменить или продолжить.
Сообщите нам свои мысли!
Мы хотели бы получить ваши отзывы о функции отката, поэтому пожалуйста, дайте ему попробовать и сообщите нам, что вы думаете. Вы можете поделиться своими отзывами.https://aka.ms/DeveloperCommunity-RollbackFeedback
Инструменты Git
Дополнительные сведения см. в этой записи блога.
F#
C++
Поиск кода и навигация
Вводные сведения о повышении производительности, надежности и пользовательского интерфейса в интерфейсе поиска «все в одном» (CTRL+Q). Теперь можно просмотреть код и статические изображения. По мере того как мы продолжаем работать над производительностью и надежностью, временно будут ограничения в том, какие результаты можно просмотреть.
Вы можете включить все встроенные функции поиска: средства > управления предварительными версиями функций > «Новый интерфейс поиска Visual Studio (требуется перезапуск)».
Инструменты тестирования
Конфигурация
Сегодня мы выпустили предварительную версию файлов административных шаблонов Visual Studio (ADMX/ADML). Сейчас ИТ-администраторам трудно узнать, какие глобальные политики существуют для Visual Studio, и администраторам в равной степени трудно интегрировать эти политики и управлять ими в обычно используемой инфраструктуре и средствах ИТ-администрирования. Файлы административных шаблонов Visual Studio (ADMX/ADML) позволяют администраторам легко обнаруживать, управлять поведением Visual Studio и управлять ими, доступными для управления политикой. Дополнительные сведения и отзывы об этой предварительной версии см. здесь.
От сообщества разработчиков
Известные проблемы
Ознакомьтесь со всеми открытыми проблемами и доступными обходными решениями в Visual Studio 2022, следуя приведенным ниже ссылкам.
Отзывы и предложения
Блоги
Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
Visual Studio 2022 contains many new and exciting features and IDE productivity enhancements to support Windows app development, cross-platform mobile development, Azure development, web and cloud development, and more. To try out Visual Studio 2022, see Visual Studio 2022 Downloads. For more information about everything that’s new in this release, see the Visual Studio 2022 release notes and What’s New in Visual Studio 2022.
Installation
You can install and use Visual Studio 2022 alongside previous versions of Visual Studio, including Visual Studio 2019, Visual Studio 2017, Visual Studio 2015, Visual Studio 2013, and Visual Studio 2012.
Download
Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.
Visit the Visual Studio site to download other Visual Studio 2022 products.
Note: Installation package size will vary depending on your current Visual Studio configuration.
System Requirements
For information on the system requirements for installing and running the Visual Studio 2022 family of products, see the Visual Studio 2022 System Requirement page.
Feedback and Support
For support, or to submit feedback on Visual Studio, see:
Upgrade Projects to Visual Studio 2022
When following the supported upgrade paths, your Visual Studio source, solutions, and project files will continue to work; however, you should expect to make some changes to sources. While we cannot guarantee binary compatibility between releases, we will do our best to document significant changes to assist you with updates.
For details on how to migrate your projects to Visual Studio 2022, see Porting, Migrating, and Upgrading Visual Studio Projects.
Platform Targeting
Visual Studio provides cutting-edge tools and technologies to create apps that take advantage of the latest platform capabilities, whether Windows, Android, iOS, or Linux. Visual Studio 2022 also targets earlier platforms so you can create new apps or modernize existing apps that execute on earlier versions of Windows while leveraging the enhanced development tools, quality enablement, and team collaboration capabilities in Visual Studio 2022. For more information, see Managing references in a project and Visual Studio Multi-Targeting Overview.
Visual Studio 2022 Support for Windows Development
The following table explains the Microsoft Windows platforms for which you can build apps by using Visual Studio 2022.
Build Apps that Run on Windows Clients
Windows client version | Using Tools for Native and Managed Classic Windows Desktop Development | Using Tools for UWP App Development |
---|---|---|
Windows 11 Windows 10 | Yes (see notes below) | Yes (see notes below) |
Windows 10 Team Edition | Not applicable | Yes Remote debugging required. |
Windows 11 S Windows 10 S | Not applicable | Yes Remote debugging required. |
Windows 10 LTSC | Yes Remote debugging required. | Yes Remote debugging required. |
HoloLens | No | Yes See the Windows Holographic Dev Center. |
Xbox One | Not applicable | Yes See the Xbox Dev Center. |
Windows 8.1 | Yes | Not available. Use Visual Studio 2015. |
Windows 8 (Windows 8) | No | Not available. |
Windows 7 | Yes | Not applicable |
Windows Vista | No | Not applicable |
Windows XP | No | Not applicable |
Build Apps that Run on Windows Phone
Windows Phone version | Using Tools for Native and Managed Classic Windows Desktop Development | Using Tools for UWP App Development |
---|---|---|
Windows 10 Mobile | No | Not available. Use Visual Studio 2017. |
Windows Phone 8.1 and 8.0 | No | Not available. Use Visual Studio 2015. |
Windows Phone 7.x | No | Not available. Use Visual Studio 2012. |
Build Apps that Run on Windows Server
Build Apps that Run on Windows Embedded Devices
Windows Embedded version | Using Tools for Native and Managed Classic Windows Desktop Development | Using Tools for UWP App Development |
---|---|---|
Windows 10 IoT Core | Yes, for a subset of Win32 APIs See the IoT Core API Porting Tool for information. | Yes See the Windows IoT Dev Center for additional tools and resources. |
Windows 10 IoT Mobile Enterprise | No | Yes See the Windows IoT Dev Center for additional tools and resources. |
Windows 10 IoT Enterprise | Yes See the Windows IoT Dev Center»> for additional tools and resources. | Yes See the Windows IoT Dev Center for additional tools and resources. |
Windows Embedded 8 Standard and 8.1 Industry | Yes | No |
Windows Embedded Compact 2013 | No | Not applicable |
Windows Embedded 7 (Compact, Standard, and POSReady) | No | Not applicable |
Windows Embedded CE 6.0 and earlier | No | Not applicable |
Windows XP Embedded (Including POSReady 2009, WES 2009, WEPOS) | No | Not applicable |
Visual Studio 2022 Support for Android Development
Visual Studio 2022 enables you to build native Android apps using Xamarin and C# or using C++. The Visual Studio Tools for Unity and the Unreal Engine enable Android game development. You can also use Visual Studio for Mac to build Android apps using a Mac.
You can use Visual Studio setup to easily obtain the Android SDK and Android API levels 25 (for Mobile development with C++) and 30. You can download additional API levels separately using the Android SDK Manager. You can also use Visual Studio Setup to obtain the Android Native Development Kit (R10E), Java SE Development Kit, and Apache Ant.
Visual Studio 2022 Support for iOS Development
Visual Studio 2022 enables you to build and debug apps for iOS by using C++, Unity, or Xamarin and a Mac configured for iOS development when using remotebuild, vcremote, the Visual Studio Tools for Unity, or the Xamarin Mac Agent. Xamarin supports iOS 9 and higher, and requires Xcode 12.5 or higher and OS X 11.0 «Big Sur» or higher. You can also use Visual Studio for Mac to build iOS apps using a Mac.
Visual Studio 2022 Support for Linux Development
Visual Studio 2022 Support for macOS Development
Visual Studio 2022 enables you to build console applications and ASP.NET applications that target macOS. However, debugging is not supported. For additional macOS development tools choices, try Visual Studio Code or Visual Studio for Mac. Visual Studio Code provides a streamlined, extensible developer tool experience for macOS. Visual Studio for Mac provides a feature-rich IDE that enables you to build native macOS apps, including ASP.NET, using C#.
Other Platforms and Technologies
Visual Studio 2022 also supports the following platforms and technologies. For more information, see https://visualstudio.microsoft.com/vs/features/.
Compatibility with Previous Releases
.NET Framework
Team Explorer, Azure DevOps Server, and Team Foundation Server
Team Explorer for Visual Studio 2022 will connect to Azure DevOps Server 2019, Team Foundation Server 2017, Team Foundation Server 2015, Team Foundation Server 2013, Team Foundation Server 2012, and Team Foundation Server 2010 SP1.
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.
Visit the Visual Studio site to download other Visual Studio 2022 products.
Preview Channel is not «go-live» and not intended for use on production computers or for creating production code. For more information, see Visual Studio Product Lifecycle and Servicing.
What’s New in Visual Studio 2022 version 17.3
Visual Studio 2022 Blog
The Visual Studio 2022 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 releases in the following posts:
Developer Community Suggestions: You asked, we listened!
Take a look at the list below of Developer Community issues that were addressed in Visual Studio 2022 version 17.3
released August 23, 2022
Issues Addressed in this release of 17.3.2
From Developer Community
released August 16, 2022
Issues Addressed in this release of 17.3.1
From Developer Community
released August 9, 2022
Summary of What’s New in this Release of Visual Studio 2022 version 17.3
Apple Developer Accounts
This preview includes initial support for Individual AppStoreConnect accounts which are needed for non-Enterprise Apple Developers.
Audio Cues in the Editor
Git Tooling
Line-staging support, a.k.a interactive staging with the ability to stage specific lines and/or chunks of code right from the editor and the diff view. To get started, stage one of your recent changes by selecting the corresponding color margin and utilizing the Peek Difference UI to stage your change.
Read our blog post to learn more and share your feedback.
C++
Debugging & Diagnostics
General
Installer
Microsoft Teams Development Tools (Teams Toolkit)
.NET Productivity
In C# 10 we introduced Global Usings. Global Usings adds usings to the top of a file invisibly and automatically. We now surface an icon at the top of your file to let you know if Global Usings are active in your file and if you click on the icon, it will show you what those Global Usings are.
Peek Definition now supports source link, embedded source, and decompiled sources.
We added the following three options for collapsing and outlining views on file open:
You can now apply Fix All to both the Use expression body or block body and Convert to raw string literal refactoring.
We now have a code fix that fixes invalid constraints. Place your cursor on the diagnostic squiggle in the editor. Press Ctrl+. to trigger the Quick Actions and Refactorings menu. Select Fix constraint.
We now have a refactoring that allows you to switch between top-level statements and the Program.Main style. Place your cursor on a top-level statement. Press Ctrl+. to trigger the Quick Actions and Refactorings menu. Select Convert to вЂProgram.Main’ style program.
We added additional scopes to the Fix All operation. In addition to applying the Fix All operation to a Document, Project, and Solution, you can apply Fix All to a Containing Member and Containing Type.
We now automatically convert single line comments to doc comments when you add an additional forward slash to a single line comment.
We now have a code style option that allows you to warn on possible exceptions in a foreach loop. Foreach loops implicitly casts to derived types by design. This was necessary before generics existed but can lead to runtime exceptions in some cases.
Personalization
These features include:
Razor (ASP.NET Core) Editor
Test tools
Parallel Discovery is now enabled by default when running tests from the Test Explorer. This enables Visual Studio to use available cores to discover tests in parallel and reduce the time to see tests in the Test Explorer.
The Live Unit Testing window now has a status bar, similar to the Test Explorer. This should give you better insight on the operations ongoing in Live Unit Testing as well as visibly surface errors.
vstest.console now supports running assemblies of different target platforms and target frameworks in one request.
Code Coverage now has a cache for static instrumentation for better performance.
Microsoft.CodeCoverage.Console is now added to the command line tools.
Remote Testing now supports test runs against remote arm64 windows environments.
The new build experience for [Live Unit Testing] is now enabled by default. Read our blog post to learn more.
You can now choose to see code coverage information on the editor margin by selecting «Margin Glyphs» in the Code Coverage Results window.
Live Unit Testing now provides a button to reset all state. By going to Test > Live Unit Testing > Reset Live Unit Testing state for solution.
Live Unit Testing now supports Razor files.
TypeScript and JavaScript Development
JavaScript and TypeScript files projects are now excluded from program analysis unless they are referenced by a tsconfig.json or jsconfig.json file. The result should be improved performance in large projects with lots of TypeScript and JavaScript files.
JavaScript (.esproj) projects that are referenced from an ASP.NET project now provide an option to include production build output in ASP.NET project publishing.
The TypeScript 4.7 language service and compiler are included in Visual Studio. See the TypeScript 4.7 announcement blog post for more.
The new multi-target JavaScript debugger is now used by default in Node.js (.njsproj) projects.
Auto-closing HTML tags in JavaScript and TypeScript React (.jsx/.tsx) files.
Fixed an issue where Automatic Type Acquisition (ATA) did not work when the default TypeScript language server is selected.
Fixed an issue where the dependencies node in Node.js (.njsproj) projects showed indirect dependencies when packages are restored using npm 7 or greater.
Security Advisory
From Developer Community
Known Issues
See all open issues and available workarounds in Visual Studio 2022 by following the below links.
Visual Studio 2022
Следующий крупный выпуск Visual Studio будет более быстрым, доступным и легким, предназначенным как для учащихся, так и для тех, кто создает решения промышленного масштаба. Впервые Visual Studio будет 64-разрядной. Пользовательский интерфейс будет более чистым, интеллектуальным и ориентированным на действия.
Команды разработчиков стали более рассредоточенными географически, чем когда-либо. За последний год стало очевидно, что организациям нужны команды разработчиков для безопасного взаимодействия, более быстрого предоставления решений и постоянного повышения удовлетворенности конечных пользователей и повышения их ценности. Мы упрощаем совместную работу за счет улучшенной интеграции с GitHub, что упрощает переход от идеи к коду.
Visual Studio 2022: 64-bit
Visual Studio 2022 будет 64-битным приложением, которое больше не будет ограничено
4 ГБ памяти в основном процессе devenv.exe. С помощью 64-разрядной Visual Studio в Windows вы можете открывать, редактировать, запускать и отлаживать даже самые большие и сложные решения, не исчерпывая памяти.
Хотя Visual Studio переходит на 64-разрядную версию, это не меняет типы или разрядность приложений, которые вы создаете с помощью Visual Studio. Visual Studio по-прежнему будет отличным инструментом для создания 32-разрядных приложений.
Мне очень приятно смотреть это видео о масштабировании Visual Studio с целью использования дополнительной памяти, доступной для 64-разрядного процесса, поскольку открывается решение с 1600 проектами и
Мы также работаем над тем, чтобы сделать каждую часть вашего рабочего процесса быстрее и эффективнее, от загрузки решений до отладки F5.
Дизайн для всех
Обновленные значки для большей четкости, разборчивости и контрастности
Cascadia Code, новый шрифт фиксированной ширины для лучшей читаемости и поддержки лигатур. (Если хотите, можете попробовать Cascadia Code прямо сейчас!)
Обновленные и улучшенные темы продуктов
Персонализация
Как разработчики, мы понимаем, что персонализация вашей IDE так же важна, как и выбор рабочего стула. Мы должны сделать все «в самый раз», прежде чем сможем работать максимально продуктивно. Сделать Visual Studio 2022 «подходящей» для вас будет проще, чем когда-либо, от возможности настраивать аспекты IDE до синхронизации настроек между устройствами для тех, кто поддерживает несколько блоков разработки.
Создание современных приложений
Azure
Visual Studio 2022 позволит быстро и легко создавать современные облачные приложения с Azure. Мы поможем вам начать с большого количества репозиториев, описывающих общие шаблоны, используемые в современных приложениях. Эти репозитории состоят из кода, показывающего эти шаблоны в действии, ресурсов IAAC для предоставления ресурсов Azure, а также предварительно созданных рабочих процессов и действий GitHub, настраивающих вас с помощью полного решения CI/CD при первом создании проекта. Кроме того, в репозитории будет определена необходимая среда разработки, чтобы вы могли сразу приступить к кодингу и отладке.
.NET
С++
Visual Studio 2022 будет включать надежную поддержку рабочей нагрузки C++ с новыми функциями повышения производительности, инструментами C++ 20 и IntelliSense. Новые возможности языка C++ 20 упростят управление большими базами кода, а улучшенная диагностика упростит отладку сложных проблем с помощью шаблонов и концепций.
Мы также интегрируем поддержку CMake, Linux и WSL, чтобы упростить вам создание, редактирование, сборку и отладку кроссплатформенных приложений. Если вы хотите перейти на Visual Studio 2022, но беспокоитесь о совместимости, двоичная совместимость со средой выполнения C++ сделает это безболезненным.
Инновации
Диагностика и дебаггинг
Коллаборация в реальном времени
Live Share открывает новые возможности для сотрудничества с другими, обмена идеями, парного программирования и анализа кода. В Visual Studio 2022 Live Share появится интегрированный текстовый чат, чтобы вы могли быстро обсуждать свой код без каких-либо переключений контекста. У вас будет возможность запланировать повторяющиеся сеансы с повторным использованием одной и той же ссылки, что упростит совместную работу с вашими частыми контактами. Чтобы лучше поддерживать Live Share в организациях, мы также представим политики сеансов, которые определяют любые требования соответствия для совместной работы (например, должны ли терминалы чтения/записи быть общими?).
Инсайты и продуктивность
Подсистема AI IntelliCode в Visual Studio продолжает совершенствоваться, легко предвидя ваш следующий шаг. Visual Studio 2022 обеспечит все более глубокую интеграцию в ваши повседневные рабочие процессы, помогая вам предпринимать правильные действия в нужном месте в нужное время.
Асинхронная коллаборация
Улучшенный поиск кода
Обновление Visual Studio для Mac
Поделитесь с нами вашими мыслями
Мы показали вам лишь несколько основных моментов нашей незавершенной работы над Visual Studio 2022. Как всегда, вы можете перейти в новое сообщество разработчиков, чтобы просмотреть существующие запросы функций, проголосовать и комментировать или создать свои собственные.
Следите за новостями о доступности 64-разрядной версии Visual Studio 2022 Preview 1, которая будет включать наши улучшения пользовательского интерфейса и специальные возможности. (И помните! Как и любая другая работа, эти функции все еще находятся в разработке, поэтому некоторые из них появятся в Visual Studio 2022 после первого общедоступного выпуска.)
Visual Studio 2022 версии 17.3
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2022. Инструкции по установке и обновлению Visual Studio 2022 см. в документации по обновлению до последнего выпуска Visual Studio 2022. Кроме того, см. инструкции по установке в автономном режиме.
Предварительная версия не готова к выпуску, а также к использованию на рабочих компьютерах или созданию кода готовых программных продуктов. Дополнительные сведения см. в разделе Жизненный цикл и обслуживание продуктов Visual Studio.
Новые возможности Visual Studio 2022 версии 17.3
Блог Visual Studio 2022
Блог Visual Studio 2022 является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio 2022 можно найти в следующих записях:
Сообщество разработчиков предложения: Вы спросили, мы слушали!
Ознакомьтесь со списком ниже Сообщество разработчиков проблем, которые были устранены в Visual Studio 2022 версии 17.3
Выпущено 23 августа 2022 г.
Проблемы, устраненные в этом выпуске 17.3.2
От сообщества разработчиков
Выпущено 16 августа 2022 г.
Проблемы, устраненные в этом выпуске 17.3.1
От сообщества разработчиков
Выпущено 9 августа 2022 г.
Сводка новых средств в этом выпуске Visual Studio 2022 версии 17.3
Учетные записи разработчиков Apple
Эта предварительная версия включает начальную поддержку отдельных учетных записей AppStoreConnect, необходимых для разработчиков Apple, не являющихся корпоративными.
Звуковые подсказки в редакторе
Инструменты Git
Поддержка промежуточного хранения строк, или интерактивного промежуточного хранения с возможностью размещать определенные строки и (или) блоки кода прямо из редактора и представления инструмента сравнения. Чтобы приступить к работе, выполните одно из последних изменений, выбрав соответствующее поле цвета и используя пользовательский интерфейс «Показать разницу» для подготовки изменений.
C++
Отладка и диагностика
Общие
Установщик
Средства разработки Microsoft Teams (набор средств Teams)
В C# 10 мы представили глобальные использование. Global Usings добавляет использование в начало файла невидимо и автоматически. Теперь мы покажем значок в верхней части файла, чтобы сообщить вам, активны ли глобальные использование в файле, и если щелкнуть значок, отобразится то, что такое глобальное использование.
Теперь Peek Definition поддерживает исходный канал, внедренный источник и декомпилированные источники.
Мы добавили следующие три варианта свертывание и структурирование представлений при открытии файла:
Теперь у нас есть исправление кода, которое устраняет недопустимые ограничения. Поместите курсор на волнистую линию диагностики в редакторе. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Исправить ограничение.
Теперь у нас есть рефакторинг, позволяющий переключаться между операторами верхнего уровня и стилем Program.Main. Поместите курсор на оператор верхнего уровня. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Преобразовать в программу стиля Program.Main.
Мы добавили дополнительные области в операцию «Исправить все». Помимо применения операции «Исправить все» к документу, проекту и решению можно применить эту операцию к содержащему элементу и содержащему типу.
Теперь мы автоматически преобразуем однострочные комментарии в комментарии документации при добавлении дополнительной наклонной черты к однострочному комментарию.
Теперь у нас есть параметр стиля кода, который позволяет предупреждать о возможных исключениях в цикле foreach. Циклы foreach по своей архитектуре неявно приводятся к производным типам. Это было необходимо до появления универсальных шаблонов, однако в некоторых случаях может привести к исключениям в среде выполнения.
Персонализация
Эти функции включают перечисленные ниже.
Редактор Razor (ASP.NET Core)
Инструменты тестирования
Параллельное обнаружение теперь включено по умолчанию при выполнении тестов из обозревателя тестов. Это позволяет Visual Studio использовать доступные ядра для параллельного обнаружения тестов и сокращения времени для просмотра тестов в обозревателе тестов.
Окно Live Unit Testing теперь имеет строку состояния, аналогичную обозревателе тестов. Это должно дать более подробные сведения об операциях, выполняемых в Live Unit Testing, а также заметно поверхностных ошибках.
Vstest.console теперь поддерживает выполнение сборок разных целевых платформ и целевых платформ в одном запросе.
Теперь объем протестированного кода содержит кэш для статического инструментирования для повышения производительности.
Microsoft.CodeCoverage.Console теперь добавляется в программы командной строки.
Удаленное тестирование теперь поддерживает тестовые запуски в удаленных средах ARM64 Windows.
Новый интерфейс сборки для [Live Unit Testing] теперь включен по умолчанию. Дополнительные сведения см. в этой записи блога.
Теперь вы можете просмотреть сведения о покрытии кода в поле редактора, выбрав «Глифы полей» в окне «Результаты покрытия кода».
Live Unit Testing теперь предоставляет кнопку для сброса всего состояния. Перейдя к тестовой версии Live > Unit Testing > сброс состояния Live Unit Testing для решения.
Live Unit Testing теперь поддерживает файлы Razor.
Разработка TypeScript и JavaScript
Проекты файлов JavaScript и TypeScript теперь исключаются из анализа программ, если на них не ссылается файл tsconfig.json или jsconfig.json. Результат должен быть улучшен в больших проектах с большим количеством файлов TypeScript и JavaScript.
Проекты JavaScript (.esproj), на которые ссылается проект ASP.NET, теперь предоставляют возможность включить выходные данные сборки рабочей среды в публикацию проекта ASP.NET.
Новый многоцеловый отладчик JavaScript теперь используется по умолчанию в проектах Node.js (NJSPROJ).
Автоматическое закрытие HTML-тегов в файлах JavaScript и TypeScript React (.jsx/.tsx).
Исправлена проблема, из-за которой автоматическое получение типов (ATA) не работало при выборе сервера языка TypeScript по умолчанию.
Исправлена проблема, из-за которой узел зависимостей в проектах Node.js (.njsproj) показал косвенные зависимости при восстановлении пакетов с помощью npm 7 или более поздней версии.
Советы по безопасности
От сообщества разработчиков
Известные проблемы
Ознакомьтесь со всеми открытыми проблемами и доступными обходными решениями в Visual Studio 2022, следуя приведенным ниже ссылкам.
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Содержание:
В приведенных ниже списках…
Скачивание
Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2022. Инструкции по установке и обновлению Visual Studio 2022 см. в документации по обновлению до последнего выпуска Visual Studio 2022. Кроме того, см. инструкции по установке в автономном режиме.
Размер пакета установки зависит от текущей конфигурации Visual Studio.
Список служебных программ и средств разработки для Visual Studio 2022
Это «Список служебных программ», упоминаемый в разделе «Служебные программы» условий лицензионного соглашения на использование программного обеспечения корпорации Майкрософт для некоторых выпусков Visual Studio 2022 («программное обеспечение»). В зависимости от выпуска программного обеспечения полученное вами ПО может включать не все файлы из этого списка. Для определения своих прав в отношении следующих файлов обратитесь к условиям лицензии на использование Visual Studio, поставляемым с вашим выпуском программного обеспечения. Изменять эти файлы нельзя. Из-за особенностей своей работы некоторые служебные программы могут предоставлять другим пользователям доступ к устройствам, на которых они установлены. Вам следует удалить все установленные служебные программы после завершения отладки или развертывания приложений и баз данных.
Диагностические средства
Служебные программы Visual C++
«Список служебных программ» содержит следующие файлы во вложенных папках указанных каталогов:
Файлы распространяемого кода для Visual Studio 2022
В следующем разделе представлен список распространения, упоминаемый в разделе «Распространяемый код» в условиях лицензионного соглашения на использование программного обеспечения корпорации Майкрософт для Visual Studio Enterprise 2022, Visual Studio Professional 2022, Visual Studio Community 2022 («программное обеспечение»). Если у вас есть должным образом лицензированная копия такого программного обеспечения, то вы можете копировать и распространять со своей программой перечисленные ниже файлы в неизмененном виде в соответствии с условиями лицензионного соглашения на использование программного обеспечения.
Библиотеки ASP.NET
Microsoft Azure
Source
Объектный код
Конструкторы Blend и XAML для Visual Studio
Распространяемые файлы проекта Blend и шаблоны элементов для Visual Studio устанавливаются в следующие каталоги:
Blend для Visual Studio
Распространяемые файлы Blend для Visual Studio устанавливаются в следующие каталоги:
Примеры ресурсов данных
.NET Framework 4.6.2
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
Автономный установщик
Примечание. Оба файла идентичны, но в них могут использоваться различные имена для каналов распространения.
Языковые пакеты
Среда выполнения F#
ADO.NET
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
пакет SDK для доступа к интерфейсу отладки
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
Файлы среды выполнения Visual C++
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять в составе установочного пакета вашей программы в неизмененном виде следующие файлы:
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой любые файлы в перечисленных папках и подпапках, помимо указанных исключений. Изменять эти файлы нельзя.
Распространять содержимое перечисленных ниже папок нельзя. Описание допустимых вариантов использования в целях разработки или тестирования см. в списке служебных программ и средств сборки для Visual Studio 2022.
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять со своей программой следующие файлы в локальном каталоге программы или развернуть их в глобальный кэш сборок (GAC):
Универсальные приложения для Windows и приложения для Магазина Windows
Загрузка неопубликованных универсальных приложений для Windows
Вместе со своими универсальными приложениями для Windows, которые вы собираетесь загрузить неопубликованными, можно распространять в неизменном виде файлы AppX, содержащиеся в следующих расположениях:
Вместе со своими универсальными приложениями для Windows, которые вы собираетесь загрузить неопубликованными, можно распространять в неизменном виде файлы, содержащиеся в следующих расположениях:
Файлы средств для работы с базами данных SQL Server
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие DLL- и EXE-файлы в указанном каталоге:
Распространяемые компоненты SQL Server
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
Файлы служб данных WCF (Майкрософт)
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
Microsoft Visual Studio Tools for Office
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой следующие файлы:
Файлы распространяемого кода для пакета SDK визуализатора параллелизма
Согласно условиям лицензии на использование программного обеспечения, вы можете копировать и распространять вместе со своей программой в неизмененном виде следующие файлы:
Файлы распространяемого кода для разработки расширений Visual Studio
Это список распространения, упоминаемый в разделе «Распространяемый код» условий лицензионного соглашения на использование программного обеспечения корпорации Майкрософт для Visual Studio 2022 («программное обеспечение»). Если у вас есть должным образом лицензированная копия такого программного обеспечения, то вы можете копировать и распространять перечисленные ниже файлы с неизмененным объектным кодом в соответствии с условиями лицензионного соглашения на использование программного обеспечения.
Файлы распространяемого кода для разработки мобильных приложений с помощью Xamarin
Условия лицензии на использование программного обеспечения разрешают вам копировать и распространять вместе с приложением, созданным в Visual Studio или Visual Studio для Mac, объектный код следующих файлов (и связанных с ними файлов отладочных символов), размещаемых при установке во вложенных папках следующих каталогов:
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Visual Studio 2022 содержит множество новых замечательных функций и улучшений интегрированной среды разработки (IDE) для поддержки разработки приложений Windows, кроссплатформенной разработки для мобильных устройств, разработки для Azure, разработки облачных и веб-приложений и многого другого. Чтобы испытать Visual Studio 2022 в деле, перейдите на страницу загрузки Visual Studio 2022. Дополнительные сведения о нововведениях в этом выпуске см. в статьях Заметки о выпуске Visual Studio 2022 и Новые возможности Visual Studio 2022.
Установка
Вы можете установить и использовать Visual Studio 2022 вместе с предыдущими версиями Visual Studio, включая Visual Studio 2019, Visual Studio 2017, Visual Studio 2015 и Visual Studio 2013 и Visual Studio 2012.
Скачать
Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2022. Инструкции по установке и обновлению Visual Studio 2022 см. в документации по обновлению до последнего выпуска Visual Studio 2022. Кроме того, см. инструкции по установке в автономном режиме.
Примечание. Размер пакета установки зависит от текущей конфигурации Visual Studio.
Требования к системе
Требования к системе для установки и запуска семейства продуктов Visual Studio 2022 см. на странице требований к системе для Visual Studio 2022.
Обратная связь и поддержка
Чтобы получить поддержку или отправить отзыв о Visual Studio, см. сведения на следующих ресурсах.
Обновление проектов до Visual Studio 2022
При соблюдении поддерживаемых путей обновления ваши файлы исходного кода, решений и проектов Visual Studio будут продолжать работать; но вы должны быть готовы внести некоторые изменения в исходный код. Хотя мы не можем гарантировать совместимость между версиями на уровне двоичного кода, мы сделаем все возможное, чтобы задокументировать важные изменения, чтобы помочь вам с обновлениями.
Подробные сведения о переносе проектов в Visual Studio 2022 см. в статье Перенос, миграция и обновление проектов Visual Studio.
Целевая платформа
Visual Studio предоставляет современные инструменты и технологии для создания приложений с использованием возможностей новейших платформ, будь то Windows, Android, iOS или Linux. Visual Studio 2022 также поддерживает более ранние платформы, что позволяет создавать новые или модернизировать существующие приложения, выполняющиеся в более ранних версиях Windows, с использованием усовершенствованных инструментов разработки, функций контроля качества и возможностей для совместной работы в Visual Studio 2022. Дополнительные сведения см. в статьях Управление ссылками в проекте и Обзор многоплатформенного нацеливания Visual Studio.
Поддержка разработки для Windows в Visual Studio 2022
В следующей таблице описаны платформы Microsoft Windows, для которых можно создавать приложения с помощью Visual Studio 2022.
Создание приложений, работающих на клиентах Windows
Версия клиента Windows | Использование инструментов для разработки классических настольных приложений машинного и управляемого кода для Windows | Использование инструментов для разработки приложений UWP |
---|---|---|
Windows 11 Windows 10 | Да (см. примечания ниже) | Да (см. примечания ниже) |
Windows 10 Team Edition | Неприменимо | Да Требуется удаленная отладка. |
Windows 11 S Windows 10 S | Неприменимо | Да Требуется удаленная отладка. |
Windows 10 LTSC | Да Требуется удаленная отладка. | Да Требуется удаленная отладка. |
HoloLens | Нет | Да См. центр разработки для Windows Holographic. |
Xbox One | Неприменимо | Да См. центр разработки Xbox. |
Windows 8.1 | Да | Недоступно. Используйте Visual Studio 2015. |
Windows 8 (Windows 8) | Нет | Недоступно. |
Windows 7 | Да | Неприменимо |
Windows Vista | Нет | Неприменимо |
Windows XP | Нет | Неприменимо |
Создание приложений, работающих в Windows Phone
Версия Windows Phone | Использование инструментов для разработки классических настольных приложений машинного и управляемого кода для Windows | Использование инструментов для разработки приложений UWP |
---|---|---|
Windows 10 Mobile | Нет | Недоступно. Используйте Visual Studio 2017. |
Windows Phone 8.1 и 8.0 | Нет | Недоступно. Используйте Visual Studio 2015. |
Windows Phone 7.x | Нет | Недоступно. Используйте Visual Studio 2012. |
Создание приложений, работающих в Windows Server
Создание приложений, работающих на устройствах Windows Embedded
Версия Windows Embedded | Использование инструментов для разработки классических настольных приложений машинного и управляемого кода для Windows | Использование инструментов для разработки приложений UWP |
---|---|---|
Windows 10 IoT Базовая | Да, для подмножества интерфейсов API Win32 Подробные сведения см. в статье Инструмент переноса API для Windows 10 IoT Базовая. | Да Дополнительные инструменты и ресурсы см. в центре разработки Windows IoT. |
Windows 10 IoT Mobile Корпоративная | Нет | Да Дополнительные инструменты и ресурсы см. в центре разработки Windows IoT. |
Windows 10 IoT Корпоративная | Да Дополнительные инструменты и ресурсы см. в центре разработки Windows IoT»>. | Да Дополнительные инструменты и ресурсы см. в центре разработки Windows IoT. |
Windows Embedded 8 Standard и Windows Embedded 8.1 Industry | Да | Нет |
Windows Embedded Compact 2013 | Нет | Неприменимо |
Windows Embedded 7 (Compact, Standard и POSReady) | Нет | Неприменимо |
Windows Embedded CE 6.0 и более ранних версий | Нет | Неприменимо |
Windows XP Embedded (включая POSReady 2009, WES 2009, WEPOS) | Нет | Неприменимо |
Поддержка разработки для Android в Visual Studio 2022
Visual Studio 2022 позволяет создавать собственные приложения Android с использованием Xamarin и C# или с использованием C++. Набор средств Visual Studio для Unity и Unreal Engine позволяет разрабатывать игры для Android. Можно также использовать Visual Studio для Mac для создания приложений Android с помощью Mac.
Установка Visual Studio позволяет легко получить пакет SDK для Android и Android API уровней 25 (для разработки мобильных приложений с помощью C++) и 30. Можно отдельно загрузить дополнительные уровни API с помощью диспетчера Android SDK. Вы также можете использовать установку Visual Studio для получения Android Native Development Kit (R10E), Java SE Development Kit и Apache Ant.
Поддержка разработки для iOS в Visual Studio 2022
Visual Studio 2022 позволяет создавать и отлаживать приложения для iOS с помощью C++, Unity или Xamarin, используя remotebuild, vcremote, Инструменты Visual Studio для Unity или Xamarin Mac Agent на компьютерах Mac, настроенных для разработки для iOS. Xamarin поддерживает iOS 9 и более поздние версии, и для этой среды требуется Xcode 12.5 или более поздних версий и OS X 11.0 «Big Sur» или более поздних версий. Можно также использовать Visual Studio для Mac для создания приложений iOS с помощью Mac.
Поддержка разработки для Linux в Visual Studio 2022
Дополнительные сведения см. в разделе https://dot.net/core.
Поддержка разработки для macOS в Visual Studio 2022
Visual Studio 2022 позволяет создавать консольные приложения и приложения ASP.NET, предназначенные для macOS. Но отладка не поддерживается. В качестве дополнительных вариантов средств разработки для Mac OS попробуйте Visual Studio Code или Visual Studio для Mac. Visual Studio Code является упрощенным расширяемым редактором для Mac OS. Visual Studio для Mac представляет собой полнофункциональную интегрированную среду разработки для создания собственных приложений Mac OS, включая ASP.NET, с помощью C#.
Другие платформы и технологии
Visual Studio 2022 также поддерживает следующие платформы и технологии. Для получения дополнительной информации см. https://visualstudio.microsoft.com/vs/features/.
Совместимость с предыдущими версиями
.NET Framework
Team Explorer, Azure DevOps Server и Team Foundation Server
Team Explorer для Visual Studio 2022 подключается к Azure DevOps Server 2019, Team Foundation Server 2017, Team Foundation Server 2015, Team Foundation Server 2013, Team Foundation Server 2012 и Team Foundation Server 2010 с пакетом обновления 1 (SP1).
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
We update Visual Studio frequently to provide you with new features, performance and reliability improvements, security updates, and bug fixes.
With Visual Studio 2022, we make multiple feature versions available simultaneously so that our Enterprise and Professional customers have flexibility and control as to when they adopt feature updates. These different versions are available on the Current channel and the long-term servicing channels (LTSCs). The latest release on each channel is always, by definition, the most secure, so we highly encourage customers to stay up to date regardless of what channel they choose to get updates from. Refer to our support policy or our release rhythm documentation for additional information.
The Visual Studio Community edition is only supported on the Current channel using the latest version of Visual Studio.
Release Notes
Updating your installation to a specific release
If you are an Enterprise or Professional customer and need to install or update to a specific release of Visual Studio, you can find the available bootstrappers in the tables below. In addition to installing or updating your product to a particular version, the bootstrappers will also «stamp» your installation or layout with the correct channel identification. The channel identification is important, because it’s how Administrator updates recognize which instances of the product needs to be updated.
You also have the option of downloading the Administrator Update package from the Microsoft Update Catalog to update either your client instance or your network layout. Updating via this method only changes the version, not the channel. Additional instructions for how to create or maintain your network layout can be found in the Visual Studio Administrators Guide or the Update a network based installation of Visual Studio documentation.
Uninstalling Visual Studio to go back to an earlier release
If you need to install an earlier release of Visual Studio, then you must uninstall your current installation and use one of the links below to re-install the version that you prefer. Before attempting to install a previous version of Visual Studio 2022, refer to our support policy. Microsoft does not guarantee support outside of this policy.
If you are unable to follow the steps above due to a corrupted install, follow the steps to Remove Visual Studio with the InstallCleanup.exe tool
Release Dates and Build numbers
This section provides links to all of the publicly released bootstrappers for Visual Studio 2022. The bootstrappers kick off Visual Studio’s installation process. Again, only the latest releases of the Current or LTSC channels are supported.
To verify what version and channel a given bootstrapper will install, right click on the bootstrapper exe, choose Properties, Details, and look at the Product Version information. The version number should always be read as «latest of that version». The channel defaults to Current unless explicitly specified. So, a bootstrapper with a Product Version of LTSC 17.0 would install the latest 17.0.x servicing release that is available on the LTSC channel.
Evergreen bootstrappers
The bootstrappers in the following table will always install the latest release from their respective channel.
Channel | Version | Channel Bootstrappers | End of Support Date |
---|---|---|---|
Current | 17 | Enterprise Professional Build Tools Community | Jan 13, 2032 |
Spring 2022 LTSC | 17.2 | Enterprise Professional Build Tools | January 9, 2024 |
Fall 2021 LTSC | 17.0 | Enterprise Professional Build Tools | July 11, 2023 |
Fixed version bootstrappers
The bootstrappers in the following table will install the specific version from the specified channel.
Channel | Version | Release Date | Fixed-version Bootstrappers | Build Number |
---|---|---|---|---|
Current | 17.3.2 | August 23, 2022 | Enterprise Professional Build Tools | 17.3.32819.101 |
Current | 17.3.1 | August 16, 2022 | Enterprise Professional Build Tools | 17.3.32811.315 |
Current | 17.3.0 | August 9, 2022 | Enterprise Professional Build Tools | 17.3.32804.467 |
LTSC 17.2 | 17.2.7 | August 9, 2022 | Enterprise Professional Build Tools | 17.2.32802.462 |
Current | 17.2.7 | August 9, 2022 | Enterprise Professional Build Tools | 17.2.32802.462 |
LTSC 17.0 | 17.0.13 | August 9, 2022 | Enterprise Professional Build Tools | 17.0.32802.463 |
LTSC 17.2 | 17.2.6 | July 12, 2022 | Enterprise Professional Build Tools | 17.2.32630.192 |
Current | 17.2.6 | July 12, 2022 | Enterprise Professional Build Tools | 17.2.32630.192 |
LTSC 17.0 | 17.0.12 | July 12, 2022 | Enterprise Professional Build Tools | 17.0.32630.193 |
LTSC 17.2 | 17.2.5 | June 22, 2022 | Enterprise Professional Build Tools | 17.2.32616.157 |
Current | 17.2.5 | June 22, 2022 | Enterprise Professional Build Tools | 17.2.32616.157 |
LTSC 17.2 | 17.2.4 | June 14, 2022 | Enterprise Professional Build Tools | 17.2.32602.215 |
Current | 17.2.4 | June 14, 2022 | Enterprise Professional Build Tools | 17.2.32602.215 |
LTSC 17.0 | 17.0.11 | June 14, 2022 | Enterprise Professional Build Tools | 17.0.32602.201 |
LTSC 17.2 | 17.2.3 | May 31, 2022 | Enterprise Professional Build Tools | 17.2.32526.322 |
Current | 17.2.3 | May 31, 2022 | Enterprise Professional Build Tools | 17.2.32526.322 |
LTSC 17.2 | 17.2.2 | May 24, 2022 | Enterprise Professional Build Tools | 17.2.32519.379 |
Current | 17.2.2 | May 24, 2022 | Enterprise Professional Build Tools | 17.2.32519.379 |
LTSC 17.2 | 17.2.1 | May 17, 2022 | Enterprise Professional Build Tools | 17.2.32516.85 |
Current | 17.2.1 | May 17, 2022 | Enterprise Professional Build Tools | 17.2.32516.85 |
LTSC 17.2 | 17.2.0 | May 10, 2022 | Enterprise Professional Build Tools | 17.2.32505.173 |
Current | 17.2.0 | May 10, 2022 | Enterprise Professional Build Tools | 17.2.32505.173 |
Current | 17.1.7 | May 10, 2022 | Enterprise Professional Build Tools | 17.1.32428.221 |
LTSC 17.0 | 17.0.10 | May 10, 2022 | Enterprise Professional Build Tools | 17.0.32428.209 |
Current | 17.1.6 | April 26, 2022 | Enterprise Professional Build Tools | 17.1.32421.90 |
Current | 17.1.5 | April 19, 2022 | Enterprise Professional Build Tools | 17.1.32414.318 |
LTSC 17.0 | 17.0.9 | April 19, 2022 | Enterprise Professional Build Tools | 17.0.32417.34 |
Current | 17.1.4 | April 12, 2022 | Enterprise Professional Build Tools | 17.1.32407.343 |
LTSC 17.0 | 17.0.8 | April 12, 2022 | Enterprise Professional Build Tools | 17.0.32407.392 |
Current | 17.1.3 | March 31, 2022 | Enterprise Professional Build Tools | 17.1.32328.378 |
Current | 17.1.2 | March 22, 2022 | Enterprise Professional Build Tools | 17.1.32319.34 |
Current | 17.1.1 | March 8, 2022 | Enterprise Professional Build Tools | 17.1.32228.430 |
LTSC 17.0 | 17.0.7 | March 8, 2022 | Enterprise Professional Build Tools | 17.0.32228.444 |
Current | 17.1.0 | February 15, 2022 | Enterprise Professional Build Tools | 17.1.32210.238 |
LTSC 17.0 | 17.0.6 | February 8, 2022 | Enterprise Professional Build Tools | 17.0.32126.317 |
Current | 17.0.6 | February 8, 2022 | Enterprise Professional Build Tools | 17.0.32126.317 |
LTSC 17.0 | 17.0.5 | January 13, 2022 | Enterprise Professional Build Tools | 17.0.32112.339 |
Current | 17.0.5 | January 13, 2022 | Enterprise Professional Build Tools | 17.0.32112.339 |
LTSC 17.0 | 17.0.4 | December 16, 2021 | Enterprise Professional Build Tools | 17.0.32014.148 |
Current | 17.0.4 | December 16, 2021 | Enterprise Professional Build Tools | 17.0.32014.148 |
LTSC 17.0 | 17.0.3 | December 14, 2021 | Enterprise Professional Build Tools | 17.0.32002.185 |
Current | 17.0.3 | December 14, 2021 | Enterprise Professional Build Tools | 17.0.32002.185 |
LTSC 17.0 | 17.0.2 | November 30, 2021 | Enterprise Professional Build Tools | 17.0.31919.166 |
Current | 17.0.2 | November 30, 2021 | Enterprise Professional Build Tools | 17.0.31919.166 |
LTSC 17.0 | 17.0.1 | November 16, 2021 | Enterprise Professional Build Tools | 17.0.31912.275 |
Current | 17.0.1 | November 16, 2021 | Enterprise Professional Build Tools | 17.0.31912.275 |
LTSC 17.0 | 17.0.0 | November 8, 2021 | Enterprise Professional Build Tools | 17.0.31903.59 |
Current | 17.0.0 | November 8, 2021 | Enterprise Professional Build Tools | 17.0.31903.59 |
Feedback and Suggestions
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
On this Page
In the lists below.
Download
Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.
Visit the Visual Studio site to download other Visual Studio 2022 products.
Installation package size will vary depending on your current Visual Studio configuration.
List of Utilities and Build Tools for Visual Studio 2022
This is the «Utilities List» that is referenced in the «Utilities» section of Microsoft Software License Terms for certain editions of Visual Studio 2022 (the «software»). Depending on the specific edition of the software, the software you received may not include all of the files on this list. To determine your rights with respect to the following files, please refer to the Visual Studio License Terms that came with your edition of the software. You may not modify these files. Some Utilities by their nature may make it possible for others to access the devices on which the Utilities are installed. You should delete all Utilities you have installed after you finish debugging or deploying your applications and databases
Diagnostic Tools
Visual C++ Utilities
The «Utilities List» includes the following files within the subfolders of the directories specified:
Distributable Code Files for Visual Studio 2022
The following section is the «REDIST list» that is referenced in the «Distributable Code» section of the Microsoft Software License Terms for Visual Studio Enterprise 2022, Visual Studio Professional 2022, Visual Studio Community 2022 («the software»). If you have a validly licensed copy of such software, you may copy and distribute with your program the unmodified form of the files listed below, subject to the License Terms for the software.
ASP.NET Libraries
Microsoft Azure
Source
Object Code
Blend and XAML Designers for Visual Studio
Redistributable files for Blend Project and Item Templates for Visual Studio are installed in the following locations:
Blend for Visual Studio
Redistributable files for Blend for Visual Studio are installed in the following locations:
Sample Data Resources
.NET Framework 4.6.2
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
Offline Installer
Note: Both files are identical but may use different names for different distribution channels.
Language Packs
F# Runtime
ADO.NET
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
DIA SDK
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
Visual C++ Runtime Files
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, as a part of the installation package of your program:
Subject to the License Terms for the software, you may copy and distribute with your program any of the files within the following folder and its subfolders except as noted below. You may not modify these files.
You may not distribute the contents of the following folders (please see List of Utilities and Build Tools for Visual Studio 2022 for allowed usage for development/testing purposes):
Subject to the License Terms for the software, you may copy and distribute the following files with your program in your program’s application local folder or by deploying them into the Global Assembly Cache (GAC):
Universal Windows Apps and Windows Store Apps
Side-loading of Universal Windows Apps
The AppX files contained in the following locations may be distributed unmodified with your Universal Windows apps that you intend to side-load:
The files contained in the following locations may be distributed unmodified with your Universal Windows apps that you intend to side-load:
SQL Server Database Tooling files
SQL Server Redistributable Components
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
Microsoft WCF Data Services files
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
Microsoft Visual Studio Tools for Office
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
Subject to the License Terms for the software, you may copy and distribute the following files with your program:
Distributable Code Files for the Concurrency Visualizer Software Development Kit
Subject to the License Terms for the software, you may copy and distribute the following files, unmodified, with your program:
Distributable Code Files for Visual Studio extension development
This is the «REDIST list» that is referenced in the «Distributable Code» section of the Microsoft Software License Terms for Visual Studio 2022 («the software»). If you have a validly licensed copy of the software, you may copy and distribute the unmodified object code form of the files listed below, subject to the License Terms for the software.
Distributable Code Files for Mobile Development with Xamarin
Subject to the License Terms for the software, you may copy and distribute with your application built using Visual Studio or Visual Studio for Mac the object code form of the following files (and associated debug symbol files) as installed within subfolders of the following directories:
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
Visual Studio 2022 version 17.1
Support Timeframe
This version is now out of support. For more information about Visual Studio supported baselines, please review the Support Policy for Visual Studio 2022.
Refer to the latest version of the release notes or visit the Visual Studio site to download the latest version of Visual Studio 2022.
Visual Studio 2022 version 17.1 Releases
Visual Studio 2022 Blog
The Visual Studio 2022 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 releases in the following posts:
Visual Studio 2022 Archived Release Notes
released May 10, 2022
Issues Addressed in this release of 17.1.7
From Developer Community
Security Advisory Notice
CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
released April 26, 2022
Issues Addressed in this release of 17.1.6
From Developer Community
released April 19, 2022
Issues Addressed in this release of 17.1.5
From Developer Community
released April 12, 2022
As a result of the update to the version of Git in Visual Studio to address security vulnerability CVE-2022-24765, certain Git users may encounter an error preventing Git repos from showing up in Visual Studio.
Users that have cloned or created a Repo as Admin user and then tried to view or consume it as non-admin may be affected by this issue. If you’re running into this problem and trust the repo you’re trying to open, you can add it to the list of safe directories by running the following command from a Command Prompt, PowerShell, or terminal with access to Git for Windows:
You can find the full details and keep track of the issue for updates on Developer Community.
Issues Addressed in this release of 17.1.4
Known Issues
From Developer Community
Security Advisory Notice
CVE-2022-24765 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists in Git for Windows, in which Git operations could run outside a repository while seraching for a Git directory. Git for Windows is now updated to version 2.35.2.1.
CVE-2022-24767 DLL hijacking vulnerability A potential DLL hijacking vulnerability exists in Git for Windows installer, when running the uninstaller under the SYSTEM user account. Git for Windows is now updated to version 2.35.2.1.
CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
released March 31, 2022
Issues Addressed in this release of 17.1.3
Known Issues
From Developer Community
released March 22, 2022
Issues Addressed in this release of 17.1.2
From Developer Community
released March 8, 2022
Issues Addressed in this release of 17.1.1
From Developer Community
Security Advisory Notice
CVE-2021-3711 OpenSSL Buffer Overflow vulnerability A potential buffer overflow vulnerability exists in OpenSSL, which is consumed by Git for Windows. Git for Windows is now updated to version 2.35.1.2, which addresses this issue.
released February 15, 2022
Summary of What’s New in this Release of Visual Studio 2022 Version 17.1.0
C++
Debugging & Diagnostics
Editor
Git Tooling
IDE
Installation and Updates
Microsoft Azure App Services Attach to Process
Microsoft Teams developer tools
.NET Productivity
There is now IntelliSense completion for await within an awaitable expression. Start typing an awaitable expression and notice how await will now show up in the completion list.
There is now a refactoring to simplify code to use the new C# 10.0 extended property patterns. Using extended property patterns reduces noise allowing you to reference nested members instead of nesting another recursive pattern. Place your cursor on a nested member reference. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Simplify property pattern.
There is now a refactoring that detects variable swaps and suggests using a tuple to swap values so instead of using a temporary variable in-order to swap arguments you can use a tuple. Place your cursor on a temporary variable assignment where you are swapping values. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Use tuple to swap values.
The Code Definition Window now supports C# and Visual Basic. To use the Code Definition Window, either press (Ctrl+W,D) or select View > Code Definition Window. Next, place your cursor on an identifier to navigate and explore code.
Signature Help has improved its display when a tuple appears many times within a signature. The simplified view includes the Structural Type key to show you what is contained in the tuple.
You can now understand errors and warnings at a glance without needing to hover your cursor over a line of code with Inline Diagnostics. Inline Diagnostics is disabled by default so you will need to enable it in Tools > Options > Text Editor > C# or Basic > Advanced and select Display diagnostics inline (experimental).
We now surface embedded source and Source Link as part of Go to Definition if a referenced assembly has embedded source or Source Link. This allows you to navigate to the original source files that declare the target symbol. Place your cursor on a symbol and press F12 to navigate to the original source file.
There is now a Stack Trace Explorer Window that displays stack traces from the clipboard allowing you to click and navigate directly to the related code. By default, if you copy a stack trace from your solution and then switch focus to the Stack Trace Explorer window, the stack trace will automatically appear. To open the Stack Trace Explorer window, go to View > Other Windows and select Stack Trace Explorer.
Thank You
.NET Hot Reload
Performance
Razor (ASP.NET Core) Editor
Solution Filters
Test tools
Web Tools
XAML Hot Reload
XAML Live Preview
In this release we have made several improvements to XAML Live Preview, changes include:
Ruler Changes: Rulers now properly display the pixels indicator right-to-left or left-to-right based on your applications configuration. Element Selection Changes: Using the “select element” feature within XAML Live Preview will now always navigate to source. Previously this was a configurable option, but it has been removed in this release and the behavior standardized to avoid confusion. Zooming Improvements: Zooming dropdown now supports automatic “fit all”, “fit width” or “fit height” to make zooming into those scenarios easier. You can also still use the regular percentage zooming or scroll wheel alongside this new capability.
Issues addressed in 17.1
From Developer Community
Known Issues
See all open issues and available workarounds in Visual Studio 2022 by following the below link.
Feedback and suggestions
Blogs
Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
Visual Studio 2022 version 17.0
Support Timeframe
Enterprise and Professional users of Visual Studio 2022 version 17.0 who are configured to receive updates on the 17.0 LTSC channel are supported and will receive fixes to security vulnerabilities through July 2023. For more information about Visual Studio supported baselines, please review the Support Policy for Visual Studio 2022.
Click one of the buttons below to download the most secure release of Visual Studio 2022 version 17.0 from the 17.0 LTSC channel. Additional 17.0 LTSC products can be found on the Visual Studio Subscriptions site.
Visit the Visual Studio site to access links for the most current versions of the Visual Studio 2022 products. For instructions on installing and updating Visual Studio 2022, refer to Update Visual Studio 2022 to the most recent release. The Visual Studio Administrator’s Guide contains guidance for how to deploy Visual Studio across your organization.
The Visual Studio Community edition is supported only on the Current Channel with the latest servicing release of the latest minor version of Visual Studio. You can install the latest release of Visual Studio Community from visualstudio.microsoft.com/downloads or my.visualstudio.com
Visual Studio 2022 version 17.0 Releases
Visual Studio 2022 Blog
The Visual Studio 2022 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 releases in the following posts:
released August 9, 2022
Issues Addressed in this release of 17.0.13
Security Advisory Notice
released July 12, 2022
Issues Addressed in this release of 17.0.12
Security Advisory Notice
released June 14, 2022
Issues Addressed in this release of 17.0.11
From Developer Community
Security Advisory Notice
released May 10, 2022
Issues Addressed in this release of 17.0.10
From Developer Community
Security Advisory Notice
CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
released April 19, 2022
Issues Addressed in this release of 17.0.9
released April 12, 2022
Issues Addressed in this release of 17.0.8
From Developer Community
Security Advisory Notice
CVE-2022-24765 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists in Git for Windows, in which Git operations could run outside a repository while seraching for a Git directory. Git for Windows is now updated to version 2.35.2.1.
CVE-2022-24767 DLL hijacking vulnerability A potential DLL hijacking vulnerability exists in Git for Windows installer, when running the uninstaller under the SYSTEM user account. Git for Windows is now updated to version 2.35.2.1.
CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
released March 8, 2022
Issues Addressed in this release of 17.0.7
From Developer Community
Security Advisory Notice
CVE-2021-3711 OpenSSL Buffer Overflow vulnerability A potential buffer overflow vulnerability exists in OpenSSL, which is consumed by Git for Windows. Git for Windows is now updated to version 2.35.1.2, which addresses this issue.
released February 8, 2022
Issues Addressed in this release of 17.0.6
Security Advisory Notice
released January 13, 2022
Issues Addressed in this release of 17.0.5
released December 16, 2021
Issues Addressed in this release of 17.0.4
released December 14, 2021
Issues Addressed in this release of 17.0.3
Bidirectional text control character rendering
To prevent a potentially malicious exploit that allows code to be misrepresented, the Visual Studio editor will no longer allow bidirectional text control characters to manipulate the order of characters on the editing surface. A new option will cause these bidirectional text control characters to be shown with placeholders. The bidirectional text control characters will still be present in the code as this behavior only impacts what is rendered in the code editor.
This functionality is controlled in Tools\Options. Under the Text Editor\General page there is an option for “Show bidirectional text control characters”, which will be checked by default. When checked, all bidirectional text control characters will be rendered as placeholders. Unchecking the option will revert to the previous behavior where these characters are not rendered.
A Unicode character is considered a bidirectional text control character if it falls into any of the following ranges: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.
From Developer Community
Security Advisory notice
CVE-2021-42574 Bidirectional Text Vulnerability Bidirectional text control characters can be used to cause code to be rendered in the editor differently from what is contained on disk.
released November 30, 2021
Issues Addressed in this release of 17.0.2
From Developer Community
released November 16, 2021
Issues Addressed in this release of 17.0.1
From Developer Community
released November 08, 2021
Summary of What’s New in this Release of Visual Studio 2022 version 17.0.0
64-bit
Azure Cloud Services
Personalization
Cloud Services
Git Tooling
Help Menu
For more details see the above link
IntelliCode
JavaScript/TypeScript
.NET 6 SDK
Toolbox population for UWP Extension SDKs
Updates, LTSC’s and Deployment
Web Tools
For more information click on the link above.
XAML Sample Data
For more information click on the link above.
Known Issues
Python Tooling
C++ IntelliSense
Details of What’s New in this Release of Visual Studio 2022 version 17.0.0
Debugging & Diagnostics

Dependent Breakpoint
This is new breakpoint that lets user to configure a breakpoint to be enabled only if another breakpoint is first hit. When debugging, Visual Studio debugger will only pause application on the Dependent breakpoint if the prerequisite breakpoint is hit. You can convert any breakpoint to Dependent breakpoint by enabling «Only enable when followwing breakpoint is hit» checkbox from the settings window and selecting the prerequisite breakpoint from dropdown on which you want your configure your Dependent breakpoint.
Breakpoint Gutter improvements
We added new breakpoint glyph to indicate location where the user can set a breakpoint.
Right click on that breakpoint glyph will give new context menu with options; which gives a quick way to create advance breakpoints(Conditional breakpoint, Tracepoint and Temporary breakpoint) in fewer clicks.
Temporary Breakpoint
This is new breakpoint that lets user break the code only once. When debugging, Visual Studio debugger will only pause application runtime once for this breakpoint and removes it immediately after it has been hit. You can convert any breakpoint to temporary breakpoint by enabling «Remove breakpoint once hit» checkbox from the settings window. Alternatively, you can use the new right click context menu from the breakpoint gutter to set this breakpoint.
Drag and Drop Breakpoint
We have added the drag and drop gesture for the breakpoints. You can now hold your breakpoint and released on the desired line of code to move the breakpoint from one location to another. It works for our advance breakpoint as long as the actions/condition variables are within the context.
External Sources Node in Solution Explorer
We added a new «External Sources» node in Solution explorer. This will currently only appear while debugging and will show sources for managed modules with symbols loaded that contain Source Server or Source Link info. While debugging, any loaded managed symbol file (.pdb) that has Source Server information present will appear under this node. You can browse for files like any other solution explorer folder or double-click an item to download the file from Source Server and open it in the VS Editor.
Attach to process Dialog Improvements
Memory Dump Diagnostic Analysis
Finding the root call frames when a Stack Overflow Exception occurs can be difficult and time consuming. Our latest analyzers presents a convenient view of the Call Stack and removes repetititive and noisy frames for faster problem analysis.
Personalization
Convert VS Code Themes to Visual Studio Themes
We’ve created a Theme Converter tool that can convert VS Code themes to work in Visual Studio. Try it here.
New Visual Studio Theme Pack
The default VS Code themes are now available as a Visual Studio Theme Pack. Take a look at the theme pack here.
Sync Theme to Windows OS
We added the capability to sync your Visual Studio theme to your Windows theme, so that your theme can adjust based on the amount of ambient light available. To enable this, navigate to Tools > Theme > Use System Setting.
Color Tabs
To enable color tabs, navigate to Tools > Options > Tabs & Windows, and enable Colorize Tabs.
Editor
Subword navigation
Ctrl+Alt+Left Arrow and Ctrl+Alt+Right Arrow will now navigate by subword. For instance, the string «HelloWorld» identifies «Hello» and «World» as subwords. Enabling Subword navigation in Tools > Options > Text Editor > General will cause word related commands (e.g. TransposeWord) to interact with subwords.
Autosave
Under Tools > Options > Environment > Preview Features, autosave is now available. If enabled, when the Visual Studio application loses focus (e.g. another window gets focus), all dirty documents will be saved to disc if possible. If any file cannot be saved, it will remain dirty until the user explicitly saves it (with the Save or Save As. commands).
Multi-caret copy\paste experience
We improved the multi-caret copy and paste experience. Previously, pasting multiple lines into multiple carets resulted in the entire clipboard being duplicated at each caret. Now, pasting multiple lines into the same number of carets will insert each line to a respective caret. To use multi-caret press Alt+Shift+mouse click or Alt+Shift+. and use Ctrl+Shift+arrow key to expand selections. Next, press Ctrl+C to copy the text in multiple selections. Use Alt+Shift+mouse click to create multiple carets for each line that you would like to paste in desired locations. Finally, press Ctrl+V to paste each line at its own caret.
Additionally, you can use Alt+Shift+up or down arrow key or Alt+Shift+mouse drag to select with multiple carets. Previously, these gestures created box selection. Now, box selection transforms into multiple carets. This method is easier and faster than having to click in precise locations to insert individual carets. If you prefer to keep using box selection with Alt+Shift+arrow keys and Alt+Shift+mouse drag when expanding multi caret selection go to Tools > Options > Text Editor > Advanced and select Use box selection.
Extensibility
The Microsoft.VisualStudio.LanguageServer.Client is introducing a new way to customize notifications when a language client fails to initialize.
The initialization task will now be tracked by the Task Status Center (TSC). If the initialization task fails, users may go to the TSC get more info on what went wrong. Language clients will now be able to customize the message shown to the user providing information on what this failure represent to them and possible actions to take to fix it. In order to do so we are introducing a new set of APIs in the ILanguageClient interface. These new APIs would cause a breaking change in the ILanguageClient interface, so language extensions will require to reference the new package in order to work in Visual Studio 2022.
The following are the new APIs:
Recommendation is to set this property to true only if the failure drastically affects the user experience for the project they are currently working on.
JavaScript/TypeScript
There is now support for a new JavaScript/TypeScript project type that allows you to create standalone Angular, React and Vue projects in Visual Studio. The projects will be created using the framework cli tools you have installed on your local machine. This also means that the template version is based on the cli versions you have on your local machine.
Within these new projects, you will be able to run unit tests and integrate them with ASP.NET Core API projects. Documentation can be found here
We accomplish this by making it possible for you to edit your applications code files and apply those code changes immediately to the running application, also known as “Hot Reload”. Once those changes are applied, simply re-execute your code again by taking an action in the app itself (or through some sort of timer, etc.) and see the changes immediately, no pausing of the app through breakpoints required!
If you want to see some live demos of this feature you can check out one of these videos:
Hot Reload User Experience in Visual Studio
The first thing you will notice is the new drop-down style button with a new icon. The command is renamed from “apply code changes” (from early previews) to “Hot Reload”.
Expanding the buttons reveals quick access to features such as restart running application(s), an opt-in toggle for Hot Reload on save, and quick access to the new settings panel.
Here are more details on each of the new features:
This new dialog has multiple improvements such as:
The dialog also lets you continue editing if you don’t want to take any automated action as was previously possible.
There is one known limitation, this new dialog won’t be available in the GA release when using the debugger, but the work to make it available in this scenario will be completed in a future update.
Support for C++ apps
When using Visual Studio 2022 and starting your app with the debugger It is now possible to Hot Reload a native C++ application when running under the debugger (F5) using the вЂHot Reload’ button. Hot Reload is also supported for apps built using CMake and OpenFolder projects.
This experience is powered by native Edit and Continue, for supported edits see our documentation.
Below we’ll expand on the above summary and dive into more details.
This means that even projects such as Azure Functions will work great in this scenario. We encourage you to try your combination and let us know if you find any problems.
*WinUI 3 by default uses mixed mode debugging which does not support Hot Reload. You can modify this in project settings by enabling the Managed Debugger which will enable Hot Reload to work properly.
Also be aware that not all project types will be supported for the “no debugger” scenario in our first release. Specifically:
Highlights of what is supported:
*In Visual Studio 2022 GA release Hot Reload support for Blazor WebAssembly when using the Visual Studio debugger isn’t enabled yet. You can still get Hot Reload If you start your app through Visual Studio without the debugger, and we are working to resolve this in a future Visual Studio update.
Supported ASP.NET Core Scenarios
Note: When working on a Blazor Wasm app and using Visual Studio 2022 (17.0), Hot Reload for razor pages only works when launching apps without the debugger. We will be adding debugger support in a future update.
The above improvements are available to both Hot Reload and the Edit and Continue experiences.
Additional Updates
Even in the final release there will still be some unsupported scenarios that you should be aware of:
.NET Productivity
The sync namespaces refactoring is now available in the (right-click) menu of a project or folder in Solution Explorer, allowing you to easily synchronize namespaces to match your folder structure.
Background code analysis configuration is now available in the Solution Explorer (right-click) menu. Right click on the solution node in Solution Explorer and select Analyze and Code Cleanup. Next, select Set Analysis Scope to configure the scope for background code analysis.
C# Language Tooling
In C# 10.0 we are introducing File-scoped namespace giving you the option to not nest class definitions within a namespace. We now have a refactoring to convert a namespace to a file-scoped namespace. In-order to use file-scoped namespace you will first need to add the preview element to your project file. Next, place your cursor on a namespace. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Convert to file-scoped namespace.
There is now a refactoring to prefer is not null over is object when applied to value types. To use this new refactoring place your cursor on a type check. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Prefer null check over type check.
Navigate to decompiled sources
Navigate to Decompiled Sources in now on by default allowing you to navigate to declarations of library types. Navigate to Decompiled Sources is available when you invoke Go to Definition on a library symbol in your source code and on decompiled sources.
Editor Enhancements
XML comments will now automatically generate an tag within a tag allowing you to add a description when a method explicitly throws exceptions.
In Visual Studio 2019 we released Inheritance Margin which adds icons to the margins representing your code’s implementations and overrides. Clicking on the inheritance margin icons will display inheritance options that you can select to navigate to. In this release Inheritance Margin is enabled by default. To disable Inheritance Margin go to Tools > Options > Text Editor > C# or Basic > Advanced and deselect Enable Inheritance Margin.
Programming Languages
C# 10
Razor (ASP.NET Core) Editor
We made significant improvements to performance to the Razor Editor.
We enhanced formatting and indentation making it more reliable and significantly faster.
We added new Razor colors! You can customize these colors in Tools > Options > Environment > Fonts and Colors.
TagHelpers are now colorized and have classification support in Quick Info and IntelliSense completion tooltips.
We enhanced the angle branch highlighting and navigation for Razor constructs.
Comments now have auto-completion, smart indentation, auto-inclusion of commenting continuations, and block comment navigation.
Remote Testing Early Experimental Preview
We have a very early experimental preview of enabling running tests on remote environments such as linux containers, WSL, and over SSH connections! While this is a very valuable capability, we ask for your patience as this feature is still in a very early experimental state as we collect feedback. You may not experience the smoothness you normally get as you may imagine there are a lot of corner scenarios in how we can communicate and manage a connected environment from Visual Studio. Here are some requirements for using this experimental version of remote testing:
How can I try out remote testing?
You can now run and debug your tests inside the remote environment!
The Test Explorer may prompt you to install some missing environment prerequisites and attempt to install them, but ultimately, we are leaving the bulk of the provisioning of the remote environment up to the user’s specification.
Hot Reload in Test Explorer [experimental]: It is now possible to try a new experimental feature that speeds up your test experience using Hot Reload technology behind the scenes. What this means is that after your first test run where a full build is still required, you can then make minor changes, run your tests, and all those updates will be reflected without having to do a full build again. To get started and learn more caveats see the details below:
Options > Test.» data-linktype=»relative-path»/>
When this option is enabled, your tests are being updated even with unsaved changes in the editor. We aren’t building, so the binaries on your disk in your bin folder are stale. This means you may see discrepancies between what is on disk and your test results in Visual Studio. To resolve these and before you check in, make sure you do a full build with (Ctrl+Shift+B). Any explicit build will replace the hot reload test results with the regular full-build test results.
There are certain types of edits that hot reload can’t pick up and in those cases, it will default back to the old behavior of doing a full build. Please also note that only changes in Visual Studio are being tracked, opaque cases in the editor such as changing targets may default back to requiring a full build.
Certain large changes (like renaming 1000+ method names) may take longer to hot reload than simply re-building. In these cases, a message will be printed in output prompting users to do a full rebuild rather than waiting for hot reload.
Stack traces are not yet available with hot reload in the Test Explorer. If you need to use the stack trace, we advise you to do a full build.
Test tools
Show in Test Explorer (Ctrl+E,S): Show in Test Explorer is the ability to jump from where your cursor is in a test method in the editor to where the test is in the Test Explorer. This may remind you of a similar feature called Sync with Active Document that keeps the document you are currently working in highlighted in the Solution Explorer. This was one of the top voted items on Developer community so thank you to all who voted and helped us prioritize this feature! Show in Test Explorer is also available from the editor right-click menu, CodeLens test glyph, and the right-click in the Solution Explorer.
Web Load Test and Coded UI Test support update: The Web Load test recorder is available in Visual Studio 2022. The Coded UI Test recorder won’t be included in Visual Studio 2022. You will still be able to run Coded UI tests and create new tests by writing code in Visual Studio 2022, but the recorder relies on 32bit dependencies that aren’t feasible to port. You can still install Visual Studio 2019 side-by-side to use the Coded UI recorder. As a reminder, Web Load Test and Coded UI Test were deprecated in 2019 and we do plan to remove them from the product when we can minimize the impact to users. We highly encourage users interested in web UI testing to adopt the new cross-platform and open source web testing framework Playwright. In addition to supporting all major browsers and much better handling of asynchronous code, Playwright also has test recording functionality built-in.
Trusted Locations
Before content (e.g., solution, project, file or folder) is opened inside the IDE, we’ll verify if the folder location has been previously trusted.
If untrusted code is detected, we’ll show a warning dialog alerting you of the security implications and asking you to trust the code before normal IDE operation.
Note: While this feature is currently turned off by default, it can be enabled via Options > Trust Settings > Requre a trust decision before opening content
External Sources Node updates
The External Sources node in Solution explorer now also has C++ support. Additionally, we have added a new sub-node which give you all the modules with symbols are not yet loaded.
You can also use the right click context menu to load the symbols directly from the solution explorer so that the modules can appear in the external source nodes. The files the External Sources node are also sorted alphabetically now.
Updated and refreshed iconography
XAML Hot Reload
We’ve also streamlined the settings pane to better organize common options together.
XAML Live Preview
XAML Live Preview is now available for WPF, UWP, WinUI and Xamarin.Forms developers running their apps in either Android Emulator or as a UWP desktop app. Live Preview captures a running applications user interface and brings it into a docked window within Visual Studio. This makes it easier to use XAML Hot Reload to change the app while seeing those changes inside Visual Studio itself, without the need to tab back and forth between the running app and Visual Studio while making live XAML code changes.
Once the experience is started the following features will be available:
Improved XAML binding experience
Top Voted Issues From Developer Community
Known Issues
See all open issues and available workarounds in Visual Studio 2022 by following the below link.
Feedback and suggestions
Blogs
Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.
The Visual Studio Code Server
July 7, 2022 by Brigit Murtaugh, @BrigitMurtaugh
A remote present and future
In 2019, we released the Remote Development extensions, which let you use VS Code locally to develop applications «remotely» on the Windows Subsystem for Linux (WSL), in Docker containers, and on remote physical or virtual machines you manage over SSH. In 2020, we took another step forward with remote development with GitHub Codespaces, which let you use VS Code locally or in a browser to develop applications on a remote virtual machine that is hosted and managed in the cloud for you.
We can do this because VS Code is, by design, a multi-process application. Conceptually, the front end (where you type your code) runs in one process and a backend service (which hosts extensions, the terminal, debugging, etc.) runs in a separate process.
Today we are releasing a private preview of the backend service that makes this all possible, the «VS Code Server,» along with a CLI that makes it easy to install, update, manage, and connect to the service. You can install the server wherever you like (a local development machine, a VM in the cloud, etc.) and access it securely through the browser using VS Code for the Web (also known as vscode.dev), without the hassle of setting up SSH or https (although you can do that if you want as well 😊).
Getting started
As the service that you use to securely connect to the VS Code Server is in private preview, you’ll need to request access through a signup form. You’ll receive an email, hopefully only within a few weeks, once you can start using the service.
At that point, here are step-by-step instructions to quickly get up and running:
Install the VS Code Server on your remote machine (or wherever you want to develop against).
Note: There are different install commands for different remote architectures, which you can review in the server documentation. This post will set up the VS Code Server in a Windows Subsystem for Linux (WSL) instance, which provides a true, isolated Linux environment on Windows and can serve as our «remote», isolated machine.
Run the following command in a WSL terminal:
Start the VS Code Server by running the following command in your WSL terminal:
Your WSL distro will communicate with vscode.dev through a secure tunnel, which allows you to connect to your computer from vscode.dev, no matter what network you’re on.
You’ll be provided a device code and URL to authenticate your GitHub account into the VS Code Server’s secure tunneling service.
Authenticate into the tunneling service by entering the device code at the provided auth URL.
If this is your first time launching the VS Code Server from this WSL instance, you’ll be prompted to enter a name for your connection. The CLI will suggest a fun default «adjective-noun» name (examples shown below), which you can choose to accept too.
After authenticating and providing a machine name, the CLI spins up a server instance and generates a vscode.dev URL. To connect to your WSL instance, you can open this URL on any device.
Note: You can also connect to your WSL instance directly from vscode.dev: Open the Command Palette ( F1 ) in vscode.dev and run the command Remote Server: Connect to Remote.
Congratulations, you’ve successfully installed and run the VS Code Server! The connection is fully established once you visit the generated vscode.dev link. Your WSL distro’s files should be present in the VS Code Explorer, and you can start coding against it from vscode.dev.
A preview of a larger journey
We’re excited for you to try out the VS Code Server. You can learn more about it, including the architecture, other commands, implementation details, and scenarios, in its documentation and intro video. If you have any issues or feedback, please file an issue in the VS Code Remote Development GitHub repo, and you can Tweet us your thoughts @code.
Code editing. Redefined.
Free. Built on open source. Runs everywhere.
By using VS Code, you agree to its license and privacy statement.
Meet IntelliSense.
Go beyond syntax highlighting and autocomplete with IntelliSense, which provides smart completions based on variable types, function definitions, and imported modules.
Print statement debugging is a thing of the past.
Debug code right from the editor. Launch or attach to your running apps and debug with break points, call stacks, and an interactive console.
Git commands built-in.
Working with Git and other SCM providers has never been easier. Review diffs, stage files, and make commits right from the editor. Push and pull from any hosted SCM service.
Extensible and customizable.
Want even more features? Install extensions to add new languages, themes, debuggers, and to connect to additional services. Extensions run in separate processes, ensuring they won’t slow down your editor. Learn more about extensions.
Deploy with confidence and ease
With Microsoft Azure you can deploy and host your React, Angular, Vue, Node, Python (and more!) sites, store and query relational and document based data, and scale with serverless computing, all with ease, all from within VS Code.
VS Code for
Want new features sooner?
Use vscode.dev for quick edits online!
GitHub, Azure Repos, and local files.
License and Privacy Terms
By downloading and using Visual Studio Code, you agree to the license terms and privacy statement. VS Code automatically sends telemetry data and crash dumps to help us improve the product. If you would prefer not to have this data sent please go see How to Disable Crash Reporting to learn how to disable it.
Bringing Code Cleanup on Save To Visual Studio 2022 17.1 Preview 2
Starting in Visual Studio 2022 17.1 Preview 2, developers can now perform Code Cleanup automatically when a file is being saved! Code Cleanup automatically on Save is a new feature integrated into Visual Studio 2022 that can clean up your code file to make sure it is formatted correctly and that your coding style preferences are applied. Some customizable preferences include: format document, sort usings, remove unnecessary usings, and more. This feature can help minimize stylistic violations within PRs and more to allow developers to spend less time fixing code not meeting specific standards and more time doing what they do best. To give it code cleanup on save a try, download Visual Studio 2022 Preview:
How to enable Code Cleanup on Save
First, navigate to Analyze > Code Cleanup > Configure Code Cleanup to personalize desirable customizations to your code cleanup profile(s).
Next, navigate to Tools > Options > Text Editor > Code Cleanup. Add a check in the “Run Code Cleanup profile on Save”. Be sure to select the appropriate profile you want to execute automatically whenever you save!
Try it out and share your feedback!
We would love to get your feedback on Code Cleanup on Save so please give it a try and let us know what you think! You can share any feedback via Developer Community to help us make Visual Studio better for you!
Denizhan Yigitbas Product Manager
Read next
22 comments
I am quite looking forward to using this feature, but I am having trouble getting this to work with clang-format and C++. Any idea how to get it working?
Unfortunately, C++ doesn’t support the Code Cleanup feature yet, and until it does, Code Cleanup on Save isn’t going to work.
All right, thanks! Is there a devcommunity feedback item tracking this I can upvote?
Not that I’ve been able to find. I would encourage you to create one yourself since one doesn’t already exist. If you create it, the PM team will be able to ask you questions if they have any as well as you’ll get updates as progress is being made.
Indeed, waiting for the c++ support here… In fact, just including “Format document” support will get you most of the way there. Though I wouldn’t mind some clang-tidy fixes too (it seems like the tooling api from msvc itself won’t happen so have to stick with clang toolsets for now).
This is a nice feature but it’s unclear+confusing how Code Cleanup interacts with EditorConfig.
Hi Reilly, Thanks for providing this feedback! We are currently working on making this experience better which you can track here.
Is it possible to export the code cleanup configuration and save it to a file? We’d like to be able to share a common set of rules between all of our developers.
Currently we accomplish this with the CodeMaid extension, but it might be nice for this to be backed into Visual Studio 🙂
Yes, this is already part of the plan which you can track here.
Bug – Repro Steps
Open the Configure Code Cleaup window (Doesn’t matter profile 1 or 2)
Add from Available fixers to Included fixers using the up arrow button.
Press OK and close the window.
When you open it again, you’ll find nothing was added :/
This is basically preventing us from using the feature.
Remark
Automatic code formatting and cleanup is great — but only if the whole team uses exactly the same settings for the edited code base.
Nothing is more annoying that playing ping pong with code formatting rules between different team members 🙂
Can we expect to have a feature to remove empty lines or unnecessary tabbed spaces, as CodeMaid (https://marketplace.visualstudio.com/items?itemName=SteveCadwallader.CodeMaid) does?
Can’t wait for this to release! Can this be saved together with csproj or sln file so that it gets automatically applied no matter who opens the project or solution? Would be super super great to have a way making the same profile work for all team members.
Is there a risk of this breaking stuff?
I note the demo removed “unusedVariable” – what if that wasn’t “unusedVariable”, but “soonToBeUsedVariable”?
Does this also do some of the automagic fixes that Ctrl+. comes up with? I’ve had some strange things from there where the fix has removed half of the line to meet some “Hey! This is a good idea!” rule, but has just messed the line up.
Related, does it do the automatic “You changed X to Y in half the document – do you want to do it here?” suggestions? Sometimes useful, sometimes not – if I copy the code foe Thing1 and update the copy to use Thing2, I don’t want to change the first bit that works with Thing1.
Doing an automatic Ctrl+K, Ctrl+D to deal with indents and stuff like that is neat (until saving a legacy file and having a PR made up of 2 lines of real code change and 1000 lines of “I moved your braces and fixed tabs” – automatic removal of code is making my spidey sense tingle a little
That is great, I used the “Format document on Save” extension to do this.
Will there be a way to save without formatting? This is something the developer added to that extension, and that is also available in vscode.
I’m not seeing Code Cleanup under my Text Editor settings in Visual Studio 2022 version 16.11.10
I also have Resharper installed. Could that be conflicting with this somehow?
I am able to run code cleanup, but would love to set it to automatically occur on save.
I just checked, and apparently Resharper has its own cleanup on save options.
Update your VisualStudio version to 17.1, after that Code Cleanup will be visible.
Hi, I do not know if it is asked before. Is there a way to add a 3rd or 4th profile? I have been already using these profiles, now I need to add new profiles to use in specific cases. Thx in advance.
Источники:
- http://docs.microsoft.com/ru-ru/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-preview
- http://code.visualstudio.com/updates/v1_66
- http://code.visualstudio.com/updates/v1_70
- http://code.visualstudio.com/updates/v1_67
- http://code.visualstudio.com/updates/v1_69
- http://code.visualstudio.com/updates/v1_64
- http://docs.microsoft.com/ru-ru/visualstudio/releases/2022/release-notes-preview
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/compatibility
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes
- http://habr.com/ru/company/microsoft/blog/553442/
- http://docs.microsoft.com/ru-ru/visualstudio/releases/2022/release-notes
- http://docs.microsoft.com/ru-ru/visualstudio/releases/2022/redistribution
- http://docs.microsoft.com/ru-ru/visualstudio/releases/2022/compatibility
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/release-history
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/redistribution
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.1
- http://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.0
- http://code.visualstudio.com/blogs/2022/07/07/vscode-server
- http://code.visualstudio.com/?wt.mc_id=dotenv-medium-buhollan
- http://devblogs.microsoft.com/visualstudio/bringing-code-cleanup-on-save-to-visual-studio-2022-17-1-preview-2/