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

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

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

В случае отсутствия конфигурационного файла будет предпринята попытка найти файл ".bsl-language-server.json" в " %HOMEPATH%"

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

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

Ключ, включена ли по умолчанию, а также описание возможных параметров и примеры для конфигурационного файла представлены на странице с описанием каждой диагностики.
⤷   subsystemsFilter JSON-Объект Фильтр по подсистемам конфигурации
⤷   analyzeOnStart Булево Запустить анализ всего проекта при запуске сервера. Если включено, после построения контекста на клиента будет отправлена информация о диагностиках во всех файлах проекта.
   ⤷   include Массив Строка Список имен подсистем по объектам которых выполняется анализ, включая подчиненные подсистемы
   ⤷   exclude Массив Строка Список имен подсистем исключенных из анализа, включая подчиненные подсистемы
documentLink JSON-Объект Содержит настройки ссылок на документацию
⤷   showDiagnosticDescription Булево Показывать дополнительные ссылки на документацию по диагностикам. По умолчанию параметр выключен (установлен в false)
inlayHint JSON-Объект Содержит настройки отображения inlay hints в продвинутых редакторах кода/IDE (например Visual Studio Code), в которых выводится различная информация прямо в строке с кодом.
⤷   parameters JSON-Объект Коллекция настроек inlay hints. Элементами коллекции являются json-объекты следующей структуры:
ключ объекта - строка, являющаяся идентификатором inlay hint
значение объекта - может принимать либо булево значение, и тогда интерпретируется как отключение inlay hint (false) или их включение с параметрами по умолчанию (true), либо значение типа json-объект, представляющего собой набор настроек inlay hint.
   ⤷   cognitiveComplexity Булево или JSON-Объект Включает отображение значения когнитивной сложности метода в виде inlay hints. По умолчанию настройка установлена в true.
   ⤷   cyclomaticComplexity Булево или JSON-Объект Включает отображение значения цикломатической сложности метода в виде inlay hints. По умолчанию настройка установлена в true.
   ⤷   sourceDefinedMethodCall Булево или JSON-Объект Включает отображение параметров вызываемого метожа конфигурации/библиотеки в виде inlay hints. По умолчанию настройка установлена в true. Доступные параметры:
showParametersWithTheSameName - отображать параметры с именами, содержащимися в передаваемом значении. Значение параметра по умолчанию - false.
showDefaultValues - отображать значения по умолчанию для непереданных параметров. Значение параметра по умолчанию - true.
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 самостоятельно определяет расположение корневого каталога конфигурации
sendErrors Строка Режим отправки сообщений об ошибках разработчикам BSL Language Server. Подробнее - на странице Мониторинг и отправка ошибок. Возможные значения:
ask - спрашивать разрешение при каждой ошибке (установлен по умолчанию).
send - всегда отправлять сообщения об ошибках.
* never - никогда не отправлять сообщения об ошибках.

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

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

Пример

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

  • Устанавливает язык сообщений диагностик - английский;
  • Изменяет настройку диагностики LineLength - Ограничение на длину строки, устанавливая предел длины строки в 140 символов;
  • Отключает диагностику MethodSize - Ограничение на размер метода.
  • Включает расчет диагностик в непрерывном режиме (computeTrigger = onType)
  • Диагностики рассчитываются только по объектам подсистемы "СтандартныеПодсистемы" за исключением "ВариантыОтчетов" и " ВерсионированиеОбъектов"
{
  "$schema": "https://1c-syntax.github.io/bsl-language-server/configuration/schema.json",
  "language": "en",
  "diagnostics": {
    "computeTrigger": "onType",
    "parameters": {
      "LineLength": {
        "maxLineLength": 140
      },
      "MethodSize": false
    },
    "subsystemsFilter": {
      "include": [
        "СтандартныеПодсистемы"
      ],
      "exclude": [
        "ВариантыОтчетов",
        "ВерсионированиеОбъектов"
      ]
    }
  }
}