共用方式為


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
  • 值:truefalse

相對於下列項目縮排每一行

  • 名稱: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
  • 值:truefalse

縮排 case 內容

  • 名稱:cpp_indent_case_contents
  • 值:truefalse

縮排 case 標籤

  • 名稱:cpp_indent_case_labels
  • 值:truefalse

縮排 Case 陳述式後面的大括弧

  • 名稱:cpp_indent_case_contents_when_block
  • 值:truefalse

縮排作為參數之 Lambda 的大括弧

  • 名稱:cpp_indent_lambda_braces_when_parameter
  • 值:truefalse

goto 標籤的位置

  • 名稱:cpp_indent_goto_labels
  • 值:
    • one_left - 向左縮排一次
    • leftmost_column - 移至最左側的資料行
    • none - 維持縮排

前置處理器指示詞位置

  • 名稱:cpp_indent_preprocessor
  • 值:
    • one_left - 向左縮排一次
    • leftmost_column - 移至最左側的資料行
    • none - 維持縮排

縮排存取規範

  • 名稱:cpp_indent_access_specifiers
  • 值:truefalse

縮排命名空間內容

  • 名稱:cpp_indent_namespace_contents
  • 值:truefalse

保留註解的縮排

  • 名稱:cpp_indent_preserve_comments
  • 值:truefalse

分行字元設定

命名空間的左大括弧位置

  • 名稱: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
  • 值:truefalse

針對空白類型,將右大括弧移至左大括弧所在的同一行

  • 名稱:cpp_new_line_close_brace_same_line_empty_type
  • 值:truefalse

針對空的函式主體,將右大括弧移至左大括弧所在的同一行

  • 名稱:cpp_new_line_close_brace_same_line_empty_function
  • 值:truefalse

將 'catch' 和類似的關鍵字放在新行

  • 名稱:cpp_new_line_before_catch
  • 值:truefalse

將 'else' 放在新行

  • 名稱:cpp_new_line_before_else
  • 值:truefalse

將 do-while 迴圈中的 'while' 放在新行

  • 名稱:cpp_new_line_before_while_in_do_while
  • 值:truefalse

間距設定

函式名稱與引數清單左括弧之間的間距

  • 名稱:cpp_space_before_function_open_parenthesis
  • 值:
    • insert - 插入空格
    • remove - 移除空格
    • ignore - 不變更空格

在引數清單括弧內插入空格

  • 名稱 cpp_space_within_parameter_list_parentheses 值:truefalse

當引數清單是空的時,在括弧之間插入空格

  • 名稱:cpp_space_between_empty_parameter_list_parentheses
  • 值:truefalse

在控制流程陳述式中關鍵字與左括弧之間插入空格

  • 名稱:cpp_space_after_keywords_in_control_flow_statements
  • 值:truefalse

在控制陳述式的括弧內插入空格

  • 名稱:cpp_space_within_control_flow_statement_parentheses
  • 值:truefalse

在開啟 Lambda 引數清單的括弧前面插入空格

  • 名稱:cpp_space_before_lambda_open_parenthesis
  • 值:truefalse

在 C 樣式轉換的括弧內插入空格

  • 名稱:cpp_space_within_cast_parentheses
  • 值:truefalse

在 C 樣式轉換的右括弧後面插入空格

  • 名稱:cpp_space_after_cast_close_parenthesis
  • 值:truefalse

在加括號的運算式的括弧內插入空格

  • 名稱:cpp_space_within_expression_parentheses
  • 值:truefalse

在區塊的左大括弧前面插入空格

  • 名稱:cpp_space_before_block_open_brace
  • 值:truefalse

在空的大括弧之間插入空格

  • 名稱:cpp_space_between_empty_braces
  • 值:truefalse

在統一初始化和初始設定式清單的左大括弧前面插入空格

  • 名稱:cpp_space_before_initializer_list_open_brace
  • 值:truefalse

在統一初始化和初始設定式清單的大括弧內插入空格

  • 名稱:cpp_space_within_initializer_list_braces
  • 值:truefalse

保留統一的初始化與初始設定式清單內的空格

  • 名稱:cpp_space_preserve_in_initializer_list
  • 值:truefalse

在左方括弧前面插入空格

  • 名稱:cpp_space_before_open_square_bracket
  • 值:truefalse

在方括弧內插入空格

  • 名稱:cpp_space_within_square_brackets
  • 值:truefalse

在空的方括弧前面插入空格

  • 名稱:cpp_space_before_empty_square_brackets
  • 值:truefalse

在空的方括弧之間插入空格

  • 名稱:cpp_space_between_empty_square_brackets
  • 值:truefalse

將多維度陣列的方括弧群組在一起

  • 名稱:cpp_space_group_square_brackets
  • 值:truefalse

在 Lambda 的方括弧內插入空格

  • 名稱:cpp_space_within_lambda_brackets
  • 值:truefalse

SpaceBetweenEmptyLambdaBrackets

  • 名稱:cpp_space_between_empty_lambda_brackets
  • 值:truefalse

在逗號前面插入空格

  • 名稱:cpp_space_before_comma
  • 值:truefalse

在逗號後面插入空格

  • 名稱:cpp_space_after_comma
  • 值:truefalse

移除成員運算子前後的空格

  • 名稱:cpp_space_remove_around_member_operators
  • 值:truefalse

在類型宣告中基底的冒號前面插入空格

  • 名稱:cpp_space_before_inheritance_colon
  • 值:truefalse

在建構函式的冒號前面插入空格

  • 名稱:cpp_space_before_constructor_colon
  • 值:truefalse

移除分號前面的空格

  • 名稱:cpp_space_remove_before_semicolon
  • 值:truefalse

在分號後面插入空格

  • 名稱:cpp_space_after_semicolon
  • 值:truefalse

移除一元運算子與其運算元之間的空格

  • 名稱:cpp_space_remove_around_unary_operator
  • 值:truefalse

二元運算子的間距

  • 名稱: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 - 一律套用區塊的新行設定。

另請參閱