可以clang格式为我对齐一个#defines块
Can clang-format align a block of #defines for me?
我有一个源文件,其中包含这样的行;
#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a
所有值都很好地对齐。不幸的是,clang格式做到了这一点;
#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a
我找到了AlignConsecutiveDeclarations和AlignConsumeriveAssignments选项,但没有任何可以对齐连续#定义的选项。有可能做到这一点吗?
[UPDATE]
op的pull请求终于通过了,并且从clang版本9.0.0开始生效。该功能由AlignConsecutiveMacros: true
选项启用。
[原件]
奇怪的是,这个特性还没有在clang中实现;当前缺少连续宏的格式化选项。
许多开发人员对此感兴趣,有一个正在工作的拉取请求已经等待批准多年:https://reviews.llvm.org/D28462?id=93341
你可以整合它,或者只是等待他们是否将其添加到官方分支,但在这一点上,我怀疑他们是否会。
快速浏览样式选项,目前似乎没有此选项。我看到的唯一处理预处理的选项是IndentPPDirectives
,它处理#if
块的缩进。
我也找不到任何选项。Clang已经破坏了我所有由emacs自动对齐的定义。。
请注意,clang-format-9及以上版本有一个AlignConsecutiveMacros: true
选项,它可以帮你完成任务。
要在ubuntu/Debian上安装clang-format-9,需要检查http://apt.llvm.org/
。
举个例子,如果你有Ubuntu16.04/xenial,你需要做以下操作:
sudo sh -c 'echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" >> /etc/apt/sources.list'
sudo sh -c 'echo "deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" >> /etc/apt/sources.list'
sudo apt update
sudo apt install clang-format-9
可以用同样的方式处理Trusty/Ubuntu 14.04。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '