Очистить + лямбда

У меня возникли проблемы с получением uncrustify для форматирования лямбда-выражений C++

вот во что он превращает мою лямбду:

auto print = [](auto const &i, qi::unused_type, qi::unused_type)
             {
                 qDebug() << i;
             };

Это то, что я хотел бы:

auto print = [](auto const &i, qi::unused_type, qi::unused_type)
{
    qDebug() << i;
};

У кого-нибудь сейчас какая настройка отвечает за позиционирование брекетов?


person Tom Kulaga    schedule 12.07.2016    source источник
comment
Не могли бы вы поделиться своим конфигурационным файлом Uncrustify?   -  person Quirk    schedule 12.07.2016
comment
Вот вам ссылка   -  person Tom Kulaga    schedule 12.07.2016


Ответы (1)


Глядя на ваш файл конфигурации, кажется, что есть несколько мошеннических настроек:

  1. В строке 223

    # Align continued statements at the '='. Default=True
    # If FALSE or the '=' is followed by a newline, the next line is indent one tab.
    indent_align_assign                       = true     # false/true
    

    Как видите, вы присваиваете символу лямбду. Дополнительные новые строки настроены так, чтобы выравниваться со знаком = назначения.

  2. В строках 830 и 833

    # The span for aligning on '=' in assignments (0=don't align)
    align_assign_span                         = 1        # number
    
    # The threshold for aligning on '=' in assignments (0=no limit)
    align_assign_thresh                       = 0        # number
    

    Если вам не хочется менять конфигурацию в строке 223, возможно, вы можете попробовать поиграть с этой парой настроек.

Если изменение какого-либо из этих параметров кажется вам маловероятным, возможно, вам придется серьезно изменить стиль кода. Во-первых, я вижу, что лямбда-пример подходит как однострочный оператор. Может быть, держать их в одной строке. (Они останутся такими, поскольку строка 964 в вашем конфигурационном файле гарантирует это).

person Quirk    schedule 13.07.2016
comment
Спасибо, что прошлись по нему так подробно. 830/833 не помогают, так как ламбы занимают несколько строк (в их текущем состоянии) охватывают несколько строк, поэтому диапазон должен быть равен 6, что будет конфликтовать с другими. Пока что редактирование строки 223, кажется, делает то, что я хочу. Я пока пойду с этим. Я не хочу делать эти ламбы одним вкладышем, поскольку их список аргументов огромен. - person Tom Kulaga; 14.07.2016