clang-format - 如何让 Clang 格式允许自定义换行?
问题描述
我在使用 clang-format 时遇到问题。
有时,我想以自定义方式换行。例如,我想格式化以下代码。
gParticleList = (ParticleType*) mmap(NULL, sizeof(ParticleType) * gGridNum, \
PROT_READ | PROT_WRITE, MAP_SHARED, 0, 0);
预期的结果是这样的:
gParticleList = (ParticleType*)mmap(NULL, sizeof(ParticleType) * gGridNum, \
PROT_READ | PROT_WRITE, MAP_SHARED, 0, 0);
\
是我自己手动添加的。我希望 clang 接受我自己定义的换行符。
但是,clang-format 总是格式化 delete my \
,并给出如下代码:
gParticleList =
(ParticleType*)mmap(NULL, sizeof(ParticleType) * gGridNum, PROT_READ | PROT_WRITE, MAP_SHARED, 0, 0);
我知道我可以使用一些宏禁用 clang-format。但我想学习一些更好的方法来满足我的需要。
解决方案
这里有几个想法:
// clang-format off
通过将代码放在代码之前和代码之后,完全禁用代码周围的格式设置// clang-format on
。这很不方便,但可以让您完全手动控制代码的格式。有时在你想要的地方强制换行就足够了。
//
您可以通过在要换行的地方放置一个空注释来做到这一点。Clang 格式可能会更改缩进和间距,但不会将注释移动到不同的行,也不会将代码从注释的一侧移动到另一侧。在上面的示例中,您将用\
空注释替换 your 。
推荐阅读
- docker - 什么是“清单 blob 未知:注册表未知的 blob”错误
- python - (没有名为 __main__ 的模块)在 bashrc 中使用别名时
- c++ - C++ 警告:并非所有控制路径都返回值
- c++ - * function() 和 function() 的区别
- postgresql - Postgres函数错误:未终止的美元报价
- php - $_GET 值到 if else 语句中
- oracle - 如何在两个 Oracle RDS 实例之间创建数据库链接
- bash - Bash:printf中特殊字符的文字字符串
- r - 基于两个变量但有一个截止点的排序数据
- java - CSV 解析器 java.lang.ArrayIndexOutOfBoundsException