Поделиться через


Новые возможности пакета SDK для Visual Studio 2019

Пакет SDK Для Visual Studio содержит следующие новые и обновленные функции для Visual Studio 2019.

Предупреждение о синхронной автоматической загрузке расширений

Теперь пользователи увидят предупреждение, если при запуске какие-либо установленные расширения синхронно загружаются автоматически. Вы можете узнать больше о предупреждении в синхронно загружаемых расширениях.

Единый унифицированный пакет SDK Для Visual Studio

Теперь вы можете получить все ресурсы пакета SDK Visual Studio с помощью одного пакета NuGet Microsoft.VisualStudio.SDK.

Улучшение функционала регистрации редактора

С момента создания Visual Studio поддерживает пользовательскую регистрацию редактора, где редактор может заявить о своей предпочтительности для определённых расширений (например, .xaml и .rc), или что он подходит для любого расширения (.*). Начиная с Visual Studio 2019 версии 16.1, мы расширим поддержку регистрации редактора.

Имена файлов

Помимо или вместо того, чтобы зарегистрировать поддержку определенного расширения файла, редактор может зарегистрировать, что он поддерживает определенные имена файлов, применяя новый ProvideEditorFilename атрибут к пакету редактора.

Например, редактор, поддерживающий все файлы .json, будет применять этот ProvideEditorExtension атрибут к пакету:

[ProvideEditorExtension(typeof(MyEditor), ".json", MyEditor.Priority)]

Начиная с версии 16.1, если MyEditor поддерживает только пару известных файлов .json, он может вместо этого применить эти ProvideEditorFilename атрибуты к пакету:

[ProvideEditorFilename(typeof(MyEditor), "particular.json", MyEditor.Priority)]
[ProvideEditorFilename(typeof(MyEditor), "special.json",    MyEditor.Priority)]

Контексты интерфейса пользователя

Редактор может зарегистрировать один или несколько UIContexts, которые определяют, когда он включен. UIContexts регистрируются путем применения одного или нескольких экземпляров ProvideEditorUIContextAttribute к пакету, который регистрирует редактор.

Если редактор зарегистрировал UIContexts:

  • Если хотя бы один из зарегистрированных UIContexts активен при открытии файла с заданным расширением, редактор учитывается в поиске редакторов.
  • Если ни один из зарегистрированных uiContexts не активен, редактор не включен в поиск редактора.

Если редактор не регистрирует UIContexts, он всегда учитывается при поиске редактора для этого расширения.

Например, если редактор доступен только при открытии проекта C#, он может объявить это сходство, применяя ProvideEditorUIContext атрибут:

[ProvideEditorUIContext(typeof(MyEditor), KnownUIContexts.CSharpProjectContext)]