Существует ли автоматическое средство форматирования исходного кода, которое красиво переносит строки C/C++?
-
20-08-2019 - |
Вопрос
Большую часть времени я использую стиль для форматирования своего кода, и он мне нравится, но одно неудобство заключается в том, что он не может указать хотя бы «подсказку» для максимальной длины строки.Если у вас есть строка кода типа:
this->mButtonCancel->setLeftClickProc(boost::bind(&FileListDialog::cancelLeftClick, this));
Мне бы хотелось, чтобы форматировщик исходного кода мог обернуть его хотя бы умеренно разумно:
this->mButtonCancel->setLeftClickProc(
boost::bind(&FileListDialog::cancelLeftClick, this));
...вероятно, именно так я бы отформатировал эту строку кода.Для длинных списков аргументов я, вероятно, предпочел бы выравнивание по открывающей скобке, но очевидно, что в данной ситуации это не сработает.В любом случае, astyle не поддерживает какие-либо действия с длинными строками, не содержащими нескольких операторов.Кто-нибудь знает инструмент, который это делает?
Решение
GNU Indent поддерживает разрыв длинных строк.
Другие советы
Я нашел снимать корку Инструмент командной строки будет очень удобен.У него огромное количество опций, поэтому он немного сложен, но после некоторой практики он бесценен.Домашняя страница находится здесь:http://uncrustify.sourceforge.net/
Astyle 2.03 теперь поддерживает разделение строк по максимальной длине кода.
http://astyle.sourceforge.net/astyle.html#_max-code-length
Я проверил это, и оно разбивает строку с максимальной длиной кода = 80, но на основе минимально возможных изменений.Я максимизирую объем кода в строке, поэтому разрывы не всегда легко читаются (но это их нарушает).
Если вы погуглите «Beautify C Code», вы найдете несколько хороших утилит.Я знаю, что в *nix есть двоичный файл bc, который выполняет базовое форматирование.Однако он не очень настраиваемый.