Created
October 21, 2019 08:41
-
-
Save Rainsting/e07092d8cd9dfeed0dc2ad9bf11d5a14 to your computer and use it in GitHub Desktop.
VSCode 自定義 Coding Style
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# 語言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto | |
Language: Cpp | |
# BasedOnStyle: LLVM | |
# 訪問說明符(public、private等)的偏移 | |
AccessModifierOffset: -2 | |
# 開括弧(開圓括號、開尖括弧、開方括號)後的對齊: Align, DontAlign, AlwaysBreak(總是在開括弧後換行) | |
AlignAfterOpenBracket: Align | |
# 連續賦值時,對齊所有等號 | |
AlignConsecutiveAssignments: true | |
# 連續聲明時,對齊所有聲明的變數名 | |
AlignConsecutiveDeclarations: true | |
AlignEscapedNewlines: Right | |
# 左對齊逃脫換行(使用反斜線換行)的反斜線 | |
#AlignEscapedNewlinesLeft: true | |
# 水準對齊二元和三元運算式的運算元 | |
AlignOperands: true | |
# 對齊連續的尾隨的注釋 | |
AlignTrailingComments: true | |
# 允許函式宣告的所有參數在放在下一行 | |
AllowAllParametersOfDeclarationOnNextLine: false | |
# 允許短的塊放在同一行 | |
AllowShortBlocksOnASingleLine: true | |
# 允許短的case標籤放在同一行 | |
AllowShortCaseLabelsOnASingleLine: true | |
# 允許短的函數放在同一行: None, InlineOnly(定義在類中), Empty(空函數), Inline(定義在類中,空函數), All | |
AllowShortFunctionsOnASingleLine: Empty | |
# 允許短的if語句保持在同一行 | |
AllowShortIfStatementsOnASingleLine: false | |
# 允許短的迴圈保持在同一行 | |
AllowShortLoopsOnASingleLine: false | |
# 總是在定義返回類型後換行(deprecated) | |
AlwaysBreakAfterDefinitionReturnType: None | |
# 總是在返回類型後換行: None, All, TopLevel(頂級函數,不包括在類中的函數), | |
# AllDefinitions(所有的定義,不包括聲明), TopLevelDefinitions(所有的頂級函數的定義) | |
AlwaysBreakAfterReturnType: None | |
# 總是在多行string字面量前換行 | |
AlwaysBreakBeforeMultilineStrings: false | |
# 總是在template聲明後換行 | |
AlwaysBreakTemplateDeclarations: false | |
# false表示函數實參要麼都在同一行,要麼都各自一行 | |
BinPackArguments: true | |
# false表示所有形參要麼都在同一行,要麼都各自一行 | |
BinPackParameters: false | |
# 大括弧換行,只有當BreakBeforeBraces設置為Custom時才有效 | |
BraceWrapping: | |
# class定義後面 | |
AfterClass: false | |
# 控制語句後面 | |
AfterControlStatement: false | |
# enum定義後面 | |
AfterEnum: false | |
# 函式定義後面 | |
AfterFunction: true | |
# 命名空間定義後面 | |
AfterNamespace: false | |
# ObjC定義後面 | |
AfterObjCDeclaration: false | |
# struct定義後面 | |
AfterStruct: true | |
# union定義後面 | |
AfterUnion: true | |
AfterExternBlock: false | |
# catch之前 | |
BeforeCatch: true | |
# else之前 | |
BeforeElse: true | |
# 縮進大括弧 | |
IndentBraces: false | |
SplitEmptyFunction: true | |
SplitEmptyRecord: true | |
SplitEmptyNamespace: true | |
# 在二元運算子前換行: None(在操作符後換行), NonAssignment(在非賦值的操作符前換行), All(在操作符前換行) | |
BreakBeforeBinaryOperators: None | |
# 在大括弧前換行: Attach(始終將大括弧附加到周圍的上下文), Linux(除函數、命名空間和類定義,與Attach類似), | |
# Mozilla(除枚舉、函數、記錄定義,與Attach類似), Stroustrup(除函式定義、catch、else,與Attach類似), | |
# Allman(總是在大括弧前換行), GNU(總是在大括弧前換行,並對於控制語句的大括弧增加額外的縮進), WebKit(在函數前換行), Custom | |
# 注:這裡認為語句塊也屬於函數 | |
BreakBeforeBraces: Custom | |
# 在三元運算子前換行 | |
BreakBeforeTernaryOperators: false | |
# 在構造函數的初始化清單的逗號前換行 | |
BreakConstructorInitializersBeforeComma: false | |
BreakConstructorInitializers: BeforeColon | |
# 每行字元的限制,0表示沒有限制 | |
ColumnLimit: 0 | |
# 描述具有特殊意義的注釋的規則運算式,它不應該被分割為多行或以其它方式改變 | |
CommentPragmas: '^ IWYU pragma:' | |
CompactNamespaces: false | |
# 構造函數的初始化清單要麼都在同一行,要麼都各自一行 | |
ConstructorInitializerAllOnOneLineOrOnePerLine: false | |
# 構造函數的初始化清單的縮進寬度 | |
ConstructorInitializerIndentWidth: 4 | |
# 延續的行的縮進寬度 | |
ContinuationIndentWidth: 4 | |
# 去除C++11的列表初始化的大括弧{後和}前的空格 | |
Cpp11BracedListStyle: true | |
# 繼承最常用的指針和引用的對齊方式 | |
DerivePointerAlignment: false | |
# 關閉格式化 | |
DisableFormat: false | |
# 自動檢測函數的調用和定義是否被格式為每行一個參數(Experimental) | |
ExperimentalAutoDetectBinPacking: false | |
# 需要被解讀為foreach迴圈而不是函式呼叫的宏 | |
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] | |
# 對#include進行排序,匹配了某規則運算式的#include擁有對應的優先順序,匹配不到的則默認優先順序為INT_MAX(優先順序越小排序越靠前), | |
# 可以定義負數優先順序從而保證某些#include永遠在最前面 | |
IncludeCategories: | |
- Regex: '^"(llvm|llvm-c|clang|clang-c)/' | |
Priority: 2 | |
- Regex: '^(<|"(gtest|isl|json)/)' | |
Priority: 3 | |
- Regex: '.*' | |
Priority: 1 | |
# 縮進case標籤 | |
IndentCaseLabels: true | |
IndentPPDirectives: AfterHash | |
# 縮進寬度 | |
IndentWidth: 4 | |
# 函數返回類型換行時,縮進函式宣告或函式定義的函數名 | |
IndentWrappedFunctionNames: false | |
# 保留在塊開始處的空行 | |
KeepEmptyLinesAtTheStartOfBlocks: false | |
# 開始一個塊的宏的規則運算式 | |
MacroBlockBegin: '' | |
# 結束一個塊的宏的規則運算式 | |
MacroBlockEnd: '' | |
# 連續空行的最大數量 | |
MaxEmptyLinesToKeep: 1 | |
# 命名空間的縮進: None, Inner(縮進嵌套的命名空間中的內容), All | |
NamespaceIndentation: Inner | |
# 使用ObjC塊時縮進寬度 | |
ObjCBlockIndentWidth: 4 | |
# 在ObjC的@property後添加一個空格 | |
ObjCSpaceAfterProperty: false | |
# 在ObjC的protocol列表前添加一個空格 | |
ObjCSpaceBeforeProtocolList: true | |
# 在call(後對函式呼叫換行的penalty | |
PenaltyBreakBeforeFirstCallParameter: 19 | |
# 在一個注釋中引入換行的penalty | |
PenaltyBreakComment: 300 | |
# 第一次在<<前換行的penalty | |
PenaltyBreakFirstLessLess: 120 | |
# 在一個字串字面量中引入換行的penalty | |
PenaltyBreakString: 1000 | |
# 對於每個在行字元數限制之外的字元的penalty | |
PenaltyExcessCharacter: 1000000 | |
# 將函數的返回類型放到它自己的行的penalty | |
PenaltyReturnTypeOnItsOwnLine: 60 | |
# 指針和引用的對齊: Left, Right, Middle | |
PointerAlignment: Right | |
# 允許重新排版注釋 | |
ReflowComments: true | |
# 允許排序#include | |
SortIncludes: true | |
# 在C風格類型轉換後添加空格 | |
SpaceAfterCStyleCast: false | |
SpaceAfterTemplateKeyword: true | |
# 在設定運算子之前添加空格 | |
SpaceBeforeAssignmentOperators: true | |
# 開圓括號之前添加一個空格: Never, ControlStatements, Always | |
SpaceBeforeParens: ControlStatements | |
# 在空的圓括號中添加空格 | |
SpaceInEmptyParentheses: false | |
# 在尾隨的評論前添加的空格數(只適用於//) | |
SpacesBeforeTrailingComments: 2 | |
# 在尖括弧的<後和>前添加空格 | |
SpacesInAngles: false | |
# 在容器(ObjC和JavaScript的陣列和字典等)字面量中添加空格 | |
SpacesInContainerLiterals: false | |
# 在C風格類型轉換的括弧中添加空格 | |
SpacesInCStyleCastParentheses: false | |
# 在圓括號的(後和)前添加空格 | |
SpacesInParentheses: false | |
# 在方括號的[後和]前添加空格,lamda運算式和未指明大小的陣列的聲明不受影響 | |
SpacesInSquareBrackets: false | |
# 標準: Cpp03, Cpp11, Auto | |
Standard: Cpp11 | |
# tab寬度 | |
TabWidth: 4 | |
# 使用tab字元: Never, ForIndentation, ForContinuationAndIndentation, Always | |
UseTab: Never | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment