背景
寫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()