<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">