C++ EditorConfig 格式設定慣例
您可以將 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
- 一律套用區塊的新行設定。