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


контрольный список: Создание службы языка

Следующий контрольный список приведены основные необходимо выполнить для создания службы языка Visual Studio редактор. Интегрировать службы языка Visual Studioнеобходимо создать средство оценки выражений отладки. Дополнительные сведения см. в разделе Запись вычислителя выражений среды CLR в расширяемость отладчика Visual Studio.

Этапы создания службы языка

  1. Реализуйте интерфейс IVsPackage.

    • Реализуйте в VSPackage IServiceProvider интерфейс, чтобы предоставить службу языка.

    • Внесите в доступный языковой службы в интегрированной среде разработки (ide) в вашем SetSite реализация.

  2. Реализуйте IVsLanguageInfo интерфейс в главном классе службы языка.

    IVsLanguageInfo интерфейс начальная точка взаимодействия между редактором языка основной и службой.

Дополнительные функции

Следующие функции являются необязательными и могут быть реализованы в любом порядке. Эти функции расширяют функциональность службы языка.

  • Расцветка синтаксиса

    Реализуйте интерфейс IVsColorizer. Реализация этого интерфейса, если данные средства синтаксического анализа возвращают соответствующие данные о цвете.

    GetColorizer метод возвращает IVsColorizer интерфейс. Отдельный экземпляр colorizer создается для каждого текстового буфера, поэтому необходимо реализовать IVsColorizer интерфейс отдельно. Дополнительные сведения см. в разделе раскраска синтаксических конструкций.

  • Окно кода

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

    GetCodeWindowManager метод возвращает IVsCodeWindowManager интерфейс. Служба языка может затем добавить специальный пользовательский интерфейс в окно кода in AddAdornments. Языковую службу также может выполнять все специальные обработки, как добавить фильтр представления текста внутри OnNewView.

  • Фильтр представления текста

    Чтобы обеспечить завершение выписки IntelliSense в службе языка, следует перехватывать некоторых команд, представление текста в противном случае отрегулировало мере. Чтобы перехватывать эти команды, выполните следующие шаги:

    • Реализуйте IOleCommandTarget участвовать в командах редактора цепочки и маркеров команды.

    • Вызовите AddCommandFilter метод и передайте ваше IOleCommandTarget реализация.

    • Вызовите RemoveCommandFilter метод при наконец удалите из представления так, чтобы эти команды больше не передаются.

    Команды, которые должны быть обработаны, зависит от службы, предоставляемые. Дополнительные сведения см. в разделе важные команды для фильтров службы языка.

    Примечание

    IVsTextViewFilter интерфейс должен быть реализован в одном объекте как IOleCommandTarget интерфейс.

  • Завершение операторов

    Реализуйте интерфейс IVsCompletionSet.

    Поддержка команды завершения выписки (т е UpdateCompletionStatus ) и вызовите IVsTextView метод IVsCompletionSet интерфейс передачи COMPLETEWORDинтерфейс. Дополнительные сведения см. в разделе завершение операторов.

  • Советы метода

    Реализуйте IVsMethodData интерфейс, чтобы предоставить сведения для метода наклоняет окно.

    Установите фильтр представления текста для обработки команд, так что известно, если отображение окна окна подсказок по данным методом. Дополнительные сведения см. в разделе всплывающие подсказки сведений о параметрах.

  • Метки ошибки

    Реализуйте интерфейс IVsTextMarkerClient.

    Создайте объекты метки ошибки, которые реализуют CreateLineMarker интерфейс и вызывает IVsTextMarkerClient метод передачи IVsTextMarkerClient интерфейс объекта метки ошибки.

    Обычно каждая метка ошибки управляет элементом в окне список задач.

  • Элементы списка задач

    Реализуйте предоставления класса элемента задачи IVsTaskItem интерфейс.

    Реализуйте предоставления класса поставщика задачи IVsTaskProvider интерфейс и IVsTaskProvider2 интерфейс.

    Реализуйте предоставления класса перечислителя задачи IVsEnumTaskItems интерфейс.

    Регистрация поставщика задачи со списком задач RegisterTaskProvider метод.

    Получите IVsTaskList интерфейс путем вызова поставщик услуг языковой службы с идентификатором GUID службы SVsTaskList.

    Создание объектов элементов задачи и вызовите RefreshTasks метод IVsTaskList интерфейс, когда новые или обновленные задачи.

  • Элементы задачи комментариев

    Используйте IVsCommentTaskInfo интерфейс и IVsEnumCommentTaskTokens интерфейс для получения токены задачи комментариев.

    Получите IVsCommentTaskInfo интерфейс из SVsTaskList служба.

    Получите EnumTokens интерфейс из IVsEnumCommentTaskTokens метод.

    Реализуйте IVsTaskListEvents интерфейс для прослушивания изменений в списке токена.

  • Структуризация

    Несколько параметров для поддержки структура. Например, можно поддерживать Свернуть в определения команда предоставляет редактор-контролируемые структурные области или поддерживает клиент-контролируемые области. Дополнительные сведения см. в разделе Практическое руководство. Укажите развернуто структурирования поддержку.

  • Регистрация службы языка

    Дополнительные сведения о том, как зарегистрировать службу языка см. в разделе Регистрация службы языка и загрузка VSPackages.

  • Контекстная справка

    Реализуйте контекст редактор одним из следующих способов:

    • Предоставляет контекст для меток текста путем реализации IVsTextMarkerContextProvider интерфейс.

Обеспечьте полный контекст пользователя с помощью реализации IVsLanguageContextProvider интерфейс.

См. также

Другие ресурсы

Инициализация службы языка

Запись вычислителя выражений среды CLR