Лучшее средство форматирования / украшения кода C ++

127

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

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

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

Кристофер Джонсон
источник

Ответы:

120

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

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


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

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

Его можно настроить с помощью множества перечисленных здесь опций .

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

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

Он используется Google и другими и готов к производству.


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


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

Bill the Lizard
источник
1
У нас есть несколько беспорядочных исходных файлов, полных сложных макросов, из-за чего трудно понять, как изменить код или установить точки останова. Мы удалили макрос с помощью gcc -E, что привело к очень длинным строкам вложенных циклов for, операторов if и т. Д. Astyle исправил это, чтобы оно было читаемым, что избавило нас от множества проблем. У Astyle есть постоянное место на моей программной полке!
DarenW
8
Совет Vim: если вы хотите украсить код в файле, который вы редактируете, используйте:%! Astyle
tonylo
Это отличный инструмент. Я запускаю Astyle каждый раз, когда мне приходится работать над одним и тем же проектом как с MSVStudio в Windows (на работе), так и с emacs в Linux (дома). Я использую стиль BSD с emacs и astyle (который близок к стилю, который я использую с редактором MSVC), и у меня всегда есть исходный код с правильным отступом. Он даже выглядит красиво независимо от размера вкладки!
Alexandre C.
1
Пробовал. Получить быстрый результат очень просто (документ хорош). Жаль, что вариантов не так много! Некоторые программисты очень творчески подходят к тому, как они дополняют свой код пробелами, и AStyle не справляется со всем этим творчеством.
ярость
Варианта максимальной ширины линии нет. Это должно быть обязательно.
Sogartar 08