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

Использование служебных тегов (UsingServiceTag)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL
OS
Информационный Да 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": ""
}