使用命令行运行clang-format:指定IncludeCategories

时间:2016-05-12 14:38:13

标签: include-path clang-format

我想用命令行运行clang-format(版本3.8)。使用“-style =”选项可以指定ClangFormatStyleOptions。但是,我无法找到如何指定“IncludeCategories”。在Documentation中,仅描述了如何使用样式配置文件。 所以我想知道,是否可以使用命令行指定它,如果是,我该怎么做。

1 个答案:

答案 0 :(得分:1)

格式如下:

-style="{IncludeCategories: [{Regex: 'bla', Priority: 100}, {Regex: 'blubb', Priority: 101}]}"

我通过实验发现了这一点,无法引用任何消息来源。


我正在使用clang-format-6.0,并且观察到以下意外行为。 假设我从某种默认样式开始,并使用-dump-config标志并获得以下IncludeCategories

IncludeCategories: 
  - Regex:           '^<ext/.*\.h>'
    Priority:        2
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3

然后将IncludeCategories: [{Regex: 'bla', Priority: 100}]添加到-style并转储其结果,我得到:

IncludeCategories: 
  - Regex:           'bla'
    Priority:        100
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3

因此它正在覆盖默认映射的条目,但是当将IncludeCategories添加到-style时,它不会删除该映射。我必须用虚拟条目覆盖它,然后附加我的实际条目以获得所需的结果。