uncrustify: как объединить аргументы многострочного вызова функции C в одну строку?

Я использую uncrustify 0.69.0 (пока не могу скомпилировать 0.71.0). У меня есть следующее:

sendto(cmd_sock, buf, strlen(buf),
                0, (struct sockaddr *)&fromCmd,
                sizeof(struct sockaddr_in));

И я хочу, чтобы uncrustify объединил их в одну строку:

sendto(cmd_sock, buf, strlen(buf), 0, (struct sockaddr *)&fromCmd, sizeof(struct sockaddr_in));

Этот старый вопрос 2012 года похож, но существовал во время гораздо более старой версии uncrustify и не имел решения: Uncrustify Collapse Multiline Function Call Есть ли сегодня решение?

27.07.2020- Я пытался оставить комментарий, но он не ограничил меня практически ничем ценным. Итак, я обновляю свой первоначальный вопрос.... странно - nl_func_call_args не найден в моих файлах конфигурации.... но это:

# Whether to add a newline after each ',' in a function call if '(' and ')'
# are in different lines.
nl_func_call_args_multi_line    = false    # true/false

Обратите внимание, что параметры не позволяют удалять. Выполнение поиска во всех файлах конфигурации, которые у меня есть до .67, не находит nl_func_call_args. если удалить любой .uncrustify.cfg и запустить uncrustify --update-config, то НЕ будет найден nl_func_call_args. Когда я получаю новую версию uncrustify, я ВСЕГДА запускаю ее по умолчанию и анализирую, что изменилось. Только так я могу доверять конфигам. Мой первоначальный вопрос остается в силе. Речь идет о создании стандарта для кода C. Я вижу МНОГО безумного форматирования вызовов функций, особенно в последние годы. Единственный способ привести его в форму — это СНАЧАЛА удалить все многострочное дерьмо. Затем я могу отредактировать, если это необходимо, в лучший формат. В противном случае я редактирую КАЖДУЮ вонючую строку. Для справки: я пишу на C с 1981 года и почти на 100 % придерживаюсь K&R. У меня есть несколько отклонений. Я также использую VI, поэтому ВСЕ функции формата, которые были в оригинальном VI, я все еще хочу, чтобы код придерживался, чтобы этот редактор работал правильно. с уважением


person oldunixguy    schedule 02.06.2020    source источник
comment
Не затруднит ли это чтение кода из-за расширения полей?   -  person Steve Friedl    schedule 02.06.2020
comment
Вы пробовали удалять новые строки?   -  person Thomas Matthews    schedule 02.06.2020
comment
@ThomasMatthews - я думаю, они хотят, чтобы реформатор делал это автоматически; Я рассматриваю вопрос как общее правило переформатирования, а не как вручную отредактировать одну строку.   -  person Steve Friedl    schedule 02.06.2020
comment
Есть ли причина сделать это одной строкой? Это не влияет на производительность кода. Не влияет на скорость компиляции или сборки. Размер сохраненного файла незначителен.   -  person Thomas Matthews    schedule 02.06.2020
comment
Переформатирование кода касается исключительно удобочитаемости и соблюдения общего стиля, а не производительности.   -  person Steve Friedl    schedule 02.06.2020


Ответы (1)


# Add or remove newline after each ',' in a function call.
nl_func_call_args               = remove   # ignore/add/remove/force

Эта опция была введена 27 июня 2016 г. (796b5ba5).

person CDanU    schedule 26.07.2020
comment
странно.... не нашел в моих конфигурационных файлах.... но это: # Добавлять ли новую строку после каждого ',' в вызове функции, если '(' и ')' # находятся в разных строках. nl_func_call_args_multi_line = false # истина/ложь - person oldunixguy; 28.07.2020