clang-format 可以为我对齐#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-format 会这样做;
#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a
我找到了 AlignConsecutiveDeclarations 和 AlignConsecutiveAssignments 选项,但没有任何东西可以对齐连续的#defines。可以这样做吗?
快速浏览 style options 似乎目前没有此选项。我看到的处理预处理的唯一选项是 IndentPPDirectives
,它处理 #if
块的缩进。
[更新]
op 的 pull request 终于通过了,从 clang 版本 9.0.0 开始。该功能由 AlignConsecutiveMacros: true
选项启用。
[原创]
奇怪的是,这个功能还没有在 clang 中实现;当前缺少连续宏的格式化选项。
许多开发人员都很感兴趣,并且有一个工作拉取请求已等待批准多年:https://reviews.llvm.org/D28462?id=93341
你可以集成它或者等待他们是否将它添加到官方分支,但在这一点上我怀疑他们会。
我也找不到任何选项。 Clang 破坏了我所有由 emacs 自动对齐的定义..
请注意,clang-format-9 及更高版本有一个 AlignConsecutiveMacros: true
选项,它可以为您解决问题。
要在 ubuntu/Debian 上安装 clang-format-9,您需要检查 http://apt.llvm.org/
。
例如,如果您有 Ubuntu 16.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/Ubuntu14.04。
我有一个包含这样几行的源文件;
#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a
所有值都很好地对齐。不幸的是,clang-format 会这样做;
#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a
我找到了 AlignConsecutiveDeclarations 和 AlignConsecutiveAssignments 选项,但没有任何东西可以对齐连续的#defines。可以这样做吗?
快速浏览 style options 似乎目前没有此选项。我看到的处理预处理的唯一选项是 IndentPPDirectives
,它处理 #if
块的缩进。
[更新]
op 的 pull request 终于通过了,从 clang 版本 9.0.0 开始。该功能由 AlignConsecutiveMacros: true
选项启用。
[原创]
奇怪的是,这个功能还没有在 clang 中实现;当前缺少连续宏的格式化选项。
许多开发人员都很感兴趣,并且有一个工作拉取请求已等待批准多年:https://reviews.llvm.org/D28462?id=93341
你可以集成它或者等待他们是否将它添加到官方分支,但在这一点上我怀疑他们会。
我也找不到任何选项。 Clang 破坏了我所有由 emacs 自动对齐的定义..
请注意,clang-format-9 及更高版本有一个 AlignConsecutiveMacros: true
选项,它可以为您解决问题。
要在 ubuntu/Debian 上安装 clang-format-9,您需要检查 http://apt.llvm.org/
。
例如,如果您有 Ubuntu 16.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/Ubuntu14.04。