背景 

  写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()

  

posted on 2019-11-19 08:09  卧勒个槽  阅读(6414)  评论(0编辑  收藏  举报