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

    <tr>
        <th>Summary</th>
        <td>
            Add `TemplateNames` option to clang-format
        </td>
    </tr>

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

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

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

<pre>
    `TemplateNames`:
A vector of non-keyword identifiers that should be interpreted as template names.
A `<` after a template name is annotated as a template opener instead of a binary operator.

For example, with the cofig below:
```
TemplateNames: [Foo]
```
The C++ code `return Foo < A || B > (C ^ D);` will be formatted as `return Foo<A || B>(C ^ D);`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsks-OqzoMxp_GbKxWIfzpsGDR0mF5V_cFAnFL7g0xSsz0zNsfMeWcmZFGQkSJnZ-_z7FJyd0DUQvVBbTmB4XRgNZQXTOzysSxfZ5lA9v3Fmr1L82LN0L_mJkS1AqKM6grqPMZ32gUjsg3DBwO_9P7g6NFZymIuzmKCWUygmni1VscCF0QikskIYsmoexoDBv7-Af7UaSDWqG5CUU03xPRJTQhsJgd8yXOCwWK6EISMnZTZnBwwcT3LRSNcNzLPP89R6RfZl48ge7w4WRCmQhHvrk7DuT58dfvJuv5fWy_96U4I1SXnhmq68_pE2EH-gL6giNb2lxGkjUG7JkRig7PCKcOTh1eEIpXBP3SIVSveAXdQHHZGvJw3m-NvHGcjez-v5Gg6D45ULz-QDlmti1sUzQmozY_6ZMuy5eXPJva0ebaDKqolbG2MmNlh4GKE-Va18VYVJlrtdKlanSl6rws82NVN01uKK-sVVbXJygVzcb5o_dv85HjPXMprdTmqmlynXkzkE_78I3ehPvhaWUfwdhu9w7Dek9QKu-SpE-SOPHUnq3FH8YSeRHHAYXxKzdbo28nkWV7ItA96P7uZFqH48gz6H6D78thifwfjQK6_9CcQPe77LdW_w4AAP__Ehv90w">