<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63241>63241</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang-format fails to correctly format doxygen comments with \ as keyword starters
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
larshg
</td>
</tr>
</table>
<pre>
Hey
If I run clang format on ie:
```
/** \brief Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
* \param[in] msg the PCLPointCloud2 binary blob (note that the binary point data in msg.data will not be used!)
* \param[out] cloud the resultant pcl::PointCloud<T>
* \param[in] field_map a MsgFieldMap object
* \param[in] msg_data pointer to binary blob data, used instead of msg.data
*
* \note Use fromPCLPointCloud2 (PCLPointCloud2, PointCloud<T>) instead, except if you have a binary blob of I just want to test so this doesn't get moved around.
* point data that you do not want to copy into a pcl::PCLPointCloud2 in order to use fromPCLPointCloud2.
*/
```
its formatted into:
```
/** \brief Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object
* using a field_map. \param[in] msg the PCLPointCloud2 binary blob (note that the
* binary point data in msg.data will not be used!) \param[out] cloud the resultant
* pcl::PointCloud<T> \param[in] field_map a MsgFieldMap object \param[in] msg_data
* pointer to binary blob data, used instead of msg.data
*
* \note Use fromPCLPointCloud2 (PCLPointCloud2, PointCloud<T>) instead, except if you
* have a binary blob of I just want to test so this doesn't get moved around. point
* data that you do not want to copy into a pcl::PCLPointCloud2 in order to use
* fromPCLPointCloud2.
*/
```
but if @ is used instead of \ :
```
/** @brief Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
* @param[in] msg the PCLPointCloud2 binary blob (note that the binary point data in msg.data will not be used!)
* @param[out] cloud the resultant pcl::PointCloud<T>
* @param[in] field_map a MsgFieldMap object
* @param[in] msg_data pointer to binary blob data, used instead of msg.data
*
* @note Use fromPCLPointCloud2 (PCLPointCloud2, PointCloud<T>) instead, except if you have a binary blob of I just want to test so this doesn't get moved around.
* point data that you do not want to copy into a pcl::PCLPointCloud2 in order to use fromPCLPointCloud2.
*/
```
Its formatted correctly like this:
```
/** @brief Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object
* using a field_map.
* @param[in] msg the PCLPointCloud2 binary blob (note that the binary point data in
* msg.data will not be used!)
* @param[out] cloud the resultant pcl::PointCloud<T>
* @param[in] field_map a MsgFieldMap object
* @param[in] msg_data pointer to binary blob data, used instead of msg.data
*
* @note Use fromPCLPointCloud2 (PCLPointCloud2, PointCloud<T>) instead, except if you
* have a binary blob of I just want to test so this doesn't get moved around. point
* data that you do not want to copy into a pcl::PCLPointCloud2 in order to use
* fromPCLPointCloud2.
*/
```
Is this intentional - can we do some setting that makes it work with \ and @ - I think unfortunately both versions has been used.
Thanks, Lars
Ref: https://github.com/PointCloudLibrary/pcl/pull/5724
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsV9Fu4jgU_RrzclUUbALlIQ8dumgrdaTRavZ55CQ3iQfHRvZNGf5-ZZO2ZCiU3WlnVquVKmiw43POvT4-svRe1QYxY-kHlt6OZEeNdZmWzjf1KLflLvsddyy5ZcnN_vOugjtwnYFCS1NDZV0rCawBhUz0c9gs6f_iIwDjK8ZvGL8Bli5zp7CCpTUP6AgkfFref7LK0FLbruSQKyPdDkpJEnJtc1CGLEjYFDoAiJvnyUwsPzPxG9j8KxYEnVemBgmVQl1-aeVm_IgfGETsjXSyZekHZVh6C62vgRo8wSCCM35tLCFQIynO7Qc3Yf6epDJhoXH8f6u0BmMJcoTOY8n4hPHFSRq2o8CjCLhxdYe-0yQNnZH7iqgn9SDho69X4fGj3PRF6l8-VY4vUUUUhw7IDmoRxhhfRmGgjCeUJdjqSf2A2BHLWMY_PULlbPtdxRm_Hv4SYI6F88UjbBjHbwVuCFQFO9tBIx8Q5ICvDVv1a-cJtqGiZIHQE3gL1CgPpUVvGJ8T1EjQ2gcsQTrbmfK7fXPQ67gNAlxpY5sfFy7sZne8UYcilQHryn1ZuxfrMMQNpnnJTop8bzuKfSB7ynhPzf4J7nuiHnCOnfgm5htg_BMjXua9AcwZ4X_TeqcNNwT8IfMdOu-nGG-A9qYm3FdisP5be3Cw-Dk_nrHj_jPvYkHYNAHlj5rE0iVclI7T5Nel4zT5V6TjM40fSccXFV0UjWfK8W7pOE3-T8eL0_FVL94NArKwzmFBegdarTGK-8VWfCUqh-f3e7lygHKpQ9_QoCfkXWjR93XoUYi-tz8PDq3_aIS-blq_VxM6Z0hZIzVcQSENbDHQ9LZF8EgU7BL5t3KNHhTB1ro1bBU1MWelKWMMX8FdWNGsoTOVddQZSah3kFtq4AGdV9Z4aKSHHNHETdGT_dxIs_ahSffS-UOSf2DFxA00RJt4iITTYlUrarp8XNiW8dWz9HuVO-l2jK9CJflq0-nwlc75dFRmolyIhRxhNpldz6ZiIoQYNVmSXhez-VwUeS6mRSVmWKR5VRTFXM6EmKcjlfGEi2Q2SfgkuU7FeJ6W82RWyEUicCFyyaYJtlLpsdYP7di6eqS87zCbCT6djLTMUft42efc4BbiIOM83P1dFt65yrvas2milSf_vAop0pgtw53_qr_zV1Jpv981jydsP1Lab7saDRS2bdGQP2iOhzXuttaV4Ek6QudHndPZmYoGCv3X1cbZeAzwVSTuGV9FYX8FAAD__2kvSng">