<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61956>61956</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format] [Bug] Places parameters of record class on new line
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
StrangeRanger
</td>
</tr>
</table>
<pre>
I think this is a bug, but I'm not 100% sure. When using `clang-format` using the Microsoft style for CSharp, it turns the following
```cs
public record class Book(string Title, string Author, string ISBN);
```
into
```cs
public record class Book
(string Title, string Author, string ISBN);
```
Maybe I'm just not seeing the option that prevents `clang-format` from putting the parameters on a different line for a record class, but I'm pretty sure it's a bug.
```
---
Language: CSharp
# BasedOnStyle: Microsoft
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveAssignments:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments:
Kind: Always
OverEmptyLines: 0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterExternBlock: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: false
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAfterAttributes: Never
BreakAfterJavaFieldAnnotations: false
BreakArrays: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Custom
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
Decimal: 0
Hex: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
LambdaBodyIndentation: Signature
LineEnding: DeriveLF
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: BinPack
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 1000
PointerAlignment: Right
PPIndentWidth: -1
QualifierAlignment: Leave
ReferenceAlignment: Pointer
ReflowComments: true
RemoveBracesLLVM: false
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Latest
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 4
UseTab: Never
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
...
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWltT67iT_zTmxQUVHMLlgYfEJDOZE5KcOAw1-0IpctvRQZY8kgxkP_2WJFu-AlNTu1X7T53Dxf2TutXqu0FSkpQB3HuTmTd5OEOFOnJxHymBWAo7_UWcHXh8ul_66kjYq_4qfSJ95B-K1AtC_1Aof-kFN5nPuPIvRyMvmPiyEHDhPx-B-YUkLPW96xGmiKXnCRcZUt71qCSoI_iPBAsueaJ8qU4U_IQLP4yOSOSaAVG-KgSTBppwSvk7Yak3evBG0_Lr9cj-w9I-yIsDJdgXgLmIfUyRlP6M81cvuJVKaLZ7oijo3cvfp-bgjQfLaLb2gjtvPOvwaDImTPF_J4iF_y-L84hOBygv41chlbkRCVDpmeeKcOarI1J-LuANmJJDN5MInvl5oVS1MEcCZaBASJ8zH_kxSRIQwJRPCbP3hVqHbBtGLkCpkzEKnygvuCnN52JQd_bX8_Nz-8MKsbRAKXjjqV9-StsodTj2Z0hCvGGRNh4Nc_ZkIVOMQcpHHpOEgNgkiQSlYedBSackZdNEgdjkwGYC4VcLMIQmRgh02iSREgVWhQCpQWvOoIEJOZOAC0XeYGqcK9Na9sblKf05QwcKceM0foKoLLfw_akWXc6zXJ1WhFkWA4CQZ9XGHbIVIst5wUouLfoWxZscBFJcmMVKFJ-IPyNqQYDGDeG_k_5fCP-N9F_K3ubelf8BMEUCaZP_f6z_Lw7wiDSr_yTtzyVGOcRreKeVADuSHlUDYrZgcblD18P2AhFKWNqQsWL_g1iZpvQdnWT1dPMGon1if1TtR_n7lNKpSAuz14at4UNpXNfuLXDrgtwmadjOl8uiIxdqRjl-lRs2jQhLKVTQNbyB6GJDJGGFDkD7-JYyK_ycFdk_hC4Kho2x9yVphKgKvUwihRSUmvknoq9QdohRHzyltAflPP9Gan2JMwHo1QTeB0gII1r6Hehkvz_lPcnbK_4BbgYJF_BYUKVtCiKTSftO5_B7yHKKVDdw-GYHcwi7QilBDoXq-ee5__KCUY4OhBJ1sg9nhG0RfnVG2LahklpbXpdsI3DIKWdRjrCue8ZTf8bVsUQIhOFZoDy3JOfJWkXO1vqBwJBNoq5iSc21InOmBKfOSnq-Z1DaPut41Ntk_qFAMOMg7aOV9MpmB4lrlIHMEbapv0feHH6FjavqbGEgNlNX8vV2eGLlun4asLYTIoWPXdksaa7BQ8qzZOssMx6fusq39OcjoW59i_OSxcCUudiBMOv7UU6JMiHvM-XViJ0pyT6ntzTcsDvnZc7WZScs1JA_0BsyVjpljKvaaxpCW7AunmT_LhquOiMMiVMrydSO3cCFnGHIVddPm9bZ3NWpMiyk4lkPsGQ6PEyjR-NnGrhh9OTiRg-_B9GTs3MencWN7XGx1HENUfLfpXtXR9Cs6gVLdgRBFGIYVkSqz4E2iq2IAoFoh3XIaZGxFcmI2UD3YuVzk023AqUZslfgBTfeZO4vn_968nPzXEeP4MYtyBFWzjy6Fzp8PGu5zyRWxmeuHFYRVphr-gSR55eX5pZifXZXxtcHewBB3mDLCdM2ScuquiPUA5G6PFrYNqZbebkiwdp1qyXo2LaD2hvoY1c8JRhRG9bsko8cBNFCITotFH8ABViV4b2M2g1hFuTD6bZZjtUnXnAxR_jYKwHPdbMFCB_rBz9fFpvdfBr-Xj-abTbRvv14mQzs9eOPl-Xi5XH612xeohimRQy2orE63AqQIN6gBQiRgpQLAu39dpDCh15mzcsLAi-4pfQt825C_e0cezeh6Tar7-dYd7XBwpmeb1gSLnQKrQvdslXzIy5UhzyqF-qMFwGTRJfPA8X3gIS33jj0bkIraqpAKu8mTDN9szchkdS7CX9Jziop774TdPx_IOiFF0y_43tZU79g_TXf8nKX8hER1tJUcLvXmgnuvPHCC66cMK0VES8EhvY6h9OO3_akblCxGC1hbX6DZFs_D5I79UavBmlAf-OK1zvVnmep2-0DEYC1mjp5yNJ38HdBBMiQokLC0A4uyunPVYui6zWIq_RtIkHvNBLEp0WApZZd1lTNN4vB5c1mCvVOoSAFUeaRCHJkclnDm20y1quc3T4AJhmizf7T0X63l17-rouCCAuSq58FL6uHFaAqitRkrYtllnPRDYA_APK6sZuq_REihYTaJLV11Oi63LIqdhVhRFKGVCEqHGEwZ3EZkc3H5pbVwgJMkDQcZpAS1rXjmjyvuvs2-aOWec_1GUwitlQX8jsy1reiS9qqJxBcccxpVQ3orNIAaRE6dhY0yHWxsgapIDZ402a09abBurGwWXEreA5CdUtWB7I7diWrd9Nyf1X52JOVWGCIqpMtDd2grHGOJsAyXhAhVYganbpR7l0fX-ZUTR5XRVCTbnZagZT6v9kkGEBtcmBbJICpI0giG-bdRNmCrKy3BugDXaUFt6DzDx0awyMSCFcHG5lPC2avHOLnI1F15d7G1J3xhi2V3LyzqgFvCDhQSjUmNdttL4adl0b8s0DUhO_W2oZv78CMhjG0ACVDB6H8fbjw2UHG38qafbX687Fji5YcQUZwVay3qM2ovOWSVOqutNCCzT9yAVK6wtRdzqbQzSPmebmgjI9QjynqINQ4upl9OC93E6lSczotl_myiuntdOxQJjxqabANjXU3UGOeJGFptwNawQfBPBUoPxK8LjIQBJdLnJOHpr4OkezWzzWkrG_X_HNIZdU_4PTeazEtTPCCxeW9O6sxYj5AggqqGuCy0nZx4JPeqoHVqgsHTKAJafcVXwDbwcptO8i40al9DTShw_adnVGK_AS7yTvD6uFJjBwepdi-wFX5nw9baivWtjo8HKqxzsI-Bzd6i_YwxM5p3kBQjmJw4-PhXSqvXLK6qGqNt9ug2nl725WZjzOTjF0I71VZjQswrzrNe6QFFyvO86_vNvq7QHay8Aq9lwCRzfGGuStFP6F_I5wsJw79sbiLKga2ZFOW0jKuNFrZihpyFpsbR-2BXo-fgSpEmKsNh1xQw1wY-e4ISxN53QwCEvLRsPBHwkjWnCE2WplH9FHRzjvH_Z7p11ekEIuRaL5KWSHT_FVkqyM3_1qR1_77GN17zx-X-86iQdzT-imaPzSe7F92859Py9385c_5Llpu1pa2R4dW51A3D08S9ujQmVXUhYDLIwPs7Txgu32J9rvl-rflf81rWrh4iZ6Xi_3LevrYeLyOBh8P79F5dHEx_Gb3LL4fx3fjO3QG95fXt6ObYHR7PTo73l8lk3EwGY8PySi4w8lkjO5G1xN0i-LgNgkQPiP3wSgYj65Gk8vbyVUwuria4MMhvrm9mhyuDjFOvKsRZIjQC0rfsgsu0jMiZQH315d3k-szavo880cOQcDg3TdE3fNPHs7EvRlNHIpUelcjSqSS9S6KKGr-OqL1jnzy4HuT2axI9U9bqg2u9Y48ab_x58zXTHW3dlYIen9UKjcXFCy8YJESdSwOF5hnXrAwwxL77TwX_Bdg5QULI670goU5zv8EAAD__6gv4Mw">