<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61631>61631</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-format: IndentAccessModifiers causes an extra indent to be added in struct defined inside class declaration
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cquick01
</td>
</tr>
</table>
<pre>
So this might just be me doing something wrong, but it seems like clang-format is adding an extra indent inside my struct
Using `.clang-format`
```
---
BasedOnStyle: LLVM
BreakBeforeBraces: Allman
IndentWidth: 4
IndentAccessModifiers: true
```
I have a class that looks like this
```cpp
// this is my desired formatting
class MyClass
{
public:
MyClass();
~MyClass();
struct MyStruct
{
bool first;
bool second;
};
};
```
And when trying to format with clang-format, it gets formatted like this with an extra indent before each variable within `MyStruct`.
```cpp
class MyClass
{
public:
MyClass();
~MyClass();
struct MyStruct
{
bool first;
bool second;
};
};
```
If I change to
```
---
BasedOnStyle: LLVM
BreakBeforeBraces: Allman
IndentWidth: 4
AccessModifierOffset: -4
IndentAccessModifiers: false
```
it looks a bit better, but I'd rather the access modifier block was indented like the original
```cpp
class MyClass
{
public:
MyClass();
~MyClass();
struct MyStruct
{
bool first;
bool second;
};
};
```
Trying to set both `IndentAccessModifiers: true` and `AccessModifierOffset: -4` still looks like
```cpp
class MyClass
{
public:
MyClass();
~MyClass();
struct MyStruct
{
bool first;
bool second;
};
};
```
Can anyone help fix my configuration to achieve my desired formatting? Thanks in advance.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVs1u2zgQfhr5MrChH1uuDzo4DQwEaNBDurvnETkSWVOklxwl9WWffUFJjp3GyaLdAosVDIvizIji90MSQ9CtJaqS1U2yup1hz8r5SvzZa7FPs1nt5LF6cMBKB-h0qxi-9oGhJugIpNO2heA6YhVbT97ZNsk_Qt0zaIZA1AUwek8gDNp23jjfIYMOgFLGCrRA39gjaCvJMmgbtCTojhDY94KT9DZJt-P_byFWJGW6uHxZUqaXSfFx_A2P8_l8bNxgIPnZPvDRUFJs4dOn3--niCfc31DjPN14FBRieGtMh3ZMuBs-7Q8tWcXQ8rJ3KwSFcO-kbjT5oZR9T1e_ZaoDhY8EGBEJAVghg3FuP-EUgb46H3E4TD35Lsl3IyORlCNICtqThBEQ1rYdM8cR7o8f430qXt-MDQCAQ18bLZJie-6K16kg_5Dkm6Q4Ffx1vf9l7cga3B8fLug7Bc-D184ZaLQPfH7_xTWEAwln5at4sr49j33Zvgb21kp4UmSB_TGKh90EEjxpVi9EGWWrGVricAKS5JmTseB7udaDbIBQKHhEr7E2NGRqG4X6DEOZLt4n9X9L1Zt0_RBPdw3cgVBoWwJ2_4mfXzr5c9ME4hie_5PfGzThPcPrk78Rah0lw0z-tEjeJflagkdW5IEVAQ4DQDeNALVxYg9PGCbJnTVJ4LxutUXz89K6IqufldSbcnqh42e5fKeotxz_Qyr68mzyQAy1YxVN-P5CXaaAVsa8dwRQphBYG3OxUP9aO78B-nT9Czu_Av89En65rT-iBbRHZwkUmQM0-lvcr4SzjW57j6ydjXShUJoe6Y29rNjBF4V2Hy0AKB_RClrMZFXITbHBGVVZud6ssrJYZjNV5cs0J6QUa1lv6tWyxA8omyzbpGtZUr2a6SpP8yIt8jxPs02aLdb1UixXDTa4bqRYp8kypQ61WRjz2C2cb2c6hJ6qMiuLbGawJhNO5yVfxaR53bchWaZGBw7nMtZsqHqxyRRbuKpHENgHCq82GHbxqIVSkoyzn0iW1Gg79AynpVFtkoTBEdNZ702lmA9R5-N5odWs-nohXJfku_iF021-8O4rCU7y3TDLkOS7YaJ_BwAA__-pP_M3">