Uncrustify可以在Objective-C方法调用中对齐冒号吗?

时间:2009-06-02 10:04:37

标签: objective-c uncrustify

我正在使用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配置文件中是否有一个选项可以支持我想要的内容,或者只是不支持对齐的冒号?

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

更新

mmc注意到此功能在Build 1581中的Uncrustify svn存储库中可用。它处于unrustify 0.54。在配置文件中设置align_oc_msg_colon = true以启用它。

进一步更新

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

2 个答案:

答案 0 :(得分:10)

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

我甚至研究过写一个补丁来完成这个(因为我真的也想要它)并且在查看Uncrustify源之后,并得出结论,它将花费比我可用的更多时间来确定插入补丁的位置完成“多行消息参数冒号对齐”而不是“多行消息左对齐”似乎在最近的补丁中对Objective-C解析有一些改进。

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

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

答案 1 :(得分:0)

你有没有尝试过:

align_var_def_colon=true