1、格式化之前的準(zhǔn)備。
可以用Clang-Format插件,也可以用C/C++插件。因?yàn)楝F(xiàn)在的C/C++插件已經(jīng)具備了這個(gè)功能。
2、配置相關(guān)
或者在setting.json中粘貼下面的代碼,需要將C_Cpp.clang_format_path換成自己的clang-format路徑。
{
"files.associations": {
"slider.h": "c"
},
"C_Cpp.clang_format_path": "C:\\Users\\Ruby\\.vscode\\extensions\\ms-vscode.cpptools-1.14.4-win32-x64\\LLVM\\bin\\clang-format.exe",
"C_Cpp.formatting": "clangFormat",
"C_Cpp.clang_format_fallbackStyle": "Visual Studio",
"C_Cpp.clang_format_sortIncludes": null,
"C_Cpp.clang_format_style": "file"
}
3、.clang-format文件
下面是我的配置:
---
Language: Cpp
#圓括號(hào)之后,多行內(nèi)容,進(jìn)行對(duì)齊
AlignAfterOpenBracket: Align
#連續(xù)賦值時(shí),對(duì)齊所有等號(hào)
AlignConsecutiveAssignments: true
#連續(xù)聲明時(shí),對(duì)齊所有聲明的變量名
AlignConsecutiveDeclarations: true
#連續(xù)宏定義時(shí),對(duì)齊所有定義值
AlignConsecutiveMacros: AcrossEmptyLinesAndComments
#AlignOperands Align將對(duì)齊分割到多行上的單個(gè)表達(dá)式的操作數(shù)
AlignOperands: Align
#對(duì)齊連續(xù)的尾隨的注釋
AlignTrailingComments: true
#允許將一個(gè)函數(shù)聲明的所有參數(shù)移到下一行.
AllowAllParametersOfDeclarationOnNextLine: false
#將簡(jiǎn)單的語(yǔ)句塊放到一個(gè)單行
AllowShortBlocksOnASingleLine: false
#if (a) return;放單行 屬性:Never、WithoutElse沒有else的可以放單行、OnlyFirstIf只有第一個(gè)if放單行、AllIfsAndElse總是把簡(jiǎn)短的if, else if和else語(yǔ)句放在同一行。
AllowShortIfStatementsOnASingleLine: Never
#BinPackArguments:如果為false,函數(shù)調(diào)用的參數(shù)要么全部在同一行,要么各有一行。
BinPackArguments: false
#BinPackParameters:如果為false,函數(shù)聲明或函數(shù)定義的參數(shù)將全部在同一行或各有一行。
BinPackParameters: false
BreakBeforeBraces: Custom
# 控制單獨(dú)的大括號(hào)換行事件,只有當(dāng)BreakBeforeBraces設(shè)置為Custom時(shí)才有效
BraceWrapping:
#使控制語(yǔ)句(if/for/while/switch/..)換行。
AfterControlStatement: true
#使枚舉定義換行。
AfterEnum: true
#使函數(shù)定義換行。
AfterFunction: true
#使結(jié)構(gòu)定義換行。
AfterStruct: true
#使共同體定義換行。
AfterUnion: true
#在else之前換行。
BeforeElse: true
#換行大括號(hào)縮進(jìn)。
IndentBraces: false
#空函數(shù)是否可以放在單行:flase允許 true不允許
SplitEmptyFunction: true
#空類,結(jié)構(gòu)或聯(lián)合主體是否可以放在單行:flase允許 true不允許
SplitEmptyRecord: true
#空namespace是否可以放在單行:flase允許 true不允許
SplitEmptyNamespace: true
SpaceBeforeParens: Custom
#控制圓括號(hào)前的單獨(dú)空格,只有當(dāng)SpaceBeforeParens設(shè)置為Custom時(shí)才有效
SpaceBeforeParensOptions:
#在控制語(yǔ)句關(guān)鍵字(for/if/while…)和開括號(hào)之間放置空格
AfterControlStatements: true
#在函數(shù)聲明名稱和開括號(hào)之間不允許使用空格
AfterFunctionDeclarationName: false
#指針對(duì)齊:右
PointerAlignment: Right
# 三元運(yùn)算符將被放置在換行后
BreakBeforeTernaryOperators: true
#每行字符的限制,0表示沒有限制
ColumnLimit: 0
#縮進(jìn)空格寬度:4
IndentWidth: 4
#保留在賦值操作符之前的空格
SpaceBeforeAssignmentOperators: true
#不要排序include的頭文件
SortIncludes: Never
#允許重新排版注釋
ReflowComments: true
#尾行注釋前的空格數(shù)
SpacesBeforeTrailingComments: 2
#連續(xù)空行的最大數(shù)量
MaxEmptyLinesToKeep: 1
#使用tab字符: Never從不使用, ForIndentation僅在縮進(jìn)時(shí)使用制表符, ForContinuationAndIndentation, Always
UseTab: Never
#SpacesInParentheses如果為真(true), 將會(huì)在“(”之后和“)”之前插入空格。
SpacesInParentheses: false
#SpacesInSquareBrackets如果為真(true),將會(huì)在“[”之后和“]”之前插入空格。
SpacesInSquareBrackets: false
ps:網(wǎng)上我看很多人提到這個(gè).clang-format文件不能有中文,但是目前在我這是沒問題的,不知道其他人有沒有影響。
4、在文件中右鍵,格式化文檔即可。
5、勾選下面的設(shè)置,可以在每次保存之前自動(dòng)格式化代碼,快捷鍵是Shift+Alt+f。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-696075.html
---------------------2023.07.19更新---------------------------
[注: 這里格式化的范圍是當(dāng)前保存文件。 如果想批量格式化文件夾,安裝 format files 插件安裝,選中想格式化的文件夾,右鍵開始格式化即可。 ]文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-696075.html
到了這里,關(guān)于VScode使用clang format文檔自動(dòng)代碼格式化(C語(yǔ)言)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!