Как вызвать clang-format через папку проекта cpp?
есть ли способ вызвать что-то вроде этого "clang-format --style=Webkit" над папкой проекта cpp, а не запускать его отдельно внутри каждого кода?
Я использую clang-format.py и ВИМ, чтобы сделать это. Но я предполагаю, что есть более простой способ применить это один раз.
4 ответов
о:
clang-format -i -style=WebKit *.cpp
в папке проекта. Опция-i делает его на месте (по умолчанию форматированный вывод записывается в stdout).
к сожалению, рекурсивно применить clang-формат невозможно. *.cpp
будет соответствовать только файлам в текущем каталоге, а не подкаталогам. Даже **/*
не работает.
к счастью, есть решение: захватить все имена файлов с find
команда и труба их. Например, если вы хотите отформатировать весь .h
и .cpp
файлы в директории foo/bar/
рекурсивно, вы можете сделать
find foo/bar/ -iname *.h -o -iname *.cpp | xargs clang-format -i
посмотреть здесь дополнительные обсуждение.
создать .clang-format
файл, если он не существует:
clang-format -style=WebKit -dump-config > .clang-format
выполнить:
find . -regex '.*\.\(cpp\|hpp\|cc\|cxx\)' -exec clang-format -style=file -i {} \;
недавно я нашел bash-скрипт, который делает именно то, что вам нужно:
https://github.com/eklitzke/clang-format-all
это скрипт bash, который будет работать
clang-format -i
на ваш код.характеристики:
- находит правильный путь к
clang-format
на Ubuntu / Debian, который кодирует версию LLVM вclang-format
имя файла- исправлены файлы рекурсивно
- обнаруживает наиболее распространенные расширения файлов, используемые проектами C/C++
В Windows я успешно использовал его в Git Bash и WSL.