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


Сведения о visualStudio.Extensibility (предварительная версия)

VisualStudio.Extensibility — это новая платформа для разработки расширений Visual Studio, ориентированных главным образом на расширения, которые выполняются из интегрированной среды разработки для повышения производительности и надежности. Он включает современный асинхронный API, который был оптимизирован и тщательно спроектирован для повышения производительности разработчиков. VisualStudio.Extensibility находится в активной разработке и доступен в виде предварительной версии.

С помощью текущей предварительной версии можно разработать широкий спектр расширений в Visual Studio, включая создание команд, работу с кодом или текстом в редакторе, отображение запросов или диалоговых окон для пользователя, создание визуализаторов отладчика и многое другое!

VisualStudio.Extensibility направлена на решение многих проблем, возникающих при использовании и написании расширений в Visual Studio. Написание расширений с помощью VisualStudio.Extensibility обеспечивает следующие преимущества:

  • Повышенная надежность: Visual Studio остается быстродействующей и не сбой, если расширение завершает работу или зависает.
  • Сокращенная сложность API: VisualStudio.Extensibility имеет упрощенную архитектуру, согласованные API и четкую документацию.
  • Функции горячей загрузки: Visual Studio не требуется перезапустить при установке расширений.

В конечном итоге вы сможете использовать пакет SDK visualStudio.Extensibility для записи любого расширения, который можно написать с помощью пакета SDK VS. Однако до этого времени могут возникнуть ситуации, когда необходимые функции в расширении пока недоступны в VisualStudio.Extensibility. В этом случае можно использовать пакет SDK VisualStudio.Extensibility вместе с пакетом SDK VS, выполняющимся в процессе, для покрытия любого разрыва функций. Дополнительные сведения см. в разделе расширений In-proc.

Последние сведения о VisualStudio.Extensibility можно найти в репозитории VSExtensibility GitHub по объявлениям.

Статья Описание
Установка VisualStudio.Extensibility Скачайте и установите последнюю предварительную версию VisualStudio.Extensibility.
Начало работы Начните с кратких руководств и вводных руководств, если вы еще не разработали расширение.
Основные понятия Создайте умственную модель работы пакета SDK и расширений.
Разделы общих сведений Дополнительные сведения см. в обзоре каждой основной области функциональных возможностей.
Примеры Изучите пример кода, демонстрирующий основные функции.
Справочник по API Ознакомьтесь с документацией по API расширяемости VisualStudio.Extensibility.
Экспериментальные API и критические изменения Узнайте о нашем подходе к стабильным и экспериментальным API и о критических изменениях предыдущей версии.
Известные проблемы Просмотрите известные проблемы с пакетом SDK для VisualStudio.Extensibility.
Дополнительные разделы Узнайте о реализации пакета SDK для VisualStudio.Extensibility.

Установка VisualStudio.Extensibility

Текущая предварительная версия VisualStudio.Extensibility работает с Visual Studio 2022 версии 17.9 ( предварительная версия 1) или более поздней с установленной рабочей нагрузкой Visual Studio extension development .

Начать

Приведенные ниже статьи помогут вам приступить к работе и началу работы.

Чтобы понять, как работать с VisualStudio.Extensibility, мы рекомендуем тщательно понять асинхронное программирование с асинхронным и ожидаемыми внедрением зависимостей. Кроме того, пользовательский интерфейс в VisualStudio.Extensibility основан на Windows Presentation Foundation (WPF), поэтому вам может потребоваться просмотреть документацию WPF.

Основные понятия

Если вы знакомы с пакетом SDK Для Visual Studio, ознакомьтесь с разделом "Введение в VisualStudio.Extensibility" для пользователей VSSDK.

Сведения о том, как работают расширения Visual Studio, см. в разделе "Части нового расширения Visual Studio".

Сведения о том, что входит в пакет SDK, см . в функциональных областях пакета SDK.

Когда и где должно отображаться расширение в интегрированной среде разработки? Расширения Visual Studio отображаются в интегрированной среде разработки при выполнении определенных условий. Чтобы контролировать, как и когда расширение отображается в интегрированной среде разработки, см . ограничения активации на основе правил.

Расширения Visual Studio предоставляют свои возможности Visual Studio с помощью вкладов. Дополнительные сведения см. в разделе "Вклады"

Сведения о модели удаленного пользовательского интерфейса, используемой в VisualStudio.Extensibility.

Общие сведения

Ознакомьтесь с обзором областей пакета SDK, которые могут потребоваться для проектов разработки расширений.

  • Создание команд и их предоставление пользователям в интегрированной среде разработки см. в разделе "Команды".
  • Работа с содержимым файлов и документов см . в расширениях редактора.
  • Работайте с представлением этих документов в памяти, см. статью "Документы".
  • Используйте окно вывода в расширении, см . в окне вывода.
  • Работа с окнами инструментов, закрепленными окнами в интегрированной среде разработки Visual Studio, см. в разделе "Окна инструментов".
  • Используйте запросы с настраиваемыми кнопками для взаимодействия с пользователем, см. в статье "Запросы пользователей".
  • Использование диалогов с пользовательским пользовательским интерфейсом для взаимодействия с пользователем см. в разделе "Диалоги"
  • Создание пользовательских визуализаций данных при отладке см. в разделе "Визуализаторы отладчика"
  • Запрос или изменение сведений о решениях песочницы проекта см. в разделе "Запрос проекта"
  • Работа с языковыми серверами или LSP для дополнительной поддержки языка см. в разделе "Поставщик языкового сервера"

Примеры и руководства

Вы можете найти решение Visual Studio, содержащее все примеры на Samples.sln.

Пример Description
Простой обработчик команд Демонстрирует основы работы с командами. См. также руководство по созданию первого руководства по расширению Visual Studio.
Вставка расширения GUID Показывает, как вставить текст или код в редактор кода, как настроить команду с определенным условием активации и как использовать файл ресурсов для локализации. См. также руководство по созданию простого расширения .
Родительское управление командами Показывает, как создать команду, которая может быть родительской в различных аспектах интегрированной среды разработки.
Селектор документов Показывает, как создать расширение редактора, применимое только к файлам, соответствующим шаблону пути к файлу.
Окно выходных данных Показывает наиболее простое использование API окна вывода
Окно инструментов Показывает, как создать окно инструментов и заполнить его содержимым.
Запрос пользователя Показывает, как отобразить пользователю запрос.
Диалоговое окно Показывает, как отобразить диалоговое окно с пользовательским пользовательским пользовательским интерфейсом для пользователя.
Поле подсчета слов Показывает, как создать расширение поля редактора, отображающее количество слов в документе.
Markdown linter Показывает, как можно взаимодействовать с несколькими компонентами внутри расширения и как можно расширить различные области Visual Studio.
Запрос проекта Показывает несколько различных типов запросов системы проекта, которые можно сделать.
Удаление комментариев Показывает, как использовать службы SDK Visual Studio с помощью внедрения зависимостей .NET и использовать API-интерфейсы VisualStudio.Extensibility для команд, запросов и отчетов о ходе выполнения.
RegexMatchDebugVisualizer Показывает, как использовать удаленный пользовательский интерфейс для создания визуализатора отладчика для визуализации совпадений регулярных выражений, которые будут запускаться в модальном диалоговом окне.
MemoryStreamDebugVisualizer Показывает, как создать визуализатор отладчика для визуализации объектов MemoryStream, запускаемых в окне немодального инструмента.
RustLanguageServiceProvider Показывает, как создать расширение поставщика сервера языка Rust, которое добавляет Intellisense и подсказки при открытии файла rust.

Экспериментальные API и критические изменения

Начиная с выпуска 17.9, мы готовы пометить подавляющее большинство наших API как стабильные. То есть мы не планируем вносить критические изменения в эти API. Любые критические изменения, которые могут потребоваться сделать, например, в ответ на отзывы пользователей о удобствах использования, будут официально переданы и с большим количеством уведомлений на нашей странице критических изменений .

Существует несколько наших API, которые еще не соответствуют этой строке для стабильности, по одной из нескольких причин:

  • В будущих версиях ожидается новая область функций, а также дополнительные функции и изменения.
  • API является новым, и мы хотим включить отзывы пользователей в дизайн, прежде чем пометить его стабильно.
  • Мы получили отзыв о том, что определенный API трудно использовать, поэтому мы планируем обновить его в будущих версиях.

Для этих API мы явно помечаем их с помощью атрибута [Experimental] , чтобы помочь авторам расширений создавать расширения с уверенностью в пакете SDK.

Дополнительные сведения, включая использование экспериментальных API, см . на странице экспериментальных API .

Известные проблемы

Мы ценим ваши отзывы и отчеты об ошибках в нашем средстве отслеживания проблем, и мы работаем над решением любых проблем, обнаруженных в пакете SDK.

Посетите страницу известных проблем , чтобы узнать о текущих известных проблемах.

Дополнительные разделы

Статья Описание
Расширенный удаленный пользовательский интерфейс Подробные сведения о модели удаленного пользовательского интерфейса
Расширения in-proc Краткое пошаговое руководство по различным вариантам использования пакета SDK для VisualStudio.Extensibility in-proc

Документация по API

Отправка отзыва

Мы активно ищем отзывы и участие. Этап предварительной версии — это отличное время, чтобы получить данные сообщества, чтобы помочь нам определить проблемы и возможности. Вы можете предоставить отзывы и сообщить об ошибках в нашем средство отслеживания проблем.