<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97368>97368</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Feature Requests (Clang-Format): Allow type members to be aligned
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dsyx
</td>
</tr>
</table>
<pre>
Give a separate option to align type members, such as enumerations, structures, etc.
In the current version (19.0.0) of Clang-Format, similar requirements can only be achieved through options such as `AlignConsecutiveAssignments` and `AlignConsecutiveDeclarations`, but this will affect assignments and declarations in functions that are not expected to be aligned.
Aligning type members makes sense, which makes the code easier to read, for example, 1 looks more pleasant than 2:
```c
// 1
typedef enum {
LLVMRet = 1,
LLVMBr = 2,
LLVMSwitch = 3,
LLVMIndirectBr = 4,
LLVMInvoke = 5,
LLVMUnreachable = 7,
LLVMCallBr = 67,
LLVMFNeg = 66,
LLVMAdd = 8,
LLVMFAdd = 9,
LLVMSub = 10,
LLVMFSub = 11,
LLVMMul = 12,
LLVMFMul = 13,
LLVMUDiv = 14,
LLVMSDiv = 15,
LLVMFDiv = 16,
LLVMURem = 17,
LLVMSRem = 18,
LLVMFRem = 19,
LLVMShl = 20,
LLVMLShr = 21,
LLVMAShr = 22,
LLVMAnd = 23,
LLVMOr = 24,
LLVMXor = 25,
LLVMAlloca = 26,
LLVMLoad = 27,
LLVMStore = 28,
LLVMGetElementPtr = 29,
// ...
} LLVMOpcode;
```
```c
// 2
typedef enum {
LLVMRet = 1,
LLVMBr = 2,
LLVMSwitch = 3,
LLVMIndirectBr = 4,
LLVMInvoke = 5,
LLVMUnreachable = 7,
LLVMCallBr = 67,
LLVMFNeg = 66,
LLVMAdd = 8,
LLVMFAdd = 9,
LLVMSub = 10,
LLVMFSub = 11,
LLVMMul = 12,
LLVMFMul = 13,
LLVMUDiv = 14,
LLVMSDiv = 15,
LLVMFDiv = 16,
LLVMURem = 17,
LLVMSRem = 18,
LLVMFRem = 19,
LLVMShl = 20,
LLVMLShr = 21,
LLVMAShr = 22,
LLVMAnd = 23,
LLVMOr = 24,
LLVMXor = 25,
LLVMAlloca = 26,
LLVMLoad = 27,
LLVMStore = 28,
LLVMGetElementPtr = 29,
// ...
} LLVMOpcode;
```
Thanks
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVtFu6zYM_RrlhWggK2kSP_ghbeaLC_RuQ7sOe6VlOtYqS7mSnLZ_P8hJexOlybZuReHA5iFNHvkcEL1Xa0NUsOsbdr0aYR9a64rav76MKlu_Fl_UlgDB0wYdBgK7CcoaCBZQq7WB8Loh6KiryHkmbsH3sgX0QKbvyGEE754H18vQOxruKMgx4yvGl7vrVwOhJZC9c2QCbMn5-BYmFlk-5mPORA62gVuNZn1VWtdhGIqqTml04Oh7rxx1ZIIHiQas0a9QEaBsFW2phtA626_bffv-vU0248s4x601nmQf1JaWAyVDLTbjgKb-CLUiqfFtvhmP3VR9gNAqD89Ka8CmIRkAf1QbStUHeaAMNL2Ru5vQYgB0BMYGoJcNyRAbt8Mc8e1UH3E2dKTM-ugIoMMn8uDJeIo9PbdKtvuHA8O2JiD0ilws7QjrCGusA3rBbqOHrAy0tU8eOusINprQo4mzoQHBJsvDLuLsw7_c34uSiRKy3V1sraZm-BqAzW92TwHu7n7_dk8BDv7YZAUZE7eHkBsHKUQkkIdnFWR7BJkkkK-mVo5k2FeLkOkJZGufaAhdJ6FH4whli5Wmt-x5ArlFrQ9ajZDZASZCyp9pnUwymyVllnWdTrtIIGXExECe0tBXJ2TyNPkYNGBSxr_1ehdIeS5jJElOiX5cqW2KSZl--ACTUl5-gEnJerynbhdJT-MhRpLsEx4_wJxQ2uqTjy-l9O6hdSkmpXQZMUMk5XRpTg5cpJz-8oEEUk7_sO4Ek3K61NpKPMaknN5Z3H1d4oTTEJ3gODvl9AuFn_Tgwb8Gt8cccrp3hvH4zcXmq92Em2hKbHKTGMpFfxEX_eXNXs54ygUf-Rv_-A_eccE4zhrGWZv4196QGsK7H3zCBc5rP1X8u-DPy_wz4j4v6bNCPq_eT2j2nFDPivOSIj-lxH8gwP9Lf8P1txbNkx_VxaTOJzmOqMjmWb5YTKbTbNQWWTOtc1pgVXNOmDdy1uRNJmXDr_P5nGikCsHFlM-54JmY8mzMJ1ihnNbYcC4WWLEppw6VHmu97cbWrUfK-56KfD6ZLUYaK9J-2FGFkMMS2OyXQBG3VlfEtKuqX3s25Vr54H8UCipoKkrCuH3CPX3vyQcfd8vjdTJnkyXEQ3k-3qiONrBR73TRhrDxcQ8aGF2r0PbVWNqOiTK-df9ztXH2T5KBiXKYxTNR7sbZFuKvAAAA___gEA1O">