BSL Language Server¶
Реализация протокола language server protocol для языка 1C (BSL) - языка 1С:Предприятие 8 и OneScript.
- Руководство контрибьютора
- Возможности
- Запуск из командной строки
- Запуск в режиме websocket
- Запуск в режиме анализатора
- Запуск в режиме форматтера
- Конфигурационный файл
- Репортеры
- Диагностики
- Дополнительные возможности
- Часто задаваемые вопросы
- Системные требования
- Благодарности
Замеры производительности - SSL 3.1
Возможности¶
- Форматирование файла
- Форматирование выбранного диапазона
- Определение символов текущего файла (области, процедуры, функции, переменные, объявленные через
Перем
) - Определение сворачиваемых областей -
#Область
,#Если
, процедуры и функции, блоки кода, пакеты запросов - Показ когнитивной и цикломатической сложности метода
- Всплывающая подсказка по локальным методам и методам общих модулей/модулей менеджеров
- Переходы к определению методов
- Поиск мест использования методов
- Иерархия вызовов методов
- Расширение текущего выделения (expand selection)
- Отображение представления цвета и конвертация между
Цвет
иWebЦвета
- Диагностики
- "Быстрые исправления" (quick fixes) для ряда диагностик и "быстрые действия" (code actions)
- Запуск движка диагностик из командной строки
- Запуск форматирования файлов в каталоге из командной строки
- Переименование символов
Поддерживаемые операции протокола¶
Workspace
Операция | Поддержка | Комментарий |
---|---|---|
didChangeWorkspaceFolders | ||
didChangeConfiguration | с ограничениями, см. #1431 | |
didChangeWatchedFiles | ||
symbol | ||
executeCommand | ||
applyEdit | ||
willCreateFiles |
Text Synchronization
Операция | Поддержка | Комментарий |
---|---|---|
didOpen | ||
didChange | textDocumentSyncKind = Full | |
didClose | ||
didSave | ||
willSave | ||
willSaveWaitUntil |
Textdocument
Запуск из командной строки¶
Запуск jar-файлов осуществляется через java -jar path/to/file.jar
.
java -jar bsl-language-server.jar --help
BSL language server
Usage: bsl-language-server [-h] [-c=<path>] [COMMAND [ARGS]]
-c, --configuration=<path>
Path to language server configuration file
-h, --help Show this help message and exit
Commands:
analyze, -a, --analyze Run analysis and get diagnostic info
format, -f, --format Format files in source directory
version, -v, --version Print version
lsp, --lsp LSP server mode (default)
websocket, -w, --websocket Websocket server mode
При запуске BSL Language Server в обычном режиме будет запущен сам Language Server, взаимодействующий по протоколу LSP. Для взаимодействия используются stdin и stdout.
По умолчанию тексты диагностик выдаются на русском языке. Для переключения языка сообщений от движка диагностик необходимо настроить параметр language
в конфигурационном файле или вызвав событие workspace/didChangeConfiguration
:
{
"language": "en"
}
Запуск в режиме websocket¶
По умолчанию взаимодействие с сервером идет через стандартные потоки ввода/вывода. Но вы можете запустить BSL Language Server со встроенным веб-сервером и взаимодействовать с ним через websocket.
Для этого необходимо запустить BSL Language Server с ключом --websocket
или -w
:
Usage: bsl-language-server websocket [-h] [--app.websocket.lsp-path=<path>]
[-c=<path>] [--server.port=<port>]
Websocket server mode
--app.websocket.lsp-path=<path>
Path to LSP endpoint. Default is /lsp
-c, --configuration=<path> Path to language server configuration file
-h, --help Show this help message and exit
--server.port=<port> Port to listen. Default is 8025
После запуска BSL Language Server будет доступен по адресу ws://localhost:8025/lsp
.
Для переопределения порта к LSP-серверу необходимо использовать параметр --server.port
, за которым следует номер желаемого порта.
Для переопределения пути к LSP-серверу необходимо использовать параметр --app.websocket.lsp-path
, за которым следует желаемый путь, начинающийся с /
.
Пример строки запуска BSL Language Server в режиме websocket с указанием порта 8080:
java -jar bsl-language-server.jar --websocket --server.port=8080
При работе с большим проектом рекомендуется дополнительно указывать параметр -Xmx, отвечающий за предел оперативной памяти для java процесса. Размер выделяемой памяти зависит от размера анализируемой кодовой базы.
java -Xmx4g -jar bsl-language-server.jar ...остальные параметры
Запуск в режиме анализатора¶
Для запуска в режиме анализа используется параметр --analyze
(сокращенно -a
).
Usage: bsl-language-server analyze [-hq] [-c=<path>] [-o=<path>] [-s=<path>]
[-r=<keys>]...
Run analysis and get diagnostic info
-c, --configuration=<path>
Path to language server configuration file
-h, --help Show this help message and exit
-o, --outputDir=<path> Output report directory
-q, --silent Silent mode
-r, --reporter=<keys> Reporter key (console, junit, json, tslint, generic)
-s, --srcDir=<path> Source directory
-w, --workspaceDir=<path>
Workspace directory
Для указания каталога расположения анализируемых исходников используется параметр --srcDir
(сокращенно -s
), за которым следует путь (относительный или абсолютный) к каталогу исходников.
Для формирования отчета об анализе требуется указать один из "репортеров". Для указания репортера используется параметр --reporter
(сокращенно -r
), за которым следует ключ репортера. Допустимо указывать несколько репортеров. Список репортетов см. в разделе Репортеры.
Пример строки запуска анализа:
java -jar bsl-language-server.jar --analyze --srcDir ./src/cf --reporter json
При анализе больших исходников рекомендуется дополнительно указывать параметр -Xmx, отвечающий за предел оперативной памяти для java процесса. Размер выделяемой памяти зависит от размера анализируемой кодовой базы.
java -Xmx4g -jar bsl-language-server.jar ...остальные параметры
Запуск в режиме форматтера¶
Для запуска в режиме форматтера используется параметр --format
(сокращенно -f
).
Usage: bsl-language-server format [-hq] [-s=<path>]
Format files in source directory
-h, --help Show this help message and exit
-q, --silent Silent mode
-s, --src=<path> Source directory or file
Для указания каталога расположения форматируемых исходников (или файла) используется параметр --src
(сокращенно -s
), за которым следует путь (относительный или абсолютный) к каталогу исходников (или файлу).
Пример строки запуска форматирования:
java -jar bsl-language-server.jar --format --src ./src/cf
Конфигурационный файл¶
Подробное описание конфигурационного файла приведено на этой странице
Благодарности¶
Огромное спасибо всем контрибьюторам проекта, всем участвовавшим в обсуждениях, помогавшим с тестированием.
Вы потрясающие!
Спасибо компаниям, поддерживающим проекты с открытым исходным кодом, а особенно тем, кто поддержали нас:
Создатель инновационных и интеллектуальных инструментов для профилирования приложений Java
и .NET
YourKit, LLC любезно предоставил нам лицензии на продукт YourKit Java Profiler
.
С помощью YourKit Java Profiler
мы мониторим и улучшаем производительность проекта.
Создатель профессиональных инструментов разработки программного обеспечения, инновационных и мощных, JetBrains поддержал наш проект, предоставив лицензии на свои продукты, в том числе на IntelliJ IDEA Ultimate
.
IntelliJ IDEA Ultimate
один из лучших инструментов в своем классе.
Digilabs - авторы Алькир
- программного комплекса по мониторингу производительности систем на базе 1С:Предприятие 8. Digilabs предоставляет нам серверные мощности для проведения постоянного тестирования производительности BSL Language Server.