<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:large">I'm not sure if this is even the right place to ask, I did a quick search looking for a clang-format specific list but couldn't find one, does anyone know if there even is one?</div><div class="gmail_default" style="font-size:large"><br></div><div class="gmail_default" style="font-size:large">I'm trying to add an option to Clang-Format that would allow users to align variables in structs/classes and functions based on the width of the type identifier.</div><div class="gmail_default" style="font-size:large"><br></div><div class="gmail_default" style="font-size:large">Here's a couple examples to better illustrate what I'm talking about:</div><div class="gmail_default" style="font-size:large"><br></div><div class="gmail_default" style="font-size:large"><div class="gmail_default"><div class="gmail_default">typedef struct Unaligned_Struct {</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>int wat;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>uint8_t huh;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>uint64_t who;</div><div class="gmail_default">} Unaligned_Struct;</div><div class="gmail_default"><br></div><div class="gmail_default">int Unaligned_Average(int A, int B, int num) {</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>int Average = A + B;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>int32_t Divided = Average / num;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>return Divided;</div><div class="gmail_default">}</div><div class="gmail_default"><br></div><div class="gmail_default">vs</div><div class="gmail_default"><br></div><div class="gmail_default">typedef struct Aligned_Struct {</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>int      wat;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>uint8_t  huh;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>uint64_t who;</div><div class="gmail_default">} Aligned_Struct;</div><div class="gmail_default"><br></div><div class="gmail_default">int Aligned_Average(int A, int B, int num) {</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>int     Average = A + B;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>int32_t Divided = Average / num;</div><div class="gmail_default"><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>return Divided;</div><div class="gmail_default">}</div><div class="gmail_default"><br></div><div class="gmail_default">I'm not sure if the formatting is showing up, so I geuss I'l have to describe it.</div><div class="gmail_default"><br></div><div class="gmail_default">The Aligned blocks all of the variables have X number of spaces added between the type and the variable name, so that they're all aligned in a single column.</div><div class="gmail_default"><br></div><div class="gmail_default">it makes reading the code a lot easier, I've been doing thi manually with my code for a while, and Clang-Format not having this feature is the biggest reason I don't currently use it.</div><div class="gmail_default"><br></div><div class="gmail_default">As for my questions, they are:</div><div class="gmail_default"><br></div><div class="gmail_default">How exactly do I do this?</div><div class="gmail_default"><br></div><div class="gmail_default">Should I write a new enum (I've been thinking about calling it "AlignTypeDeclarationStyle", but that seems a little clunky, and I'm not sure if it's the best way to describe what exactly is going on)</div><div class="gmail_default"><br></div><div class="gmail_default">and how exactly would I hook this into the Clang-Format library?</div><div class="gmail_default"><br></div><div class="gmail_default">I've never contributed to the LLVM project before, I've read the documents a few times, and I've tried reading the code, but it's very intertwined and it's hard to drill down as deep as I need.</div></div></div></div></div></div></div>