Существует ли автоматическое средство форматирования исходного кода, которое красиво переносит строки C/C++?

StackOverflow https://stackoverflow.com/questions/1046547

  •  20-08-2019
  •  | 
  •  

Вопрос

Большую часть времени я использую стиль для форматирования своего кода, и он мне нравится, но одно неудобство заключается в том, что он не может указать хотя бы «подсказку» для максимальной длины строки.Если у вас есть строка кода типа:

this->mButtonCancel->setLeftClickProc(boost::bind(&FileListDialog::cancelLeftClick, this));

Мне бы хотелось, чтобы форматировщик исходного кода мог обернуть его хотя бы умеренно разумно:

this->mButtonCancel->setLeftClickProc(
  boost::bind(&FileListDialog::cancelLeftClick, this));

...вероятно, именно так я бы отформатировал эту строку кода.Для длинных списков аргументов я, вероятно, предпочел бы выравнивание по открывающей скобке, но очевидно, что в данной ситуации это не сработает.В любом случае, astyle не поддерживает какие-либо действия с длинными строками, не содержащими нескольких операторов.Кто-нибудь знает инструмент, который это делает?

Это было полезно?

Решение

GNU Indent поддерживает разрыв длинных строк.

http://www.gnu.org/software/indent/manual/indent.html#SEC12

Другие советы

Я нашел снимать корку Инструмент командной строки будет очень удобен.У него огромное количество опций, поэтому он немного сложен, но после некоторой практики он бесценен.Домашняя страница находится здесь:http://uncrustify.sourceforge.net/

Astyle 2.03 теперь поддерживает разделение строк по максимальной длине кода.

http://astyle.sourceforge.net/astyle.html#_max-code-length

Я проверил это, и оно разбивает строку с максимальной длиной кода = 80, но на основе минимально возможных изменений.Я максимизирую объем кода в строке, поэтому разрывы не всегда легко читаются (но это их нарушает).

Если вы погуглите «Beautify C Code», вы найдете несколько хороших утилит.Я знаю, что в *nix есть двоичный файл bc, который выполняет базовое форматирование.Однако он не очень настраиваемый.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top