Перейти к содержанию

Конфигурирование BSL Language Server

BSL Language Server предоставляет возможность изменения настроек, заложенных разработчиками, с помощью конфигурационного файла в формате json.
Созданный файл необходимо указать с помощью ключа --configuration (или кратко -c) при запуске BSL Language Server в качестве консольного приложения либо, если же используется редактор/IDE с плагином-клиентом BSL Language Server, разместить его в соответствии с документацией (обычно это корень проекта либо рабочей области).

Описание настроек

Наименование Тип Описание
language Строка Этот параметр устанавливает язык отображения диагностированных замечаний. На данный момент поддерживаются два языка:
ru - для русского языка (используется по умолчанию)
en - для английского языка
codeLens JSON-Объект Содержит настройки отображения линз в продвинутых кода/IDE (например Visual Studio Code), в которых выводится различная информация на блоком кода. Свойства объекта
⤷   showCognitiveComplexity Булево Включается отображение значения когнитивной сложности метода над его определением. По умолчанию параметр включен (установлен в true)
⤷   showCyclomaticComplexity Булево Включает отображение значения цикломатической сложности метода. По умолчанию параметр включен (установлен в true)
diagnostics JSON-Объект Содержит настройки диагностик
⤷   computeTrigger Строка С помощью этого параметра можно указать событие, при котором будет вызвана процедура анализа кода для диагностирования замечаний. Возможные значения:
onType - при редактировании файла (онлайн) на больших файлах может ЗНАЧИТЕЛЬНО замедлять редактирование
onSave - при сохранении файла (используется по умолчанию)
* never - анализ выполняться не будет
⤷   skipSupport Строка Этим параметром настраивается режим пропуска файлов (т.е. файлы не анализируются на предмет наличия замечаний) конфигурации 1С, находящихся "на поддержке" конфигурации поставщика. Возможные значения:
withSupport - пропускаются все модули, находящиеся "на поддержке" (все виды "замков")
withSupportLocked - пропускаются только модули, находящиеся "на поддержке" с запретом изменений ("желтый закрытый замок")
never - режим поддержки не анализируется и модули не пропускаются (установлен по умолчанию)*
⤷   mode Строка Настройка для управления режимом учета настроек диагностик. Возможные варианты:
OFF - Все диагностики считаются выключенными, вне зависимости от их настроек
ON - Все диагностики включенные по умолчанию считаются включенными, остальные - в зависимости от личных настроек
EXCEPT - Все диагностистики, кроме указанных, считаются включенными
ONLY - Только указанные диагностики считаются включенными
* ALL - Все диагностики считаются включенными
⤷   parameters JSON-Объект Параметр представляет собой коллекцию настроек диагностик. Элементами коллекции являются json-объекты следующей структуры:
ключ объекта - строка, являющаяся ключом диагностики
значение объекта - может принимать либо булево значение, и тогда интерпретируется как отключение диагностики (false) или ее включение с параметрами по умолчанию (true), либо значение типа json-объект, представляющего собой набор настроек диагностики.

Ключ, включена ли по умолчанию, а также описание возможных параметров и примеры для конфигурационного файла представлены на странице с описанием каждой диагностики.
documentLink JSON-Объект Содержит настройки ссылок на документацию
⤷   useDevSite Булево При включении настройки формирующиеся ссылки на документацию будут вести на develop-версию сайта. По умолчанию параметр выключен (установлен в false)
⤷   siteRoot Строка Путь к корню сайта с документацией. По умолчанию параметр имеет значение "https://1c-syntax.github.io/bsl-language-server"
traceLog Строка Для логирования всех запросов (входящих и исходящих) между BSL Language Server и Language Client из используемого редактора/IDE, в этом параметре можно указать путь к файлу лога. Путь можно указывать как абсолютный, так и относительный (от корня анализируемого проекта), по умолчанию значение не заполнено.

ВНИМАНИЕ

При запуске BSL Language Server перезаписывает указанный файл
Скорость взаимодействия между клиентом и сервером ЗНАЧИТЕЛЬНО ЗАМЕДЛЯЕТСЯ
configurationRoot Строка Данный параметр предназначен для указания корневого каталога, в котором находятся файлы конфигурации 1С в каталоге проекта. Может быть полезен в случае нахождения нескольких каталогов конфигураций в одном каталоге проекта либо при сложной структуре каталога проекта. По умолчанию параметр не заполнен и BSL Language Server самостоятельно определяет расположение корневого каталога конфигурации

Для облегчения составления и редактирования конфигурационного файла можно использовать следующую JSON-схему:

https://1c-syntax.github.io/bsl-language-server/configuration/schema.json

Пример

Ниже приведен пример настройки:

{
  "$schema": "https://1c-syntax.github.io/bsl-language-server/configuration/schema.json",
  "language": "en",
  "diagnostics": {
    "computeTrigger": "onType",
    "parameters": {
      "LineLength": {
        "maxLineLength": 140
      },
      "MethodSize": false
    }
  }
}