<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/95094>95094</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Considering macros as 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>
          omarcou33
      </td>
    </tr>
</table>

<pre>
    This is not a bug but rather a suggestion for a new feature.

In the (quite old) project we are working on with my team, we are considering using clang-format for formatting our C++ code, but we have currently one blocking problem that prevents us from doing so:
In our public headers, we use certain macros in front of access modifiers in order to give complementary information to whatever processes we use for documentation/wrapping (typically something like `SOME_MACRO public:`, etc). The problem is that there is currently nothing to inform clang-format that some macros should be treated as access modifiers (for indentation mainly). After investigation, every solution we tried with the currently existing options either breaks indentation of the public/private modifiers preceded with macros, or breaks the documentation/wrapping processes that follow.

Would it be possible to add an option to define a list of macros that should be treated as access modifiers during formatting?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlM-O4zYMxp9GuRAb2EoyYx98mMk0QA-LBdoFeixkibbVkUVXf-Lm7QvazmYGbYFenFgWye_7iaKK0fYesRGnV3F626mcBgoNjSpoyofDriVza74PNoKN4CmBgjb30OYEQaUBAyiIue8xJkseOuIFjzN0qFIOuBfFmyhe1ufPHtKAIGT1Z7YJgZwRsoYp0B-oE8wIKiDMFN6t74E8zDYNMN4goRqFPN93aPLRGgy8K0d-aqd8_6WjMKq0iFj_piVPDnAW8lXIV9BkkBOx_hlhUFcEnUNAn9wNyCO0jvRSfgrUOhwhDSrBFPCKPkXIEbpAIxjiPZHE4eGNC025dVbDgMpgiJvmHBE0hqSsh1HpQBGs5zw-AXWgtMYYYSRjO4th-UjBYIBE0FuWSOPkcESfVLiB9as7Bp4I5kElvGJgxZwI470mgzCk8xLI24W8zEFNE2sXskq3yWrl3A0ijZgGXnb2HUE8Fb9--_rT719fzr982zyx06eCHWHSQtZ7-D7gD0o2rqC4JZDfHlQ9rZkTbco_n9YSxvXvaOJA2RloEVJAldCAiv9kJGTF9qw3d3MwKuvdbZH20iXkj1fuy37zfgbGxGZdXgJmLmHRrH3GrflQjX_ZuLbPxHsjoF3avQ2o3uOnutQtsRsmeZmCvaqEH8ROATWae6HVJ-uhH_k4wX8e1eNgF1gdOUfzp5v124LMJqY2UYy2dcjAlTGg_OaBFwx21iMocDYuzbdBX0_hf5E3ebl4jxsmDpedaQ6mPtRqh035XFZFXR-f693Q1LKrjqWuD7oy5VG3VV138qjrQ6We0aDa2UYW8lg8lWVRn8qy3lctlrpTZYdYHU9FLY4Fjsq6vXPXcU-h39kYMzb1qaiPO6dadHEZX1J-7CshJQ-00HDYlzb3URwLNh0fiZJNbhl9nwJPb3D-MGA2QP9CYpeDa4aUpsh3Q16EvPQ2DbndaxqFvHCd7efLNuOEvCzqo5CX1cC1kX8HAAD__7qI8IY">