Skip to content
Реализация Language Server Protocol для языка 1C (BSL)
Java 1C Enterprise Kotlin
Branch: develop
Clone or download
Latest commit 4d86edc Sep 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Rename -----------------.md to NewDiagnostic.md Sep 16, 2019
.idea Merge pull request #88 from 1c-syntax/feature/formatting Feb 26, 2019
docs Translate CognitiveComplexity.md via GitLocalize Sep 11, 2019
gradle Победил градл Sep 11, 2019
license Authors and contributors Feb 19, 2019
src Merge pull request #347 from theshadowco/feature/fix340 Sep 10, 2019
.editorconfig Тесты через файл Feb 24, 2019
.gitattributes Изменил концевики для md Aug 8, 2019
.gitignore Добавил новую метрику #271 Несколько директив компиляции Aug 12, 2019
.travis.yml Сборка на 2 версиях jdk Sep 11, 2019
AUTHORS.md Fix CRLF -> LF Aug 20, 2019
CONTRIBUTING.md фикс ссылок 2 Sep 3, 2019
COPYING.LESSER.md Изменил концевики для md Aug 8, 2019
COPYING.md Изменил концевики для md Aug 8, 2019
README.md Добавлено свойство конфигурации для хранения необходимости показа Cod… Aug 15, 2019
build.gradle.kts Добавил в зависимости javax.xml.bind jaxb-api Sep 11, 2019
gradlew Update deps Apr 25, 2019
gradlew.bat Update deps Apr 25, 2019
lombok.config Добавление аннотации generated для lombok Mar 21, 2019
settings.gradle.kts Migrage to separate repo Dec 31, 2018

README.md

BSL Language Server

Build Status JitPack Quality Gate Maintainability Coverage telegram

Реализация протокола language server protocol для языка 1C (BSL) - языка 1С:Предприятие 8 и OneScript.

Сайт проекта - https://1c-syntax.github.io/bsl-language-server

English version

Возможности

  • Форматирование файла
  • Форматирование выбранного диапазона
  • Определение символов текущего файла (области, процедуры, функции, переменные, объявленные через Перем)
  • Определение сворачиваемых областей - #Область, #Если, процедуры и функции, блоки кода
  • Показ когнитивной сложности метода
  • Диагностики
  • "Быстрые исправления" (quick fixes) для ряда диагностик
  • Запуск движка диагностик из командной строки

Запуск из командной строки

Запуск jar-файлов осуществляется через java -jar path/to/file.jar.

java -jar bsl-language-server.jar --help

usage: BSL language server [-a] [-c <arg>] [-h] [-o <arg>] [-r <arg>] [-s <arg>]
 -a,--analyze               Run analysis and get diagnostic info
 -c,--configuration <arg>   Path to language server configuration file
 -h,--help                  Show help.
 -o,--outputDir <arg>       Output report directory
 -r,--reporter <arg>        Reporter key
 -s,--srcDir <arg>          Source directory
 -v,--version               Version

При запуске BSL Language Server в обычном режиме будет запущен сам Language Server, взаимодействующий по протоколу LSP. Для взаимодействия используются stdin и stdout.

По умолчанию тексты диагностик выдаются на русском языке. Для переключения языка сообщений от движка диагностик необходимо настроить параметр diagnosticLanguage в конфигурационном файле или вызвав событие workspace/didChangeConfiguration:

Запуск в режиме анализатора

Для запуска в режиме анализа используется параметр --analyze (сокращенно -a). Для указания каталога расположения анализируемых исходников используется параметр --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 ...остальные параметры

ToDo

После реализации построения контекста:

  • Автодополнение методов текущего модуля
  • Автодополнение контекстных методов (конфигурация 1С и OneScript)
  • Сигнатура функций
  • Подброная всплывающая подсказка по методам
  • Переход к определению
  • Поиск мест использования
  • Предпросмотр определения процедуры
  • Поиск определения по символу

Дополнительно:

  • Автодополнение методов глобального контекста
You can’t perform that action at this time.