Реализация протокола language server protocol для языка 1C (BSL) - языка 1С:Предприятие 8 и OneScript.
Сайт проекта - https://1c-syntax.github.io/bsl-language-server
Замеры производительности - SSL 3.1
- Форматирование файла
- Форматирование выбранного диапазона
- Определение символов текущего файла (области, процедуры, функции, переменные, объявленные через
Перем) - Определение сворачиваемых областей -
#Область,#Если, процедуры и функции, блоки кода - Показ когнитивной сложности метода
- Диагностики
- "Быстрые исправления" (quick fixes) для ряда диагностик
- Запуск движка диагностик из командной строки
- Запуск форматирования файлов в каталоге из командной строки
Запуск 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)При запуске BSL Language Server в обычном режиме будет запущен сам Language Server, взаимодействующий по протоколу [LSP](language server protocol). Для взаимодействия используются stdin и stdout.
По умолчанию тексты диагностик выдаются на русском языке. Для переключения языка сообщений от движка диагностик необходимо настроить параметр diagnosticLanguage в конфигурационном файле или вызвав событие workspace/didChangeConfiguration:
Для запуска в режиме анализа используется параметр --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 один из лучших инструментов в своем классе.
После реализации построения контекста:
- Автодополнение методов текущего модуля
- Автодополнение контекстных методов (конфигурация 1С и OneScript)
- Сигнатура функций
- Подробная всплывающая подсказка по методам
- Переход к определению
- Поиск мест использования
- Предпросмотр определения процедуры
- Поиск определения по символу
Дополнительно:
- Автодополнение методов глобального контекста

