设置IndentWidth不能以clang格式工作

时间:2014-11-04 16:45:10

标签: c++ clang-format

我的主目录中有.clang-format,并设置了indentwidth 4,如下所示。

BasedOnStyle:  LLVM
Standard:        Cpp11
IndentWidth:     4   
TabWidth:        4   
UseTab:          Never 

但是当我使用clang-format -style='~/.clang-format' a.cpp格式化代码时,缩进宽度变为2.喜欢:

// See this indent width 2. The original file has width 4, 
// but clang-format changes it to width 2.
int main(int argc, char const *argv[]) {
  A a;  
  a.bar();

clang-format --version的输出是

LLVM (http://llvm.org/):
  LLVM version 3.4.2
  Optimized build.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: core-avx-i

如何让clang-format格式化我的代码(.h,.c,..),缩进宽度为4?

1 个答案:

答案 0 :(得分:9)

http://clang.llvm.org/docs/ClangFormat.html

-style选项不接受文件路径。它使用字符串file来指示使用.clang格式文件,并在转换stdin时在正在处理的文件的父目录中查找该文件,或查找工作目录及其父目录。

您还可以为其指定一个直接设置所需选项的字符串:

clang-format -style="{IndentWidth: 4,TabWidth: 4}"

您还可以使用-dump-config选项检查配置。


  

-style='~/.clang-format'

使用~来引用您的主目录通常依赖于shell globbing。在这样的论证中,shell不会为你做这件事。因此,即使-style确实走了一条路,也不会产生正确的路径。