Я нашел обходной путь, который соответствует моей цели (у меня есть ограниченный список файлов, которые я хочу отфильтровать, и они имеют уникальные имена)
Я использую линейный фильтр и добавляю все файлы, которые я хочу отфильтровать. В диапазон строк я помещаю несуществующую строку, таким образом она отфильтровывает файл. В конце строкового фильтра я добавляю .h и .cpp, чтобы он фильтровал остальные файлы.
Eg.lets говорят, что я хочу отфильтровать только coco.cpp
-line-filter=[{"name":"coco.cpp","lines":[[9999999,9999999]]},{"name":".h"},{"name":".cpp"}]
Следует отметить одну вещь, и почему я подумал, что это не сработало, так это то, что строковый фильтр работает только после того, как он выполняет анализ, а заголовочный фильтр работает только для включений.
В coco.cpp у меня была строка (вызов шаблона), которая вызвала предупреждение, но предупреждение показывалось в заголовке, который должен был быть отфильтрован фильтром заголовка.
Оно не было отфильтровано, потому что предупреждение было из-за cpp, но фактическое предупреждение показывалось в заголовке, поэтому фильтр строки не помогал, пока я не поместил этот конкретный заголовок в фильтр строки.
Не очень интуитивно понятно.