Как заставить clang-tidy применять FixItHints последовательно, один за другим?

Я пишу аккуратную проверку, которая переместит комментарий в нужное место вот так:

До:

/// comment 1
void func();
void func2(); /// comment 2
void func3(); /// comment 3

После:

/// comment 1
void func();
/// comment 2
void func2();
/// comment 3
void func3();

Пытаюсь удалить /// comment 3, а потом вставить перед void func3();.

Но сначала clang-tidy-check должен прочитать комментарий перед void func3();. Чек читает /// comment 2, потому что /// comment 2 не успевает удалить.

Как заставить tidy-check применять исправления в том порядке, в котором найдены методы?


person Alexander Kuznetsov    schedule 03.04.2019    source источник


Ответы (1)


На ум приходит один простой (или глупый?) Трюк - сделайте так, чтобы ваша чеканная проверка применяла только одно исправление за раз (т.е. завершите обработку кода после того, как будет найдено одно место, которое нужно исправить). Затем напишите простой скрипт python, который будет запускать clang-tidy снова и снова с включенной проверкой, пока не появится что-то для обработки. Вы можете вдохновиться run-clang-tidy.py, но ваш, конечно, будет намного проще.

person pablo285    schedule 10.04.2019