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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Doesn't align properly when using Java-style declaration.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    I have clang-format set up to align the declaration of variables, such that the type, variable name, etc., all align with one another. Though when using the Java-style array declaration, instead of the C-style array declaration, clang-format aligns the type `String[]` with the variables, instead of with the other types.

Java-style declaration and clang-format output:
```java
private final                String[] args;  // java-style declaration
private final A_ParserHelper parserHelper;
private final int            numOfCmdArgs;
```

C-style declaration and clang-format output:
```java
private final String         args[];  // c-style declaration
private final A_ParserHelper parserHelper;
private final int            numOfCmdArgs;
```

Below is my clang-format configurations. My clang-format version is `14.0.4`.
```yaml
---
Language:        Java
# BasedOnStyle:  Chromium
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveMacros: Consecutive
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveBitFields: Consecutive
AlignConsecutiveDeclarations: Consecutive
AlignEscapedNewlines: Left
AlignOperands:   Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false  # Maybe: Do some testing
AllowAllParametersOfDeclarationOnNextLine: false # Maybe: Do some testing
AllowShortEnumsOnASingleLine: true  # Maybe
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false # Maybe
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never # Maybe
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
AttributeMacros:
  - __capability
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
  AfterCaseLabel:  false
  AfterClass:      false
  AfterControlStatement: Never
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  AfterExternBlock: false
  BeforeCatch:     false
  BeforeElse:      false
  BeforeLambdaBody: false
  BeforeWhile:     false
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: NonAssignment  # OR None
BreakBeforeConceptDeclarations: true
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon  # OR AfterComma
BreakBeforeTernaryOperators: true  # Maybe
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon  # OR AfterColon
BreakAfterJavaFieldAnnotations: true
BreakStringLiterals: true
ColumnLimit:     88
CommentPragmas:  '^ IWYU pragma:'
QualifierAlignment: Leave  # Maybe (WARNING: Warning provided on website)
CompactNamespaces: false  # Maybe
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 8
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat:   false
EmptyLineAfterAccessModifier: Leave
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
PackConstructorInitializers: NextLine  # OR BinPack
FixNamespaceComments: false
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IfMacros:
  - KJ_IF_MAYBE
IncludeBlocks:   Merge
IncludeCategories:
  - Regex:           '^<ext/.*\.h>'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*\.h>'
    Priority:        1
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '.*'
    Priority:        3
    SortPriority:    0
    CaseSensitive:   false
IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: AfterHash
IndentExternBlock: Indent
IndentRequires:  false  # Maybe
IndentWidth:     4
IndentWrappedFunctionNames: true
InsertTrailingCommas: None
JavaScriptQuotes: Double
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: OuterScope
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true  # TODO
ObjCSpaceAfterProperty: false  # TODO
ObjCSpaceBeforeProtocolList: true  # TODO
PenaltyBreakAssignment: 2  # TODO
PenaltyBreakBeforeFirstCallParameter: 1  # TODO
PenaltyBreakComment: 300  # TODO
PenaltyBreakFirstLessLess: 120  # TODO
PenaltyBreakOpenParenthesis: 120  # TODO
PenaltyBreakString: 1000  # TODO
PenaltyBreakTemplateDeclaration: 10  # TODO
PenaltyExcessCharacter: 1000000  # TODO
PenaltyReturnTypeOnItsOwnLine: 200  # TODO
PenaltyIndentedWhitespace: 0  # TODO
PointerAlignment: Right
PPIndentWidth:   -1
ReferenceAlignment: Pointer
ReflowComments:  true
RemoveBracesLLVM: false  # Maybe (WARNING: Warning provided on website)
SeparateDefinitionBlocks: Leave  # Maybe
ShortNamespaceLines: 1
SortIncludes:    CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: true
SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: true
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: Custom
SpaceBeforeParensOptions:
  AfterControlStatements: true
  AfterForeachMacros: true
  AfterFunctionDefinitionName: false
  AfterFunctionDeclarationName: false
  AfterIfMacros:   true
  AfterOverloadedOperator: false
  BeforeNonEmptyParentheses: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles:  Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
  Minimum:         1
  Maximum:         -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
BitFieldColonSpacing: Both  # Maybe
Standard:        Auto
StatementAttributeLikeMacros:
  - Q_EMIT
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
TabWidth:        4
UseCRLF:         false
UseTab:          Never
WhitespaceSensitiveMacros:
  - STRINGIZE
  - PP_STRINGIZE
  - BOOST_PP_STRINGIZE
  - NS_SWIFT_NAME
  - CF_SWIFT_NAME
...

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWVlz2zgS_jXyC8sqWbKT-MEPOidKdFmSxzXzooJISEJCAhwAlK399dsASBC8FM_WXqkcDvrrRqPRJ7hnweVp6p3QGXt-iOjx9sB4hKQnsPSS2JPMQyE5Uk-esBdggHAkCaMeO3hnxAnah1i0ukNPJP4JQMCpkPISY7WaQTyKIr2Apd9W_6IwTAW_EXnyGMUeogxYedvbnlhyPHlvJ0y9RBB61CK_oTO6FfICwhDn6OJqoyQSKiRGgVJMwYfXsIWTajWEVdtrfepsJIdtWw-D1sMI_mt0VIDCkZ0dLUAfQcsR7VZn1Or0zd-O9q4VEQ2KyrBExols9VI22Nz8_gH8Zinm5Iwk9g6EotAr_XIVh6MfRas38LxWdwK_vR-1OtRJ7e9WiAvMv-IwhuPEzn9AYB0HodLVgybR8jCMgr5RoXQY1zDD_4RVjBmsNtoQ5jIdc_j_d7YY4JC9eUR40aV4fp_RAzkmRknR9uYl-hlzoQwHrCDy7r7dad_DD-3SXhcUhWbp9vbW_DADKQk6YrBtpu83a9RWt-cNkMDBkm6UqTRoeOIsIklkIH3fx0LMWUAOBPPl4QB5Q8Fu71K6Cq7-QQItxnTAkf_TADTBxag4XR7g5hJfJhwiDEALyAsOZgiHx34iyRnPkc-ZxjiL9dC-ELAQYSo_hh8QOSE4DD6GHuXec4VhLHwU42CB30JCzdlm-CAdBJiHg98LcxFl62w5IsB5HLLIHgQsZbcAv4G_wMMSTV7SBX6XM9hKAQ8oFFi5fc-bo8ter42YJ1gEGQ8LqTJGQQ44PKRruDOxPDjnq5P6QaGbE-NyDJEAqvU3QAtxJkcdw1WuxDQImf-zyjWOYnkpY4fgqzO0x2EVX9a2xDlJqK-vsMIImDJ4hqJ9gD4EnYJDQ2JIL6WEX2CI22adZozFDQfJoG_oIgYco586wtYYAoduVektxY7FDTBkDDxPQqncCZs8KZrlbnEUh3CAspdrCVolwyFB0D6ReViadc-79XY7cH20h_2yCxsQuoI8YL216MwpNffBEhlSCH7lKI6Vh-UbaQtYB9BR5Bwpo4dICJvqauiMSs5Ce2f2lgoo5cd5vqxKyZzJYKr0BRxMxHCMBi2X-x9Dx-Cl20lBJlFmalTpL9RqUEsfv8NfVEdXZQPjJUMk_VPtBoY-Viu1Gxi6CZMBNJgNG7yeSIhrN5jSAKyvrzq7rgJ9E4M36RTg2jp3Ehexxj7jQTO9cBuun9lwAY9E_KITtGQ8K0x5WTHZa7l2Qs7hBp_ycSzLEVS_kz0xRBQC65cBUwrtJZEIRKpSgEqW1UgHMyNCu0imSQg9QqZs6vBKSHmXLXhG-cS1aVrzqIqnnZHxKSWSQD_9DwjbbM8GLRu4fqFtmPVoedZT7Yqu130KA0SjgU2qmxHgAE2KAJCbRHRGImID6suXjKQL7oqjY4SML7a6n1sPY2_6-seLF-t1lYZgUTM8J3AS1Qvpup0lkRlWA1ZuPvjpy2t_vZguflPkV8Spalhjzs4kwDBSwFyE9wK0bXUfrSbgpdK6a561K9dSb1sTVK8kkDqq7y0WanWi7VZCZCaI47s77ZmB8ifbCeb2G4G_nXWFGtPApOUKdcWgLS5ZxfGJERFqrprofraSOHWgKvn6xos9pzVvCWq8qAbLjsRHocl8huUdHJ0opVDYTyQbQdnxZVqH0uM4yqjVK96b9UjWdVNBhnlC3u0Nus2cIx9sMIbYryml6kA2K6iF591kuR73h1_zpcFyudkWl6eHGlnfv-2mk928_8dgnKKoHyYBNv2WuYE55kdcoEJNwEfGCS4KW-MjfndGCC-LklZvCOaAaQuG_n7rYdgGxxrbWFG4FScgT14c7m5O3UAfVEJ0cqoq9xtMIUxUt12tttcV-zsq3f0XVfpfW-cjSvT-PUqkXjUVc0So1UZt3v0CA_vtTo3s3S9qnmh9HiYQafpHSInwuwdT_L1VtCBqwxLu46JAi1M5rpgWyhFoMPk0UcxnOTWPlQrzb0yyZubVakQ45Biwian2Kq19ReLkgkodmll0AWv8V0LSSbmhEpQyuvp1X6CoRhoHWRelU1NZYYG5dOdPVBrNVQHe-JzE8jlh0vCPWALZvExXu02jGBymtMl3jGObuEVfbk8wmiAul4daE-edpTmFbZOXieqMfRanQJ33tIgBPhJa9oWcDHXL2KdIfs-V2jKlpAKlucCm8ZIOdgpUbXw2zHBwB5-FWT-mqowDUhrUV2dNzhuzBXg_DjRez0fFxmy7HC1zto3STTsW7A4FTuZteCPc7FLWtm6HFaYolBfThtlOWKG716BmgwnhAgLIeWjQdr3GmNZKhet1OteQWvgMolv90XK7V_HqXQr0AOEnLMhHONJHVgXsXNelZnw2bA1M43eVloYnwPqZVTr6VwNDPvIv6VSK5RvN3gm6jTzG03AA45fMJ58quqZhW5PjKU1Bq1Ult2Rvfmt8wGBP8D6XN5VnISF7cxsgJxusccTO6Sw0m_0-r2t0_4UGeoNjdQdwGQeiejZG8-RS7s9TDvUMY-N8lr3cpcdUhS-tOtmQWqx2FqUzoMoQvsl--ZCTY17Uh47mITGP5qFuwGEn2YRIO9wFa0RkfvkdX94qw7GTCfLIrsyCFaw6uxnQisnahRQniSvAYl9txdZuXJiJrwF1lJtH2kRIFjUAlnFm_6tvQyVLZG8_pkXPn6eriLTW5m6oPKz-kSfHWr9oBjttvudV912eMQ8ZguDI7rLhWQYquy57Ninicv01jsRZQoM0qu3Ua6o_PqAklBX7rhE9Yv1BAcyknjeb7mtqNLC9Tz35FwqmLxB1T-ddFzalffXAauzmvPZlVLj4QN8TKj4MVvbTUAntJ4Sg885Qh7Mx_KszTHVCt68Q4DPvjmPOwYMi9zHSmVSgeynTsgSdif715pu_EmSepX7iyqDq3OxVXPZBRd-2Ykqr54DJUzXnQiAHiAeO3nm3ZO1vH5xn5Gfdo_PzbjyfbktMtbiXxctmPHJWtrv1-Plluh7vfh-vN9PlwtC2aF9oo_NO-gXy3no2cQ3tHB6owFoYshwfy2uwLRs1Wm62a6hz0z_H-dJqtatZNcN_PW2x2W1ep5PtbtGfO8vDSWW53S58urafD2-Cp17w2HtEN5LIED_BhOZ-hVSfnEcMCwoNdPpVXdVjSDbhxf2YX_8pvH2T8PDpJGWsz64_0R6JPCX7tg-pujsJw3P2zy2I_QHjE_yXCJGor_GTh4fH3t3N6enhHkO79Njrod7Dp8P-8PkOf74P9p27R7_Tu-vgm1BPZU_me_ANeep2ut3Op87nbrf76eGx_enQewSG4O6xF_QCjFv3HRxBBmmrjduMH2_4k9ZhnxwFEEMoZCInIl0xMc7ko0RCE_EELaPKfToB8hut9JPW-J9a67nl">