Сведения о 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
.
Начать
Приведенные ниже статьи помогут вам приступить к работе и началу работы.
- Создание первого расширения Visual Studio показывает, как создать эквивалент Hello, world в качестве расширения.
- Создание простого расширения показывает, как создать более интересное расширение , которое добавляет GUID в окно редактора.
Чтобы понять, как работать с 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
- Расширяемость Microsoft.VisualStudio.Extensibility
- Microsoft.VisualStudio.Extensibility.Editor
- Microsoft.VisualStudio.ProjectSystem.Query
Отправка отзыва
Мы активно ищем отзывы и участие. Этап предварительной версии — это отличное время, чтобы получить данные сообщества, чтобы помочь нам определить проблемы и возможности. Вы можете предоставить отзывы и сообщить об ошибках в нашем средство отслеживания проблем.