Возможности
Расширения предлагают множество способов расширения функциональности. В этом разделе возможности расширений разделены на несколько категорий. Каждая категория описывает:
- Некоторые функции, которые может использовать ваше расширение
- Ссылки на более подробные темы по использованию этих функций
Однако мы также накладываем ограничения на расширения, чтобы обеспечить стабильность и производительность. Например, расширения не могут получить доступ к DOM пользовательского интерфейса напрямую.
Общие возможности
Команды (Commands)
Команды играют ключевую роль в расширениях. Вы открываете палитру команд для их выполнения, назначаете им пользовательские сочетания клавиш и вызываете команды в контекстных меню.
Расширение может:
- Регистрировать и выполнять команды с помощью SDK
- Делать команды доступными в палитре команд с помощью точки вклада
contributes.commands
Дополнительную информацию о командах можно найти в разделе Команды.
Конфигурация (Configuration)
Расширение может добавлять специфичные для расширения настройки с помощью точки вклада contributes.configuration
и считывать их с помощью SDK.
Дополнительную информацию о конфигурации можно найти в разделе Конфигурация.
Сочетания клавиш (Keybindings)
Расширение может добавлять пользовательские сочетания клавиш. Подробнее читайте в разделе Назначение клавиш.
Уведомления (Notifications)
Почти всем расширениям в какой-то момент необходимо предоставить пользователю информацию. Для этого предоставляется API для отображения уведомлений разной степени важности:
sdk.window.showInfoMessage
- информационные сообщенияsdk.window.showWarnMessage
- предупрежденияsdk.window.showErrorMessage
- сообщения об ошибках
Дополнительную информацию можно найти в разделе Уведомления.
Быстрый ввод (Quick Input)
С помощью API sdk.window.showInputBox
и sdk.window.showQuickPick
вы можете легко собирать пользовательские данные или предоставить пользователю возможность выбора из нескольких вариантов.
Дополнительную информацию можно найти в разделе Quick Input.
Темы (Theme)
Темы определяют внешний вид: как цвета исходного кода в редакторе, так и цвета пользовательского интерфейса.
Дополнительную информацию можно найти в разделе Темы.
Ноды (Nodes)
Расширения могут работать с редактором нод, добавляя собственные типы нод, управляя соединениями и обрабатывая события редактора.
Возможности:
- Добавление пользовательских нод в редактор
- Управление портами и соединениями
- Обработка событий изменения нод
- Создание библиотек нод
Дополнительную информацию можно найти в разделах Редактор нод и Библиотека нод.
Нотации (Notation)
Нотации определяют правила отображения проектов в редакторе нод. Расширения могут создавать собственные нотации с уникальными правилами и библиотеками нод.
Возможности:
- Определение правил соединений между нодами
- Создание специализированных библиотек нод
- Настройка поведения редактора для конкретной предметной области
Дополнительную информацию можно найти в разделе Нотации.
Файловая система (File System)
Расширения могут работать с файловой системой, читая и записывая файлы, создавая директории и отслеживая изменения.
Дополнительную информацию можно найти в разделе Файловая система.
Статус-бар (Status Bar)
Расширения могут добавлять элементы в статус-бар для отображения информации и быстрого доступа к командам.
Дополнительную информацию можно найти в разделе Статус-бар.