bsl-language-server 1.0.0-rc.1.107-SNAPSHOT API
Packages
Package
Description
Корневой пакет BSL Language Server — реализации языкового сервера для языка 1С:Предприятие (BSL).
Слой работы в парадигме аспектно-ориентированного программирования.
Выполнение замеров производительности.
Отправка аналитики в Sentry.
Построение и работа с графом потока управления (Control Flow Graph).
Пакет предназначен для реализации CLI функциональности BSL Language Server.
Классы для конфигурирования и запуска команды
LanguageServerStartCommandПоставщики действий с кодом (code actions): быстрые исправления, рефакторинги
и прочие действия над исходным кодом.
Пакет предназначен для реализации различных видов линз ("code lenses"),
используемых
CodeLensProvider.Spring-специфичные классы для настройки внутренней инфраструктуры
пакета
com.github._1c_syntax.bsl.languageserver.codelenses.Запуск инструментов тестирования.
Пакет предназначен для реализации различных видов представления цвета ("documentColor" и "colorPresentation"),
используемых
ColorProvider.Пакет предназначен для реализации команд,
используемых
CommandProvider.Служебные классы команд, связанные с показом сложности методов.
Spring-специфичные классы для настройки внутренней инфраструктуры
пакета
com.github._1c_syntax.bsl.languageserver.commands.В пакете содержатся классы для конфигурирования BSL Language Server.
Пакет с настройками возможностей сервера LSP, передаваемыми клиенту.
Пакет содержит настройки
CodeLensProviderСериализация и десериализация верхнеуровневых или общих частей
LanguageServerConfiguration.Пакет содержит настройки для работы
DiagnosticProviderПакет содержит настройки
DocumentLinkProviderСобытия пакета com.github._1c_syntax.bsl.languageserver.configuration.
Пакет содержит настройки
FormatProviderПакет содержит настройки
InlayHintProviderНастройки поддержки OneScript:
OScriptOptions.Настройки платформы 1С:
V8PlatformOptions.Пакет содержит настройки для построения индекса ссылок.
Пакет содержит настройки для семантических токенов.
В пакете содержатся классы, относящиеся к отслеживанию факта изменения (удаление, создание, редактирование) файла
конфигурации (
LanguageServerConfiguration).Контекст сервера и документов: модель разобранных исходников 1С и доступ к ним.
Вычислители производных данных контекста документа (символы, диапазоны, метрики и т.п.).
События пакета com.github._1c_syntax.bsl.languageserver.configuration.
Модель символов исходного кода: методы, переменные, области и их взаимосвязи.
В пакете содержатся data-классы для представления аннотаций и директив компиляции.
Описание переменных в коде BSL.
Сериализация и десериализация различных классов проекта.
Реализации диагностик качества кода BSL.
Инфраструктура регистрации диагностик и предоставления метаинформации о них.
Метаинформация о диагностиках: параметры, теги, типы, описания.
Инфраструктура диагностик, работающих с платформенными членами и версиями.
Инфраструктура для проверки орфографии и опечаток.
Пакет содержит реализации поставщиков подсветки документа (Document Highlight).
Пакет предназначен для реализации различных ссылок на внешние источники информации ("documentLink"),
используемых
DocumentLinkProvider.События пакета com.github._1c_syntax.bsl.languageserver.
Пакет предназначен для реализации различных видов сворачивания ("folding"),
используемых
FoldingRangeProvider.Формирование всплывающего окна.
Spring-специфичные классы для настройки внутренней инфраструктуры уровня приложения.
Пакет предназначен для реализации inlay hints,
предоставляемых
InlayHintProvider.Spring-специфичные классы для настройки внутренней инфраструктуры
пакета
com.github._1c_syntax.bsl.languageserver.inlayhints.Кастомные расширения Language Server Protocol.
Провайдеры функциональности Language Server Protocol.
Распознаватели языка исходного кода для разделения BSL и встроенных языков запросов.
Разрешение ссылок на символы.
DTO и хранилища данных индекса ссылок.
Репортеры результатов анализа в различные форматы (JSON, JUnit, SARIF и т.п.).
Модели данных, используемые репортерами результатов анализа.
Пакет содержит дополнительные классы для настройки сериализации и десериализации классов родительского пакета.
Инфраструктура для работы с репортерами результатов диагностики.
Пакет для работы с семантическими токенами Language Server Protocol.
Вспомогательные классы для обработки строковых семантических токенов.
Система типов BSL/OneScript v2: фасад
TypeService
и подпакеты модели, реестра, индекса, scope, символов, вывода типов,
OneScript-источников и утилит.Индекс соответствия пользовательских символов модулям-типам
(
SymbolTypeIndex).Вывод типов выражений BSL: основной
ExpressionTypeInferencer,
адресация по позиции
ExpressionAtPosition,
парсинг inline-комментариев с типами
InlineTypeCommentParser.Модель типа BSL/OneScript: sealed-иерархия
Type,
лёгкий ключ TypeRef,
неизменяемое множество типов TypeSet,
описание членов MemberDescriptor.Источники типов OneScript: обнаружение библиотек
(
ConventionalLibraryDiscovery,
LibConfigDiscovery),
разбор lib.config
(LibConfigParser),
индекс
(OScriptLibraryIndex)
и регистрация членов модулей в реестре типов.Поддержка движка пользовательских аннотаций OneScript
(annotations):
разрешение мета-аннотаций и помощники чтения параметров.
Вывод типов для фреймворка внедрения зависимостей «ОСень» (Autumn).
Поддержка библиотеки наследования OneScript
extends:
разбор аннотаций
&Расширяет/&Реализует/&Интерфейс
и отношения наследования/реализации между классами.Реестр типов и провайдеры.
Глобальная область видимости символов workspace'а — точка резолюции имён,
не требующих квалификации (платформенные глобалы, library-модули и т.п.).
Synthetic-символы: единый Symbol-фронт для платформенных глобалов и
членов, конфигурационных коллекций и других сущностей, объявленных
вне BSL/OScript кода.
Вспомогательные утилиты системы типов: например выбор подходящей
сигнатуры перегруженного метода
(
SignatureSelection).Вспомогательные утилиты общего назначения для работы с AST, диапазонами, путями и т.п.
Утилиты для работы со специфическими конструкциями языка BSL.
Преобразователь дерева разбора в берево вычисления выражений с учетом приоритетов операций
Пакет предназначен для реализации подключения к Language Server через websocket.