Может ли Uncrustify выравнивать двоеточия в вызовах метода Objective C? - PullRequest
15 голосов
/ 02 июня 2009

Я использую 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 отмечает, что эта функция была доступна в хранилище Uncrustify svn начиная со сборки 1581. Она находится в версии Uncrustify 0.54. Установите align_oc_msg_colon = true в вашем конфигурационном файле, чтобы включить его.

Дальнейшее обновление

Для людей, которые найдут этот ответ в будущем: Имя предпочтения в файле .cfg было изменено. Теперь align_oc_msg_colon_span= 1 чтобы получить поведение, описанное выше. Также теперь есть align_oc_decl_colon = true, который будет использовать имя для многострочных объявлений.

Ответы [ 2 ]

10 голосов
/ 23 июня 2009

Я немного поиграл с этим вчера вечером, и (хотя я не думаю, что это заслуживает награды) ответ на оба ваших вопроса: «Нет, текущие версии (.53) Uncrustify не делают этого . "

Я даже исследовал написание патча, чтобы сделать именно это (потому что я действительно этого тоже хочу) и после просмотра источника Uncrustify, и пришел к выводу, что это займет гораздо больше времени, чем у меня было, чтобы выяснить, куда вставить патч чтобы выполнить «выравнивание двоеточия параметра многострочного сообщения», а не «выравнивание многострочного сообщения по левому краю» Похоже, что в последних исправлениях произошли некоторые улучшения в разборе Objective-C.

Я так надеялся, что кто-нибудь ответит на этот вопрос. Я тоже очень хотел знать.

ПРИМЕЧАНИЕ: Для людей, которые найдут этот ответ в будущем: Имя предпочтения в файле .cfg было изменено. Теперь выровняйте по параметру align_oc_msg_colon_span = 1 поведение, описанное выше. Также есть метод align_oc_decl_colon, который будет выполнять функцию имени для многострочных объявлений.

0 голосов
/ 18 июня 2009

Вы пробовали:

align_var_def_colon=true
...