Обновить

Автоматизация внесения исправлений в исходные файлы С++ с помощью CLang LibTooling

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели849
Всего голосов 4: ↑2 и ↓2+2
Комментарии2

Комментарии 2

КМК для решения этой задачи

... автоматизация поиска и замены различных синтаксических конструкций в исходных файлах С++. Причем не только в виде вывода пользователю в консоль или на экран в среду разработки, но и напрямую в файл.

Стандартное решение в экосистеме clang\llvm - это свой модуль для clang tidy (если не нашлось подходящего среди сотен существующих опубликованных). Многие из них с поддержкой авто-замены (колонка Offers fixes).

Есть и оффициальные гайды по вкатыванию в свои модули, с примерами и скриптами-помогаторами

В этой части статья мало чего нового предлагает и без опоры на существующий опыт

Статью я переводить не стал, так как материала много и он технически сложный, а заодно и передаю привет ППА Хабра.

А в чем собственно суть статьи? По содержанию на пост больше тянет имхо (и скорее в собственном блоге)

Стандартное решение в экосистеме clang\llvm - это свой модуль для clang tidy (если не нашлось подходящего среди сотен существующих опубликованных).

Это примерно та же самая задача, только по диагонали. Если вы её можете решить с помощью clang tidy и его различных проверок, тогда вам кроме этого больше ничего делать действительно не нужно.

clang-tidy check is a good choice for linter-style checks, checks that are related to a certain coding style, checks that address code readability, etc.

Но если нужно решать вопросы выходящие за рамки стиля кодирования или читаемости кода, то тут без программирования никак не обойтись. А разрабатывать модуль для clang tidy или сразу с помощью LibTooling (который в clang tidy и используется), это уже дело вкуса.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации