您可以將 EditorConfig 檔案新增至專案,以設定C++格式設定,以針對參與專案的每個人強制執行一致的程式代碼樣式。 Visual Studio 和 Visual Studio Code 都有每個全域 Visual Studio C++格式設定的內 建 EditorConfig 支援。 EditorConfig 設定會儲存在檔案中 .editorconfig 。 當您的專案中有該檔案時,它會優先於Visual Studio格式設定。
本文件列出 Visual Studio 和 Visual Studio Code 支援的所有 EditorConfig C++格式設定。
如需下列項目的詳細資訊:
- 在 Visual Studio 中使用 EditorConfig 檔案,請參閱 使用 EditorConfig 定義一致的編碼樣式。
- 根據 clang 格式設定手動建立 EditorConfig 檔案,請參閱 clangformat。 重新命名該檔案
.editorconfig,並將它儲存在您的專案中。
C++ 格式化慣例
C++ 格式化 EditorConfig 設定前面會加上 cpp_。 以下是檔案外觀的範例 .editorconfig :
[*.{c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,inl,ipp,tlh,tli}]
cpp_indent_case_contents_when_block = true
cpp_new_line_before_open_brace_namespace = same_line
本文件的其餘部分會列出 Visual Studio 和 VS Code 支援的所有 EditorConfig C++ 格式化設定。
縮排設定
縮排大括弧
- 名稱:
cpp_indent_braces - 值:
true、false
相對於下列項目縮排每一行
- 名稱:
cpp_indent_multi_line_relative_to - 值:
outermost_parenthesis- 輸入新行時,會相對於最外側的左括弧縮排該行。innermost_parenthesis- 輸入新行時,會相對於最內側的左括弧縮排該行。statement_begin- 輸入新行時,會相對於目前陳述式的開頭縮排該行。
在括弧內,輸入新行時對齊新行
- 名稱:
cpp_indent_within_parentheses - 值:
align_to_parenthesis- 將內容對齊左括弧。indent- 縮排新行。
在現有的程式碼中,不使用在括弧內對齊新行的設定
- 名稱:
cpp_indent_preserve_within_parentheses - 值:
true、false
縮排 case 內容
- 名稱:
cpp_indent_case_contents - 值:
true、false
縮排 case 標籤
- 名稱:
cpp_indent_case_labels - 值:
true、false
縮排 Case 陳述式後面的大括弧
- 名稱:
cpp_indent_case_contents_when_block - 值:
true、false
縮排作為參數之 Lambda 的大括弧
- 名稱:
cpp_indent_lambda_braces_when_parameter - 值:
true、false
goto 標籤的位置
- 名稱:
cpp_indent_goto_labels - 值:
one_left- 向左縮排一次leftmost_column- 移至最左側的資料行none- 維持縮排
前置處理器指示詞位置
- 名稱:
cpp_indent_preprocessor - 值:
one_left- 向左縮排一次leftmost_column- 移至最左側的資料行none- 維持縮排
縮排存取規範
- 名稱:
cpp_indent_access_specifiers - 值:
true、false
縮排命名空間內容
- 名稱:
cpp_indent_namespace_contents - 值:
true、false
保留註解的縮排
- 名稱:
cpp_indent_preserve_comments - 值:
true、false
分行字元設定
命名空間的左大括弧位置
- 名稱:
cpp_new_line_before_open_brace_namespace - 值:
new_line- 移至新行same_line- 保持在同一行,但在前面加一個空格ignore- 不自動重新置放
類型的左大括弧位置
- 名稱:
cpp_new_line_before_open_brace_type - 值:
new_line- 移至新行same_line- 保持在同一行,但在前面加一個空格ignore- 不自動重新置放
函式的左大括弧位置
- 名稱:
cpp_new_line_before_open_brace_function - 值:
new_line- 移至新行same_line- 保持在同一行,但在前面加一個空格ignore- 不自動重新置放
控制區塊的左大括弧位置
- 名稱:
cpp_new_line_before_open_brace_block - 值:
new_line- 移至新行same_line- 保持在同一行,但在前面加一個空格ignore- 不自動重新置放
Lambda 的左大括弧位置
- 名稱:
cpp_new_line_before_open_brace_lambda - 值:
new_line- 移至新行same_line- 保持在同一行,但在前面加一個空格ignore- 不自動重新置放
將範圍大括弧放在個別行上
- 名稱:
cpp_new_line_scope_braces_on_separate_lines - 值:
true、false
針對空白類型,將右大括弧移至左大括弧所在的同一行
- 名稱:
cpp_new_line_close_brace_same_line_empty_type - 值:
true、false
針對空的函式主體,將右大括弧移至左大括弧所在的同一行
- 名稱:
cpp_new_line_close_brace_same_line_empty_function - 值:
true、false
將 'catch' 和類似的關鍵字放在新行
- 名稱:
cpp_new_line_before_catch - 值:
true、false
將 'else' 放在新行
- 名稱:
cpp_new_line_before_else - 值:
true、false
將 do-while 迴圈中的 'while' 放在新行
- 名稱:
cpp_new_line_before_while_in_do_while - 值:
true、false
間距設定
函式名稱與引數清單左括弧之間的間距
- 名稱:
cpp_space_before_function_open_parenthesis - 值:
insert- 插入空格remove- 移除空格ignore- 不變更空格
在引數清單括弧內插入空格
- 名稱
cpp_space_within_parameter_list_parentheses值:true、false
當引數清單是空的時,在括弧之間插入空格
- 名稱:
cpp_space_between_empty_parameter_list_parentheses - 值:
true、false
在控制流程陳述式中關鍵字與左括弧之間插入空格
- 名稱:
cpp_space_after_keywords_in_control_flow_statements - 值:
true、false
在控制陳述式的括弧內插入空格
- 名稱:
cpp_space_within_control_flow_statement_parentheses - 值:
true、false
在開啟 Lambda 引數清單的括弧前面插入空格
- 名稱:
cpp_space_before_lambda_open_parenthesis - 值:
true、false
在 C 樣式轉換的括弧內插入空格
- 名稱:
cpp_space_within_cast_parentheses - 值:
true、false
在 C 樣式轉換的右括弧後面插入空格
- 名稱:
cpp_space_after_cast_close_parenthesis - 值:
true、false
在加括號的運算式的括弧內插入空格
- 名稱:
cpp_space_within_expression_parentheses - 值:
true、false
在區塊的左大括弧前面插入空格
- 名稱:
cpp_space_before_block_open_brace - 值:
true、false
在空的大括弧之間插入空格
- 名稱:
cpp_space_between_empty_braces - 值:
true、false
在統一初始化和初始設定式清單的左大括弧前面插入空格
- 名稱:
cpp_space_before_initializer_list_open_brace - 值:
true、false
在統一初始化和初始設定式清單的大括弧內插入空格
- 名稱:
cpp_space_within_initializer_list_braces - 值:
true、false
保留統一的初始化與初始設定式清單內的空格
- 名稱:
cpp_space_preserve_in_initializer_list - 值:
true、false
在左方括弧前面插入空格
- 名稱:
cpp_space_before_open_square_bracket - 值:
true、false
在方括弧內插入空格
- 名稱:
cpp_space_within_square_brackets - 值:
true、false
在空的方括弧前面插入空格
- 名稱:
cpp_space_before_empty_square_brackets - 值:
true、false
在空的方括弧之間插入空格
- 名稱:
cpp_space_between_empty_square_brackets - 值:
true、false
將多維度陣列的方括弧群組在一起
- 名稱:
cpp_space_group_square_brackets - 值:
true、false
在 Lambda 的方括弧內插入空格
- 名稱:
cpp_space_within_lambda_brackets - 值:
true、false
SpaceBetweenEmptyLambdaBrackets
- 名稱:
cpp_space_between_empty_lambda_brackets - 值:
true、false
在逗號前面插入空格
- 名稱:
cpp_space_before_comma - 值:
true、false
在逗號後面插入空格
- 名稱:
cpp_space_after_comma - 值:
true、false
移除成員運算子前後的空格
- 名稱:
cpp_space_remove_around_member_operators - 值:
true、false
在類型宣告中基底的冒號前面插入空格
- 名稱:
cpp_space_before_inheritance_colon - 值:
true、false
在建構函式的冒號前面插入空格
- 名稱:
cpp_space_before_constructor_colon - 值:
true、false
移除分號前面的空格
- 名稱:
cpp_space_remove_before_semicolon - 值:
true、false
在分號後面插入空格
- 名稱:
cpp_space_after_semicolon - 值:
true、false
移除一元運算子與其運算元之間的空格
- 名稱:
cpp_space_remove_around_unary_operator - 值:
true、false
二元運算子的間距
- 名稱:
cpp_space_around_binary_operator - 值:
insert- 在二元運算子前後插入空格。remove- 移除二元運算子前後的空格。ignore- 不變更二元運算子前後的空格。
指派運算子的間距
- 名稱:
cpp_space_around_assignment_operator - 值:
insert- 在指派運算子前後插入空格。remove- 移除指派運算子前後的空格。ignore- 不變更指派運算子前後的空格。
指標/參考對齊
- 名稱:
cpp_space_pointer_reference_alignment - 值:
left- 靠左對齊。center- 水平置中。right- 靠右對齊。ignore- 保持不變。
條件運算子的間距
- 名稱:
cpp_space_around_ternary_operator - 值:
insert- 在條件運算子前後插入空格。remove- 移除條件運算子前後的空格。ignore- 不變更條件運算子前後的空格。
換行選項
區塊的換行選項
- 名稱:
cpp_wrap_preserve_blocks - 值:
one_liners- 不要將單行程式碼區塊換行。all_one_line_scopes- 當左、右大括弧位於下一行時,不將程式碼區塊換行。never- 一律套用區塊的新行設定。