Конфигурирование 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": [
"ВариантыОтчетов",
"ВерсионированиеОбъектов"
]
}
}
}