0

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;
};

ブレースの配置を担当する設定は誰ですか?

4

1 に答える 1

2

設定ファイルを見ると、不正な設定がいくつかあるようです:

  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 行目の設定を変更したくない場合は、この設定のペアを試してみてください。

これらの設定のいずれかを変更することが実際には妥当でない場合は、コード スタイルを大幅に変更する必要があるかもしれません。1 つには、例のラムダが 1 行のステートメントとして適していることがわかります。多分それらを一行に保ちます。(設定ファイルの 964 行目で保証されているため、そのままになります)。

于 2016-07-13T20:28:48.310 に答える