Skip to content

Latest commit

 

History

History
59 lines (49 loc) · 11.8 KB

ConfigurationFile.md

File metadata and controls

59 lines (49 loc) · 11.8 KB

Конфигурирование 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-объект, представляющего собой набор настроек диагностики.

Ключ, включена ли по умолчанию, а также описание возможных параметров и примеры для конфигурационного файла представлены на странице с описанием каждой диагностики.
documentLink JSON-Объект Содержит настройки ссылок на документацию
⤷   showDiagnosticDescription Булево Показывать дополнительные ссылки на документацию по диагностикам. По умолчанию параметр выключен (установлен в false)
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
    }
  }
}