2008-09-19 30 views
8

当我运行我想对我的源的各种选项缩进,但它确实我想要什么,但也与* S的指针类型的布局打乱:寻找比GNU缩进一个更灵活的工具

-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); 

我知道在类型旁边放置*,不是变量是非常规的,但我怎样才能缩进来让它们独立?还是有另一种工具可以做我想要的?我查看了手册页,信息页面,并访问了Google建议的六个页面,我找不到这样做的选项。

我试过艺术风格(a.k.a.AStyle),但似乎无法弄清楚如何使它缩进4的倍数,但使每8个选项卡。那就是:

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

由八个空格制表位缩进四个空格可能会加剧其他尝试维护您的代码的其他人。那些使用四空间选项卡的人(比如Visual Studio程序员)会相信你搞砸了缩进。那些使用八个空格标签的用户不喜欢缩进四个字符。 – 2008-09-19 19:10:15

回答

17

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

你可以找到它here

BCPP
从网站:“ BCPP缩进C/C++源码程序,用空格或反向替换选项卡不同于缩进,它(通过设计)不尝试包裹长陈述”。
找到它here

UniversalIndentGUI
它支持多种美化/格式化的工具。它可能导致你更多的选择。
找到它here

艺术风格
你可以尝试Artistic Style aka AStyle代替(尽管它不会做你需要做的,我会离开这里,以防别人发现它很有用)。

+0

加1,刚刚试用了uncrustify的通用缩进gui,为您提供源文件的“实时”预览。 – Nick 2015-01-01 23:09:27