я хочу измениться
int *i;
в
int* i;
с помощью отступа GNU. Как я могу сделать это?
Если не возможно как хотя бы сделать
Керниган&ричи стиль
int * i;
в
int *i;
Я полагаю, у gnu идент нет этой опции. Формат CLang, с другой стороны, кажется, имеет PointerAlignment опция, которая может принимать следующие опции:
Возможные значения:
PAS_Left
(в конфигурации: слева) Выровнять указатель по левому краю.
int* a;
PAS_Right
(в конфигурации: справа) Выровнять указатель вправо.
int *a;
PAS_Middle
(в конфигурации: по центру) Выровнять указатель по центру.
int * a;
Более подробную информацию можно найти здесь: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
Я не нашел соответствующей опции в Руководство по отступам GNU. Альтернативой было бы использовать Стиль, который предлагает --align-pointer
опция:
С --align-pointer=type
/ -k1
:
int* a;
С --align-pointer=middle
/ -k2
:
int * a;
С --align-pointer=name
/ -k3
:
int *a;
Как я могу сделать это?
Если не возможно, как хотя бы сделать керниган&ричи стиль
Документация для отступа GNU не содержит четкого описания какой-либо опции, конкретно затрагивающей пробел вокруг звездочки в объявлении указателя, но она имеет зонтичную опцию -kr
для запроса K&R стиль, и я считаю, что это вызывает indent
чтобы выполнить форматирование, которое вы запрашиваете, прижмите звездочку рядом с идентификатором. Конечно, он также имеет много других эффектов, хотя они могут быть переопределены дополнительными явными опциями.
-gnu
опция общего стиля, которая по умолчанию, также имеет такой эффект. Это затрудняет выбор того, какой параметр детализации управляет этим конкретным поведением, но, безусловно, один ответ на ваш вопрос заключается в том, что indent
преобразует ваши объявления указателя в K&Стиль R вы описываете без вариантов вообще.
На самом деле, насколько я могу судить, indent
будет выполнять это конкретное форматирование независимо от того, какие параметры вы предоставляете. Кажется, нет никакой возможности модулировать это поведение.