运行 使用命令行的 clang 格式:指定 IncludeCategories

Running clang-format with command line: specify IncludeCategories

我要运行 clang-format (version 3.8) with the command line. With the "-style=" option one can specify the ClangFormatStyleOptions. However, I was not able to find out how to specify the "IncludeCategories". In the Documentation这里只描述了如何用样式配置文件来实现。 所以我想知道,是否可以用命令行指定它,如果可以,我该怎么做。

格式如下:

-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 时它不会删除地图。我不得不用虚拟条目覆盖它,然后附加我的实际条目以获得所需的结果。