Ищете более гибкий инструмент, чем отступ для GNU - PullRequest
8 голосов
/ 19 сентября 2008

Когда я запускаю отступ с различными опциями, которые я хочу, для моего источника, он делает то, что я хочу, но также портит размещение символов * в типах указателей:

  -int send_pkt(tpkt_t* pkt, void* opt_data);
  -void dump(tpkt_t* bp);
  +int send_pkt(tpkt_t * pkt, void *opt_data);
  +void dump(tpkt * bp);

Я знаю, что мое размещение * s рядом с типом, а не переменной, нетрадиционно, но как я могу получить отступ, чтобы просто оставить их в покое? Или есть другой инструмент, который будет делать то, что я хочу? Я просмотрел справочную страницу, информационную страницу и посетил полдюжины страниц, предложенных Google, и не могу найти вариант, чтобы сделать это.

Я пробовал Artistic Style (a.k.a. AStyle), но не могу понять, как сделать его отступ в кратном 4, а сделать каждые 8 ​​табуляцией. То есть:

if ( ... ) {
<4spaces>if ( ... ) {
<tab>...some code here...
<4spaces>}
}

Ответы [ 2 ]

17 голосов
/ 19 сентября 2008

Uncrustify

У Uncrustify есть несколько опций, как сделать отступ для ваших файлов.

Из файла конфигурации:

indent_with_tabs                           
  How to use tabs when indenting code  
  0=spaces only  
  1=indent with tabs, align with spaces  
  2=indent and align with tabs

Вы можете найти его здесь .

БЦППЫ
С веб-сайта: "bcpp делает отступ исходных программ C / C ++, заменяя табуляции пробелами или наоборот. В отличие от отступа, он (по замыслу) не пытается обернуть длинные операторы."
Найдите его здесь .

UniversalIndentGUI
Это инструмент, который поддерживает несколько beautifiers / formatters. Это может привести вас к еще большему количеству альтернатив.
Найдите его здесь .

Художественный стиль
Вместо этого вы можете попробовать Artistic Style aka AStyle (даже если он не делает то, что вам нужно, я оставлю это здесь на случай, если кто-то еще сочтет это полезным).

2 голосов
/ 19 сентября 2008

Взломайте и измените его поведение, редактируя код. Это GNU в конце концов. ; -)

Поскольку это, вероятно, не тот ответ, который вы хотели, вот еще одна ссылка: http://www.fnal.gov/docs/working-groups/c++wg/indenting.html.

...