<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61413>61413</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Separate ConsecutiveIndent for arguments/parameters
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          BahJiy
      </td>
    </tr>
</table>

<pre>
    is it possible to have ConsecutiveIndent value just for function/constructor arguments/parameters?

I would like to format my code as:

```cpp
struct TestStruct {
 TestStruct(
            const std::string& aReallyLongStringHere,
 const std::string& anotherLongString ):
            _someStrHere( aReallyLongStringHere ),
            _anotherStr( anotherLongString ) {
        int x = 10;
        assert( x + x == 20 );
    }

 auto doSomethingHere( 
            int aLongNameForNoReason,
 double anotherLongName ) const
            -> double {
        return aLongNameForNoReason + anotherLongName
           + anotherLongName;
 }
 }
```

When the parameters overflows to the next line, they are double indent, but if a statement overflows, it is only one single indent. Currently, ConsecutiveIndent will force both the parameters and statement to be the same indent on overflow.

I got somewhat close with my current config, it's slightly off
```
---
BasedOnStyle: Chromium
AlignAfterOpenBracket: AlwaysBreak
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Empty
AllowShortFunctionsOnASingleLine: Empty
AllowShortLambdasOnASingleLine: Inline
AlwaysBreakBeforeMultilineStrings: false
BitFieldColonSpacing: After
BreakBeforeBinaryOperators: All
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
ColumnLimit: 53
CompactNamespaces: true
ContinuationIndentWidth: 8
Cpp11BracedListStyle: false
EmptyLineBeforeAccessModifier: Always
IncludeBlocks: Regroup
IndentCaseBlocks: true
IndentExternBlock: Indent
IndentGotoLabels: false
IndentPPDirectives: AfterHash
IndentWidth: 4
InsertBraces: true
NamespaceIndentation: All
ReferenceAlignment: Left
SeparateDefinitionBlocks: Always
SortIncludes: CaseInsensitive
SpaceAfterTemplateKeyword: false
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: false
SpaceBeforeParens: Never
SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: true
SpacesInCStyleCastParentheses: true
SpacesInConditionalStatement: true
SpacesInParentheses: true
SpacesInSquareBrackets: true
Standard: c++20
TabWidth: 4
UseTab: Always
```

```cpp
struct TestStruct {
 TestStruct(
            const std::string& aReallyLongStringHere,
 const std::string& anotherLongString ):
        _someStrHere( aReallyLongStringHere ),
        _anotherStr( anotherLongString ) {
 int x = 10;
        assert( x + x == 20 );
    }

    auto doSomethingHere(
            int aLongNameForNoReason,
 double anotherLongName ) const
            -> double {
        return aLongNameForNoReason + anotherLongName
               + anotherLongName;
    }

    std::string _someStrHere;
 std::string _anotherStr;

}

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcV0tv4zYQ_jX0hUhgS7HjHHzwY91N602COMUeizE1krihSJUcxXF_fUFKluVHkLZAL2sEjsH55vXNDB_gnMw04oQNZ2y46EFFubGTGeS_yl1vY5LdRDouiZfGOblRyMnwHN6Qz412KCqSb3ivE9TE30BVyH9UjnhqLE8rLUgazaKlMNqRrQQZy8FmVYGaHIuWJVgokNA6Fi9Zf8H60_r7nm9NpRKu5GvwmBpbAPFix4VJkINj8bSLZ6N-_SfKsl6p_fEXdLSuf7LbWS3qLLJo3Kx1PiFa7ijxTmJvSeqMRSMOzwhK7VZGZ-uw-BUtsmjemPhYTxvK0R70OIvu2gy6rv9wpsA12drw-LLHoN167Wo3jtZkg_Iltx0amo_UxN85ixd80GfxiRCcQ-tp8pBoVgM9NurXSXTw7HbRrQmHigxPzNoUSHnL1pifB-5DAB_nAxS4NPbBPCM43zr7LBNT-ebrpOShIaFA-7nNKxZ_2aud5WyRKqsv-gxpnvg5s34J01LR8tBhZN-fXYK-56g55cgPY8DNG9pUma3zXe9lGt-JK6l9n_mFHQeL-7xkGDwv2VTEZcqBOwJCP18HU14uiUvHjVY7bjRyJ3XW6l_zeWUtalI7Dz0f7K1Uyo-gQL4xlJ_GDDrpuCXDNxggzleodsGNbuO5Ph70zBD3Xb_NgbhQxiHfSsrDrNdh-QqnMqvTYNGt407JLCefS5peJPjq6qr-MQOHyaNe004hi6d8nltTyKqopVMlMz1NCe1jiXpmQbwiedhUbWHnZhbhdY9UZjtVarrfvR71A77TyhcmnvIUlMNj5FNL0GO6QKHAgt8Nj_XIVl21dW4szZQRr-5RT9ehSHvol6Kk3Sl22eyx_xC-gmKTwDn4XocOa9Bt6jNMjcVvlSLp5fUm4k7ynUlaSlTJ3Cij1yUIv-l5Cj2tDeRgbCY12N1jiRbIWFdzrTqw-eGouNeSJCj5FzZAbzG46eDvdY5WEmiBK-noEm5uVFXolSxkEA_j_XJRgiA_u64Ege64IHOjSeoqFK2eg-8yodyDmjNjXpaDgW8aTLzrtsc65IQqeJbr7KdCoHPfTCJTifbQaM0saKGqBOv6e-EzZtZU5V7qY5iD6wAO0dbSL--EVgd5XdawPXQAvxgyK9igOq1iLX56WkiLwo_-gfGv4PIuqKXhZr_qj4jAw0lQLbW1YqDyqOLPmKJFLTAMop8rL15h2gS9Rr_NEC4wlb4ZjD7k3mVubSw17AWZZ8mHpZ30uTQgH0nI6AWLUgHhb7jbGpucUBFwdb3mx11Y99SH6E4rfoJ8Aos6RPqAb_sp6cifQWcYtq6lsStjyg_t3evQYm3JD-R3xcEf5ehOKxRA7l7PQ_POwdHnUKOTUApQ6_2mfxn5qan1nxVYbLbdUwyBTqAujmDRjEWzqNncX2Bz2oO_O3yBzWlbXDx1f4ar4n-_Jv7LK-L_djf06pevhz_B7fDTG-JlQk7a4bjKre4ZqlPRPaj5PnbRNn4vmcTJXXwHPZwMRrfjcRSPo7iXT8bjOEkHAGMcRIjpZjQcwSCNYdCPQQw3w56cRP0o7seDm8Hd8LYfX0dCxLd9MdzEo-gmHQl208cCpLpW6q24NjbrSecqnIwGN4O4p8LJE56aUaRxy4OQRZF_edqJ17naVJljN30lHbmDFZKkwhtVKNDZVf0cZMMF358QF26t6YePzV5l1SQnKsMzMlqyaJlJyqvNtTAFi5bebfPvqrTmB_rpX4ZgvaGQzN8BAAD__1el1V0">