2009-05-08 2 views
127

Существует множество инструментов для форматирования исходного кода. Какие из них лучше всего подходят для C++?Лучший форматирующий код/​​код для кода C++

Меня интересуют инструменты командной строки или другие вещи, которые могут быть автоматически запущены при проверке ввода/вывода кода, желательно без необходимости запуска редактора или среды IDE.

(Если вы видите один вы, как уже перечисленные в качестве ответа, проголосуйте за него. Если его нет, добавьте его.)

ответ

120

AStyle могут быть настроены в деталях для C++ и Java (и других тоже)

Это инструмент форматирования исходного кода.


clang-format является мощным командной строки инструмент в комплекте с лязгом компилятор, который обрабатывает даже самые туманные конструкции языка согласованным образом.

Он может быть интегрирован с Visual Studio, Emacs, Vim (и другими) и может форматировать только выбранные строки (или с помощью git/svn для форматирования некоторого diff).

Он может быть сконфигурирован с множеством опций, перечисленных here.

При использовании файлов конфигурации (с именем .clang-format) стили могут быть для каждого каталога - ближайший такой файл в родительских каталогах должен использоваться для определенного файла.

Стили могут быть унаследованы от пресета (скажем, LLVM или Google) и впоследствии может переопределить различные варианты

Он используется Google и других, и это производство готово.


Также смотрите проект UniversalIndentGUI. Вы можете поэкспериментировать с несколькими indenters, используя его: AStyle, Uncrustify, GreatCode, ... и выберите лучшее для вас. Любой из них можно запустить позже из командной строки.


Uncrustify имеет много настраиваемых параметров. Вероятно, вам понадобится универсальный GUI отступов (в ответе Константина), чтобы настроить его.

+1

У нас есть некоторые грязные исходные файлы, заполненные сложными макросами, что затрудняет понимание того, как изменить код или установить точки останова. Мы де-макролировали его с помощью gcc -E, в результате получились очень длинные строки вложенных для циклов, если заявления и т. Д. Astyle исправил это, чтобы быть читаемым, избавив нас от многих неприятностей. У Astyle есть постоянное место на моих программных инструментах! – DarenW

+8

Vim tip: если вы хотите украсить код в файле, который вы используете в настоящее время, используйте:%! Astyle – tonylo

+0

Это отличный инструмент. Я запускаю астайл каждый раз, когда мне приходится работать над тем же проектом с MSVStudio на окнах (на работе) и emacs на linux (дома). Я использую стиль BSD с emacs и astyle (который близок к стилю, который я использую с редактором MSVC), и у меня всегда есть исправленный исходный код с отступом. Он даже выглядит красивым независимо от размера вкладки! –

Смежные вопросы