Использование служебных тегов (UsingServiceTag)¶
| Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
|---|---|---|---|---|---|
Дефект кода |
BSLOS |
Информационный |
Да |
0 |
badpractice |
Параметры¶
| Имя | Тип | Описание | Значение по умолчанию |
|---|---|---|---|
serviceTags |
Строка |
Служебные теги |
todo|fixme|!!|mrg|@|отладка|debug|для\s*отладки|(\{\{|\}\})КОНСТРУКТОР_|(\{\{|\}\})MRG|Вставить\s*содержимое\s*обработчика|Paste\s*handler\s*content|Insert\s*handler\s*code|Insert\s*handler\s*content|Insert\s*handler\s*contents |
additionalServiceTags |
Строка |
Дополнительные служебные теги (регулярное выражение) |
`` |
excludedServiceTags |
Строка |
Исключаемые служебные теги (регулярное выражение; исключения имеют приоритет) |
`` |
Описание диагностики¶
Диагностика отлавливает использование служебных тегов в комментариях. Список тегов:
- TODO
- FIXME
- !!
- @
- MRG
- ОТЛАДКА
- ДЛЯ ОТЛАДКИ
- КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
- КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
- КОНСТРУКТОР_ПЕЧАТИ
- КОНСТРУКТОР_ВВОДА_НА_ОСНОВАНИИ
- Вставить содержимое обработчика
- Insert handler code
- Insert handler contents
- Paste handler content
Параметр serviceTags заменяет стандартное регулярное выражение целиком.
Чтобы сохранить стандартные теги (включая добавляемые в будущих версиях), оставьте его без изменений:
additionalServiceTags— регулярное выражение для дополнительных тегов. По умолчанию пустое (добавлений нет).excludedServiceTags— регулярное выражение для исключений. По умолчанию пустое (исключений нет).
Пустые и состоящие только из пробельных символов значения дополнений и исключений отключают соответствующую настройку.
Исключения проверяются для каждого найденного тега и имеют приоритет над обоими наборами.
Исключённый тег не мешает найти другой тег в том же комментарии: например, при исключении @ строка
// @strict-types // TODO: проверить всё равно вызовет замечание на TODO.
На комментарий выдаётся не больше одного замечания: сначала ищется неисключённый тег из serviceTags, затем из дополнений.
Выражения проверяют текст после // и необязательных пробельных символов без учёта регистра, включая кириллицу.
Пробелы в выражении игнорируются; для пробельных символов используйте \s, для литерального # — \#.
Границы слов автоматически не добавляются: todo совпадает и с todos; для целого слова укажите todo\b.
В JSON обратную косую черту нужно удваивать: "todo\\b".
Если используются обратные ссылки на захватывающие группы, первая пользовательская группа имеет номер 2.
У каждого выражения собственная нумерация групп.
Например, исключить аннотации EDT, начинающиеся с @, и добавить тег REVIEW, сохранив остальные стандартные теги:
{
"diagnostics": {
"parameters": {
"UsingServiceTag": {
"excludedServiceTags": "@",
"additionalServiceTags": "review\\b"
}
}
}
}
Эти параметры также применяются к пользовательскому serviceTags.
Сниппеты¶
Экранирование кода¶
// BSLLS:UsingServiceTag-off
// BSLLS:UsingServiceTag-on
Параметр конфигурационного файла¶
"UsingServiceTag": {
"serviceTags": "todo|fixme|!!|mrg|@|отладка|debug|для\\s*отладки|(\\{\\{|\\}\\})КОНСТРУКТОР_|(\\{\\{|\\}\\})MRG|Вставить\\s*содержимое\\s*обработчика|Paste\\s*handler\\s*content|Insert\\s*handler\\s*code|Insert\\s*handler\\s*content|Insert\\s*handler\\s*contents",
"additionalServiceTags": "",
"excludedServiceTags": ""
}