问题
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