<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Menlo;
        panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.xpre
        {mso-style-name:x_pre;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">(forwarding this to cfe-dev and BCC'ing llvm-dev, since cfe-dev is a better place for clang-format queries)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:.5in"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">llvm-dev <llvm-dev-bounces@lists.llvm.org> on behalf of martin lampacher via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Reply-To: </b>martin lampacher <lmapii@googlemail.com><br>
<b>Date: </b>Monday, September 9, 2019 at 12:04 AM<br>
<b>To: </b>LLVM Development List <llvm-dev@lists.llvm.org><br>
<b>Subject: </b>[llvm-dev] clang-format behaviour for braced lists indent<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Hello,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">I've introduced clang-format (current version 8.0) to enforce some company coding guideline but I am struggling with list initializers.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">The formatter works nicely with function declarations and function calls and aligns arguments on break like that:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#569CD6">static</span><span style="font-family:Menlo;color:#D4D4D4"> </span><span style="font-family:Menlo;color:#569CD6">void</span><span style="font-family:Menlo;color:#D4D4D4"> </span><span style="font-family:Menlo;color:#DCDCAA">someUnitInternalFunction</span><span style="font-family:Menlo;color:#D4D4D4">(<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    </span><span style="font-family:Menlo;color:#569CD6">const</span><span style="font-family:Menlo;color:#D4D4D4"> uint32 </span><span style="font-family:Menlo;color:#9CDCFE">someParameter</span><span style="font-family:Menlo;color:#D4D4D4">,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint32 *</span><span style="font-family:Menlo;color:#9CDCFE">somePointer</span><span style="font-family:Menlo;color:#D4D4D4">,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint32 </span><span style="font-family:Menlo;color:#9CDCFE">normalParameter</span><span style="font-family:Menlo;color:#D4D4D4">,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint8 </span><span style="font-family:Menlo;color:#9CDCFE">anotherParameterLong</span><span style="font-family:Menlo;color:#D4D4D4">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><br>
<br>
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">uint32 </span><span style="font-family:Menlo;color:#DCDCAA">SomeUnitWithSomeVeryLongFunctionName</span><span style="font-family:Menlo;color:#D4D4D4">(<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint32 </span><span style="font-family:Menlo;color:#9CDCFE">parameterOne</span><span style="font-family:Menlo;color:#D4D4D4">,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint32 </span><span style="font-family:Menlo;color:#9CDCFE">parameterTwo</span><span style="font-family:Menlo;color:#D4D4D4">,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint32 </span><span style="font-family:Menlo;color:#9CDCFE">parameterThree</span><span style="font-family:Menlo;color:#D4D4D4">,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    uint32 </span><span style="font-family:Menlo;color:#9CDCFE">parameterFour</span><span style="font-family:Menlo;color:#D4D4D4">)<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">{<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    </span><span style="font-family:Menlo;color:#DCDCAA">someUnitInternalFunction</span><span style="font-family:Menlo;color:#D4D4D4">(<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">        someInternalVariableWithSomeVeryLongName,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">        &yetAnotherInternalVariableLongNameStyle,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">        nowThisNameIsShorter,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">        nowThisNameIsShorter);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">}<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">This matches the configured continuation indent width. For lists, however, the indent does not match what I've expected: A list that exceeds the configured margin is formatted as following (I'm using <strong><span style="font-family:"Arial",sans-serif;color:#333333">Cpp11BracedListStyle:
 true</span></strong>):<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#569CD6">static</span><span style="font-family:Menlo;color:#D4D4D4"> uint8 CddDp83848Reg</span><span style="font-family:Menlo;color:#569CD6">[]</span><span style="font-family:Menlo;color:#D4D4D4"> = {CDDDP83848_BMCR_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">                                CDDDP83848_BMSR_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">                                CDDDP83848_PHYIDR1_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">                                CDDDP83848_PHYIDR2_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">                                CDDDP83848_PHYSTS_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">                                CDDDP83848_RBR_REGISTER};<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Whereas I'd expect it the following style:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#569CD6">static</span><span style="font-family:Menlo;color:#D4D4D4"> uint8 CddDp83848Reg</span><span style="font-family:Menlo;color:#569CD6">[]</span><span style="font-family:Menlo;color:#D4D4D4"> = {<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    CDDDP83848_BMCR_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    CDDDP83848_BMSR_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    CDDDP83848_PHYIDR1_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    CDDDP83848_PHYIDR2_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    CDDDP83848_PHYSTS_REGISTER,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4">    CDDDP83848_RBR_REGISTER};<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in;line-height:13.5pt;background:#1E1E1E">
<span style="font-family:Menlo;color:#D4D4D4"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">According to the documentation<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-family:"Arial",sans-serif;color:#333333;background:white">Fundamentally, C++11 braced lists are formatted
<b>exactly like function calls</b> would be formatted in their place. If the braced list follows a name (e.g. a type or variable name), clang-format formats as if the </span><span class="xpre"><span style="font-family:"Courier New";color:#333333;background:#E2E2E2">{}</span></span><span style="font-family:"Arial",sans-serif;color:#333333;background:white"> were
 the parentheses of a function call with that name. If there is no name, a zero-length name is assumed.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">And I have the following setting: ContinuationIndentWidth: 4. As you can see the function call is formatted nicely whereas the list initializer isn't, according to the documentation the formatting should be the
 same.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Can someone please help me out here? I've checked several settings and can't make clang-format indent initializers according to the (admittedly a bit special) style.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Thanks and BR,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Martin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Attached demo file and clang-format settings<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>