前言

接着上上篇 Vscode配置proto插件, 在装了 clang-format插件后,我发现格式化完的 proto 文件tabwidth 默认为2, 看起来很别扭

踩坑

网上搜索得到的大部分解决方案是: 修改 vscode 里的C_Cpp.clang_format_fallbackStyle配置, 该配置的默认值为Visual Studio,改为Google或者LLVM

1
"C_Cpp.clang_format_fallbackStyle":"Google"

这个修改解决的是{}花括号会换行的格式问题,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
//不换行
func a{
  
}

//会换行
func a
{
  
}

可能是vscode 已经默认使用了左花括号不换号的行为, 所以修改了这个选项并没有任何反应.

还有人提出可以在该设置中添加额外选项:

1
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, TabWidth: 4 }"

经测试发现也没有效果, 我甚至把clang-format能设置的选项都加上了

解决方案

其实很简单, 新建一个~/.clang-format文件,添加一行, 在格式化时clang-format会默认使用该配置文件

1
IndentWidth:     4

是我想要的效果是四个空格的缩进