【问题标题】:Looking for a more flexible tool than GNU indent寻找比 GNU indent 更灵活的工具
【发布时间】:2010-09-11 05:41:20
【问题描述】:

当我对我的源代码使用各种我想要的选项运行缩进时,它会做我想要的,但也会混淆 *s 在指针类型中的位置:

  -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 放置在类型而不是变量旁边是非常规的,但我怎样才能缩进让它们不理会?还是有其他工具可以满足我的要求?我查看了手册页、信息页,并访问了谷歌建议的六个页面,但我找不到执行此操作的选项。

我尝试了艺术风格(又名 AStyle),但似乎无法弄清楚如何使其缩进为 4 的倍数,但将每 8 个缩进一个制表符。那就是:

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

【问题讨论】:

  • 缩进四个空格和八个空格制表位可能会激怒其他试图维护您的代码的人。那些使用四空格制表符的人(例如,Visual Studio 程序员)会认为您搞砸了缩进。那些使用八空格制表符的人不会喜欢缩进四个字符。

标签: pretty-print indentation


【解决方案1】:

去壳

Uncrustify 有几个关于如何缩进文件的选项。

来自配置文件:

indent_with_tabs
  缩进代码时如何使用制表符
  0=只有空格
  1=缩进制表符,对齐空格
  2=缩进并与制表符对齐

你可以找到它here

BCPP
来自网站:“bcpp 缩进 C/C++ 源程序,将制表符替换为空格或反之。与缩进不同,它(按设计)不尝试包装长语句。”
找到它here

UniversalIndentGUI
它是一个支持多种美化器/格式化器的工具。它可以为您带来更多选择。
找到它here

艺术风格
你可以试试Artistic Style aka AStyle 代替(即使它不能做你需要做的事情,我会把它留在这里以防其他人发现它有用)。

【讨论】:

  • Plus 1,刚刚试用了带有 uncrustify 的通用缩进 gui,为您提供源文件的“实时”预览。
【解决方案2】:

修改代码并更改其行为。毕竟是 GNU。 ;-)

由于这可能不是您想要的答案,这里是另一个链接:http://www.fnal.gov/docs/working-groups/c++wg/indenting.html

【讨论】:

  • 那个链接已经失效了。它只是重定向到费米实验室主页。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多