<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/142008>142008</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format] EmptyLineAfterAccessModifier and EmptyLineBeforeAccessModifier for Qt-specific access modifiers
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
EugeneZelenko
</td>
</tr>
</table>
<pre>
Looks like `EmptyLineAfterAccessModifier` and `EmptyLineBeforeAccessModifier` are not applied to Qt-specific access modifiers: `signals`, `public slots`, `protected slots` and `private slots`.
Test file:
```
#include <string>
class Test
{
Q_OBJECT
public:
Test();
protected:
void protected_method();
private:
void private_method();
signals:
void signal();
public slots:
void public_slot();
protected slots:
void protected_slot();
private slots:
void private_slot();
};
```
I tried 19.1.1 and `main` (https://github.com/llvm/llvm-project/commit/49d48c32e04742ebd05cbbd7dd544b1217b6d9d0)
Configuration:
```
BasedOnStyle: LLVM
AlignConsecutiveDeclarations:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AllowShortFunctionsOnASingleLine: Inline
BreakBeforeBraces: Allman
ColumnLimit: 100
IndentPPDirectives: AfterHash
IndentWidth: 4
LineEnding: LF
UseTab: Never
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: AcrossEmptyLines
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
BinPackArguments: false
BinPackParameters: false
BreakConstructorInitializers: BeforeComma
BreakTemplateDeclarations: Yes
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 4
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Always
FixNamespaceComments: true
MaxEmptyLinesToKeep: 1
PackConstructorInitializers: Never
PointerAlignment: Left
SortUsingDeclarations: true
StatementMacros:
- PyObject_HEAD
- Q_OBJECT
```
Abandoned patch on Phabricator: https://reviews.llvm.org/D129845
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVl1v4jgU_TXmxSpynADhgQfzpekuHRi1s6vdl8pxboK3jh3ZDjPdX7-yAxRaptJKSCS-n-fcYzvcOVlrgBkazdFoOeCd3xs7W3U1aPgbFOgXMyhM-TrbGPPisJIvgNGYrJrWv26kBlZ5sEwIcO7BlLKSYNGYYK7LK7c5VMbCDT8LWBuPedsqCSX2Bn_zd64FISspMI8BuDlGOJSykDb0zJVDY4LoIiy0XaGkwE4Zf7lqjQfhoTwbTn21Vh64h_P6EBH2BM7jSipAKUMk_sbk-CMM0VRqoboSMEoXzlupa5SuekehuHM4JAjvkzkiDGOMvz1v57-tFk-9U9_jOXnvTnNEpyidH11ODb95YYwPRpb4bHpuwO9N-SEyAroVFw23o048fojqDe9rXJJ8DumrRNNzMP0K0vu4j8BuRl_O6ZfgPkROlseHywkSdo-9DSpLpsNkmJzE0HCpgzYQzffet7EOXSO6rqXfd8VQmAbRtVKH099da80_IDyia2GaRoaHbFpmuUgpkGySUShKMhJFUU7KcpRlRUKTSTEupyUJPcZeFkZXsu4s99Lom5KbcwflVj_616hJvNn88dB7MSVrvTDagei8PMAShOJ9piNLGK80L1RUEva2g7jGhDXOnTdl3E4VV-7SujBNA9pf2ZhS5sfj3li_7rSIZbaaPUpdKwiJgu-9VuGJsLkF_tLv97nloq_ClGq4jrBV1-iNDKylDCckIL3XJWi_2y2lBREA9THhaPnC3f7s8acs_T6YMkRYKLzSZdyHDG_WiLDvDp54EV6_wgFsT9aG67rjdWxy0bYBztUxtK0qB7GZu-zEbSy9bUEHBC-9lakf_NVFdDdG8MADe9HvPclH_phSzNZdJHerv8JPf6Luimam1I5b3oAH67bVxWhvB82l3nHxck59w_aW78oYkAQE3nbCG3uvpZdcyX-Pfv0Igxz4yfsJmlZx_15v-K-I8naud5MjvaOXuovxNwb76d1yMdvPL5fzxBBha_nzK2_AtVzApb6PG-OB_3wb15P5HaCN2kSEBfo-4ejUys5IHXoNogjZoyKhCtfBo7H-u5O6fk_asfij5x5CzFlBcTPe4d3rtginzPOXFVse1y5vlOujjRVcl0ZDiVvuxR4bjXd7XlgpuDeRjeuzzcJBwg83DOfZ0Nga0fUyodM8GyHCBuUsLafplA9glkyyfJSlhOSD_Ww0znNBSFJNipRPinEqRqMkGfGqyKtC5HwgZ5TQERnRaZLTlOZDXlUwFiSHpBrnY1KgjEDDpToXHkjnOpglGQ0lFC9Aufg1QqlQXNd3lbEN94jS8H1iZ_EALrraoYwo6fwbhIGXXsUvmavA0RJ_pqh4C3wqJVwZ--lXyaCzava_r46I2yG6PkI_zOh_AQAA___eFxwr">