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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Different indentation format with and without `-lines` parameter and user defined `Macros:`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          CDAlexanderW
      </td>
    </tr>
</table>

<pre>
    ### Environment

The tested v19 clang-format executable was built from source of 13.03.2024. Also tested with clang-format 17.0.3.

Setting in .clang-format is:

```
Language: Cpp
Macros:
# Avoid reference and pointer parameters being formatted as if &, * etc. are operators
  - MOCK_METHOD(a,b,c)=a;b;c
  - MOCK_METHOD(a,b,c,d)=a;b;c;d
```

### Problem

File: problem.h

```cpp
class myMock {
public:
 MOCK_METHOD(std::unique_ptr<MyReturnValueThingy>, MyFunctionName,
 (const ParamType1 *param1, const ParamType2 *param2), (override));
 void f() {}
};
```

#### With line

Call with lines argument

```
clang-format.exe" -lines 5:5 .\problem.h
```

formats to:

```cpp
class myMock {
public:
  MOCK_METHOD(std::unique_ptr<MyReturnValueThingy>, MyFunctionName,
              (const ParamType1 *param1, const ParamType2 *param2), (override));
              void f() {}
};
```

#### Without line

Call without lines argument

```
clang-format.exe" .\problem.h
```

formats to:

```cpp
class myMock {
public:
 MOCK_METHOD(std::unique_ptr<MyReturnValueThingy>, MyFunctionName,
 (const ParamType1 *param1, const ParamType2 *param2), (override));
 void f() {}
};
```

We expect f() to be formatted (indentation) in both cases (whole file and one line) the same way. The correct format seems to be the one of the whole file format.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkVk-PqzYQ_zTOZbQIbELCgUOWbFSpTd9Tu-oen4wZwK2xqW12N9--MmSzJNpXtVWfeqiFEvD88czvN_aYOydbjViQ9T1Z71d89J2xRbnfKXzlukb7tKpMfSoIZfMDD_pZWqN71J7EexLv5t_HDsGj81jDc5KDUFy3d42xPfeAryhGzyuF8MIdVKNUHhprenBmtALBNJCwKGYRjWkawU458-bsRfru2luyieKIRcvFf0bvpW5BaoiudKUjbLfUJFl8fqbPH7huR94iYTsoh2GePHJhzcKQMtg9G1mDxQYtaoHAdQ2DkdqjhYFb3qNH66DCEMW8dgieO5ANEJoRWgKhO0AvIuAWwQxouTfWzWsA3MHxU_n9l-PD43ef9oRuOaFlRWgpCM0J23PC7ivC7sVf0C_rWxt2X3-Y_iXBM7efrakU9kvhQaoJnWEWRd2HaIo37ITizkF_OhrxG5DN_Tw7jJWS4oLoTejO10HEdqOWv4_4ZfCWsPJ4-gn9aPUvXI342Endngh7CEAeT4dRCy-N_pH3SGh59kroVhjtPHwOjDyeBkwC6BM_STC8kdKLlAbAJoq25hmtlTVOMzlh5wxgKoCG0C2h-ZTYZn_GYLO_aP05vAHhp1DOSmpcapRcqbnQg8QBt-14u79uXC-rPMJXJJTC3Wy9Jmy3hoisy1vOPopuduHAm6_tlL_J7Tci92p8U6avxr9Iuxn915l_E_5j8v8zvv9Xe_kJAV8HFP5i7g1UuDjyCd1KXaP2PCQVNKSGyoQmxh26IH_pjEJopJr7iNE410Xw1iE43oc-eYog9FRhrJ3WmxuaQ-zdedGgHIxNM70u3J5LY1UXrM5ZzldYJJuE0Q3N0u2qK2pMeJav07zGjG6qbczjdF3njPJNngoer2QROnGcJlnC4jSmUcXzVFQsrWtBY15nJI2x51JFSj33kbHtSjo3YrENY6V4hcpNlwpKl9VKKA3XDFsEs7tqbB1JYyWdd--OvPRqupBcGa73sJfN1H89LBB-A2Y6PgOcb7uJZPF8IJIsfu_Rk8ro0EKNjdSBsCx-b_hZvBqtKjrvh-mbHgg9tNJ3YxUJ0xN6CGGe_-4Ga35F4Qk9TMk7Qg9T_n8EAAD__8cuvM4">