c++ 使用clang格式放置常量

bwitn5fc  于 2022-11-27  发布在  其他
关注(0)|答案(3)|浏览(203)

clang-format有很多关于空格的配置选项,也有一些关于代码顺序(包含的顺序)的配置选项。是否可以重新排序常量限定符,以便将它们放置在相应类型的右侧?
示例:声明const int x = 0;应格式化为int const x = 0;

cyej8jka

cyej8jka1#

编辑:clang-format版本14之后

clang-format版本14开始,可以使用值为RightQualifierAlignment选项。(有关替代值,请参阅https://clang.llvm.org/docs/ClangFormatStyleOptions.html
在配置文件中设置以下内容:

QualifierAlignment: Right

警告:
QualifierAlignment设置为Leave以外得值,可能会导致错误得代码格式设置,这是由于clang-formats缺少完整得语义信息而导致得错误决策.因此,在查看使用此选项所做得代码更改时应格外小心.

clang-format版本14之前

遗憾的是,documentation不提供此功能。

vecaoik1

vecaoik12#

这个功能现在似乎正在酝酿中:https://reviews.llvm.org/D69764

toiithl6

toiithl63#

从版本14.0开始,clang-format提供了QualifierAlignment选项,该选项可以采用以下值:第一个是第二个是第三个,第四个是第四个。
OP的请求因此可以通过

clang-format -style="{QualifierAlignment: Right}" <file-name>

文档可在here中找到
编辑:有关QualifierAlignment值的更多信息

  • 离开:clang-format将不会触及限定符位置
  • 左对齐:clang-format将限定符左对齐
  • 右:clang-format将限定符右对齐
  • 自订:

Custom用作QualifierAlignment的值时,使用clang-format选项QualifierOrder的顺序。这两个选项必须一起使用,如下所示:

clang-format -style="{QualifierOrder: ['inline', 'static', 'type', 'const'], QualifierAlignment: Custom}" <file-name>

编辑2:似乎不需要QAS_Right、QAS_Left等的前缀“QAS”。

相关问题