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

    <tr>
        <th>Summary</th>
        <td>
            clang-format for obj-c lines up colons inside @selector
        </td>
    </tr>

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

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

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

<pre>
    Consider:

```
$ cat /tmp/a.mm
- (void)setSearchBarText:(NSString*)text {
  _searchBar.text = text;
  if ([_searchBar.delegate respondsToSelector:@selector(searchBar:textDidChange:)]) {
 [_searchBar.delegate searchBar:_searchBar textDidChange:text];
  } 
}

$ build/bin/clang-format /tmp/a.mm
- (void)setSearchBarText:(NSString *)text {
  _searchBar.text = text;
  if ([_searchBar.delegate respondsToSelector:@selector(searchBar:
 textDidChange:)]) {
    [_searchBar.delegate searchBar:_searchBar textDidChange:text];
  }
}
```

To break the long line, clang-format aligned `searchBar:` and `textDidChange:` on the colons, but breaking up the `@selector(searchBar:textDidChange:)` argument doesn't seem great. Perhaps it would have been better to break the line before `respondsToSelector:` instead, something like:

```
- (void)setSearchBarText:(NSString*)text {
  _searchBar.text = text;
  if ([_searchBar.delegate
 respondsToSelector:@selector(searchBar:textDidChange:)]) {
 [_searchBar.delegate searchBar:_searchBar textDidChange:text];
  } 
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUVE2L4zgQ_TXypUhQyl_xwYekg4_LQvq-yFbZVrcsBUnO9u6vX-Qk28lMD8MwA82AwFglvXr19KqE92owRDXL9yw_JGIOo3X1v5OVNCWtlf_UT9Z4JcmxdMf4sgp-XXzHMINOBGDYhOnEsBHraWJ8twKG27NVkmHlKRxJuG7cC_dMbyEC4faP4zE4ZQaGO4ZVoLcArNwzvgP4y9-Ory_76QHCcvESV31EZ_n-7qAkTYMIBI78yRrpn-2RNHXBLsQz7m9_uP3_Fkt3Efeg5NMozEALs4rlB4bVjc030txjvMfhS7iFdn64MWflAaJq5eEqJWbQzkpLhk2rDMOm08IMq9666adUhU-WNQJ-V1qAX67uu7j3JuW7ZwutI_EKYSTQ1gyglSGGT_AguNCxGySwgj9UU3AQZtn-qqiCgzULbGe1NT5itnO4pIsvMZ-WaKTyQy6MOd0wT2QCSEveMCwDeKIJBkcirOFPcqM4eVAB_razljCKM0FLZKClEMhBeChbmRjtrVvYfPyiBQdlfCAhYyHeThRGtcj1Sh9OgE_r9HjgN2r2m2SJrFNZpZVIqN6UOd9mVVnkyVhTj3KTii4vsgIrnvKeqiprt9TnZSn7KlE1csx5gflmwyvM1-2GZ2lOG0Lq07LcsozTJJRea32e1tYNifJ-pnqT5UWZJlq0pP0y6RHvbc8Q4-x3dby3aufBs4xr5YN_RwoqaKofmqW3Dmz7suoWZ_lo9EsLRAcpSXD3EMnsdD2GcPKL7A3DZlBhnNt1ZyeGTcxz_axOzr5QFxg2C33PsLlWcK7xvwAAAP__EAUb3w">