Новые возможности пакета 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, которые представляют, когда он включен. UIContexts регистрируются путем применения одного или нескольких экземпляров ProvideEditorUIContextAttribute пакета, регистрирующего редактор.

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

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

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

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

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