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
Ниже приведен пример настройки:
- Устанавливает язык сообщений диагностик - английский;
- Изменяет настройку диагностики 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
}
}
}