Can Uncrustify align colons in Objective-C method calls?

淺唱寂寞╮ 提交于 2019-11-27 05:37:28

问题


I am using uncrustify 0.52. When I run it against Objective-C files, it wants to convert method invocations like this:

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

to this:

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

I prefer the first version, with the colons aligned. Is there an option in the uncrustify config file that can support what I want, or does uncrustify just not support aligned colons?

If uncrustify can't align the colons, is there a way to prevent it from de-aligning the colons that I've aligned myself?

Update:

mmc notes that this feature was available in the Uncrustify svn repository as of build 1581. It is in uncrustify 0.54. Set align_oc_msg_colon = true in your config file to enable it.

Further Update

For people who find this answer in the future: The name of the preference in the .cfg file has been changed. It is now align_oc_msg_colon_span= 1 to get the behavior described above. There is also now a align_oc_decl_colon = true that will do the name thing for multi-line declarations.


回答1:


I played around with this for some time last night, and (although I don't think that this deserves the bounty) the answer to both your questions is "no, current versions (.53) of Uncrustify do not do this."

I even investigated writing a patch to do exactly this (because I really want it, too) and after looking at the Uncrustify source, and concluded it would take far more time than I had available to figure out where to insert the patch to accomplish "multi-line message parameter colon alignment" rather than "multi-line message left alignment" It does seem that there has been some improvements to Objective-C parsing in recent patches.

I was so hoping someone would answer this question. I really wanted to know, too.

NOTE: For people who find this answer in the future: The name of the preference in the .cfg file has been changed. It is now align_oc_msg_colon_span = 1 to get the behavior described above. There is also now a align_oc_decl_colon that will do the name thing for multi-line declarations.




回答2:


Did you try:

align_var_def_colon=true


来源:https://stackoverflow.com/questions/938775/can-uncrustify-align-colons-in-objective-c-method-calls

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!