我想用命令行运行clang格式(版本3.8)。使用"-style="选项可以指定ClangFormatStyleOptions。然而,我无法找到如何指定"IncludeCategories"。在文档中,只描述了如何使用样式配置文件进行此操作。所以我想知道,是否可以用命令行指定它,如果可以,我该怎么做
格式如下:
-style="{IncludeCategories: [{Regex: 'bla', Priority: 100}, {Regex: 'blubb', Priority: 101}]}"
我通过实验发现了这一点,无法引用任何来源。
我使用的是clang-forma-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
时,它不会删除映射。我不得不用伪条目覆盖它,然后附加我的实际条目以获得所需的结果。