背景
写c/cpp的时候一直习惯了大括号换行的风格,而Android源码中是不换行的,看着实在是很难受,所以每次打开一个文件的时候,都会先格式化一下。
之前看的低版本的Android,直接使用vscode默认的代码格式化功能就可以了,但是最近用它看Android8.1的代码,却发现不能格式化了。
开始我还以为是插件冲突啥的,于是就把插件禁用了,还是不行,而且打开之前低版本的代码,还是能正常的格式化,所以推测不是插件问题。
解决方法
通过各种姿势搜索vscode代码格式化,都是让设置【C_Cpp: Clang_format_fallback Style】,我把所有风格试了个遍,都没有任何作用
后来仔细看选项说明才发现,如果【C_Cpp: Clang_format_style】选项设置为【file】,会优先使用【.clang-format】文件中的配置,然后看该选项果然是file
于是去查找项目下有没有【.clang-format】,果然找到了很多,
随便查看一个,果然里面设置的google代码风格
直接把这些【.clang-format】文件删除就可以了。
删除脚本
文件太多了,手动删除太麻烦,写了个py脚本删除,脚本参数为要删除【.clang-format】文件的路径,要是不想删除,可以重命名备份下。
import os import sys def delete_clang_format(): curr_dir = os.getcwd() files = os.listdir('.') for name in files: if os.path.islink(name): pass elif os.path.isdir(name): os.chdir(name) delete_clang_format() os.chdir('..') elif os.path.isfile(name) and name == '.clang-format': print (curr_dir + '/' + name) # os.remove('.clang-format') os.rename('.clang-format', '.clang-format.back') if __name__ == '__main__': os.chdir(sys.argv[1]) delete_clang_format()