с отступом gnu как сделать int * to int * - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу изменить

int *i;

на

int* i;

с помощью отступа GNU.Как я могу это сделать?

Если не возможно, как, по крайней мере, сделать стиль Кернигана и Ричи

int * i;

до

int *i;

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Я не нашел ни одной соответствующей опции в Руководстве по отступам GNU .В качестве альтернативы можно использовать AStyle , который предлагает параметр --align-pointer:

с --align-pointer=type / -k1:

int* a;

С --align-pointer=middle / -k2:

int * a;

С --align-pointer=name / -k3:

int *a;
0 голосов
/ 05 декабря 2018

Как я могу это сделать?

Если не возможно, как, по крайней мере, сделать стиль Kernighan & Ritchie

В документации для отступа GNU четко не описан ни один вариантособенно затрагивает пробел вокруг звездочки в объявлении указателя, но у него есть зонтичная опция -kr для запроса стиля K & R, и я обнаружил, что это заставляет indent выполнить запрашиваемое форматирование, прижимая звездочку рядом сидентификатор.Конечно, он также имеет много других эффектов, хотя они могут быть переопределены дополнительными явными опциями.

Опция общего стиля -gnu, которая используется по умолчанию, также имеет этот эффект,Это затрудняет выбор того, какая опция детализации управляет этим конкретным поведением, но, безусловно, один ответ на ваш вопрос заключается в том, что indent преобразует ваши объявления указателей в стиль K & R, который вы описываете, без каких-либо опций.

На самом деле, насколько я могу судить, indent будет выполнять это конкретное форматирование независимо от того, какие опции вы предоставляете.Кажется, нет никакой возможности модулировать такое поведение.

0 голосов
/ 05 декабря 2018

Полагаю, у gnu идент нет этой опции.Формат CLang, с другой стороны, кажется, имеет параметр PointerAlignment , который может принимать следующие параметры:

Возможные значения: PAS_Left (в конфигурации: слева). Выровнять указатель поleft.

int* a;

PAS_Right (в конфигурации: справа). Выровнять указатель вправо.

int *a;

PAS_Middle (в конфигурации: Middle). Выровнять указатель по центру.

int * a;

Более подробную информацию можно найти здесь: https://clang.llvm.org/docs/ClangFormatStyleOptions.html

...