15

我正在使用uncrustify 0.52。当我针对 Objective-C 文件运行它时,它希望像这样转换方法调用:

[NSApp beginSheet:startTimerDialog
   modalForWindow:nil
    modalDelegate:nil
   didEndSelector:nil
      contextInfo:nil];

对此:

[NSApp beginSheet:startTimerDialog
 modalForWindow:nil
 modalDelegate:nil
 didEndSelector:nil
 contextInfo:nil];

我更喜欢第一个版本,冒号对齐。uncrustify 配置文件中是否有一个选项可以支持我想要的,或者 uncrustify 只是不支持对齐的冒号?

如果 uncrustify 不能对齐冒号,有没有办法防止它不对齐我自己对齐的冒号?

更新:

mmc指出,从 build 1581 开始,Uncrustify svn 存储库中提供了此功能。它在 uncrustify 0.54 中。在您的配置文件中设置align_oc_msg_colon = true以启用它。

进一步更新

对于将来找到此答案的人: .cfg 文件中的首选项名称已更改。现在是align_oc_msg_colon_span= 1得到上述行为。现在还有一个align_oc_decl_colon = true可以为多行声明做名称的事情。

4

2 回答 2

10

昨晚我玩了一段时间,并且(尽管我认为这不值得赏金)你两个问题的答案都是“不,Uncrustify 的当前版本(.53)不这样做。”

我什至研究了编写一个补丁来做到这一点(因为我也真的想要它)并且在查看了 Uncrustify 源代码之后,并得出结论,这将花费比我能够弄清楚在哪里插入补丁来完成的时间更多的时间“多行消息参数冒号对齐”而不是“多行消息左对齐” 在最近的补丁中,Objective-C 解析似乎确实有了一些改进。

我非常希望有人能回答这个问题。我也很想知道。

注意:对于将来找到此答案的人: .cfg 文件中的首选项名称已更改。现在是 align_oc_msg_colon_span = 1 来获得上述行为。现在还有一个 align_oc_decl_colon 将为多行声明执行名称操作。

于 2009-06-23T15:30:34.267 回答
0

你试过了吗:

align_var_def_colon=true
于 2009-06-18T03:48:05.757 回答