C++ EditorConfig formázási konvenciók

Szerkesztőkonfigurációs fájlokat is hozzáadhat a projekthez, hogy C++ formázást konfiguráljon, hogy egységes kódstílust kényszerítsen ki a projektben közreműködők számára. Mind Visual Studio, mind Visual Studio Code beépített EditorConfig-támogatással rendelkezik az egyes globális Visual Studio C++ formázási beállításokhoz. A Szerkesztőkonfiguráció beállításai egy .editorconfig fájlban vannak tárolva. Ha ez a fájl jelen van a projektben, elsőbbséget élvez a Visual Studio formázási beállításaival szemben.

Ez a dokumentum felsorolja a Visual Studio és Visual Studio Code által támogatott Összes EditorConfig C++ formázási beállítást.

A C++ további .editorconfig beállításokat is biztosít, amelyek nem formázási beállítások. Ezek a beállítások az általuk konfigurált funkciókkal vannak dokumentálva:

További információ:

C++ formázási konvenciók

A C++ formázási szerkesztőkonfigurációs beállítások előtaggal vannak elnevezettek cpp_. Íme egy példa egy .editorconfig fájl megjelenésére:

[*.{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

A cikk többi része felsorolja az Visual Studio és a VS Code által támogatott Összes EditorConfig C++ formázási beállítást.

Behúzási beállítások

Kapcsos zárójelek behúzása

  • Név: cpp_indent_braces
  • Értékek: true, false

Az egyes sorok behúzása viszonylag a

  • Név: cpp_indent_multi_line_relative_to
  • Értékrend:
    • outermost_parenthesis - Ha új sort ír be, az a legkülső nyitott zárójelhez viszonyítva van behúzva.
    • innermost_parenthesis - Ha új sort ír be, az viszonylag a legbelső nyitott zárójelhez van behúzva.
    • statement_begin – Ha új sort ír be, az viszonylag az aktuális utasítás elejéhez van behúzva.

Zárójelen belül igazítsa az új sorokat, amikor beírom őket

  • Név: cpp_indent_within_parentheses
  • Értékrend:
    • align_to_parenthesis – A tartalom igazítása a nyitó zárójelhez.
    • indent - Új sorok behúzása.

A meglévő kódban ne használja a beállítást az új sorok zárójelen belüli igazításához

  • Név: cpp_indent_preserve_within_parentheses
  • Értékek: true, false

Kis- és nagybetűk behúzása

  • Név: cpp_indent_case_contents
  • Értékek: true, false

Kisbetűk behúzása

  • Név: cpp_indent_case_labels
  • Értékek: true, false

Zárójelek behúzása esetkimutatás alapján

  • Név: cpp_indent_case_contents_when_block
  • Értékek: true, false

Paraméterekként használt lambdas zárójelek behúzása

  • Név: cpp_indent_lambda_braces_when_parameter
  • Értékek: true, false

A gotocímkék helye

  • Név: cpp_indent_goto_labels
  • Értékrend:
    • one_left – Egy behúzás balra
    • leftmost_column – Ugrás a bal szélső oszlopra
    • none - Hagyja behúzva

Az előfeldolgozó direktívák pozíciója

  • Név: cpp_indent_preprocessor
  • Értékrend:
    • one_left – Egy behúzás balra
    • leftmost_column – Ugrás a bal szélső oszlopra
    • none - Hagyja behúzva

Hozzáférés-meghatározók behúzása

  • Név: cpp_indent_access_specifiers
  • Értékek: true, false

Névtér tartalmának behúzása

  • Név: cpp_indent_namespace_contents
  • Értékek: true, false

Megjegyzések behúzásának megőrzése

  • Név: cpp_indent_preserve_comments
  • Értékek: true, false

Newline-beállítások

A névterek nyitott zárójeleinek pozíciója

  • Név: cpp_new_line_before_open_brace_namespace
  • Értékrend:
    • new_line – Ugrás új sorra
    • same_line - Tartsa ugyanabban a sorban, de adjon hozzá szóközt, mielőtt
    • ignore – Ne helyezze át automatikusan az áthelyezést

Nyitott kapcsos zárójelek pozíciója a típusok esetében

  • Név: cpp_new_line_before_open_brace_type
  • Értékrend:
    • new_line – Ugrás új sorra
    • same_line - Tartsa ugyanabban a sorban, de adjon hozzá szóközt, mielőtt
    • ignore – Ne helyezze át automatikusan az áthelyezést

Nyitott kapcsos zárójelek pozíciója függvényekhez

  • Név: cpp_new_line_before_open_brace_function
  • Értékrend:
    • new_line – Ugrás új sorra
    • same_line - Tartsa ugyanabban a sorban, de adjon hozzá szóközt, mielőtt
    • ignore – Ne helyezze át automatikusan az áthelyezést

Nyitott kapcsos zárójelek pozíciója vezérlőblokkokhoz

  • Név: cpp_new_line_before_open_brace_block
  • Értékrend:
    • new_line – Ugrás új sorra
    • same_line - Tartsa ugyanabban a sorban, de adjon hozzá szóközt, mielőtt
    • ignore – Ne helyezze át automatikusan az áthelyezést

Nyitott kapcsos zárójelek elhelyezése lambdákhoz

  • Név: cpp_new_line_before_open_brace_lambda
  • Értékrend:
    • new_line – Ugrás új sorra
    • same_line - Tartsa ugyanabban a sorban, de adjon hozzá szóközt, mielőtt
    • ignore – Ne helyezze át automatikusan az áthelyezést

Hatókör kapcsos zárójelek elhelyezése külön sorokra

  • Név: cpp_new_line_scope_braces_on_separate_lines
  • Értékek: true, false

Üres típusok esetén helyezze át a záró zárójeleket a nyitó zárójelek vonalára

  • Név: cpp_new_line_close_brace_same_line_empty_type
  • Értékek: true, false

Üres függvénytestek esetén helyezze a záró zárójeleket ugyanarra a sorra, mint a nyitó zárójelek

  • Név: cpp_new_line_close_brace_same_line_empty_function
  • Értékek: true, false

"Fogás" és hasonló kulcsszavak elhelyezése egy új sorban

  • Név: cpp_new_line_before_catch
  • Értékek: true, false

Az "else" elhelyezése egy új sorban

  • Név: cpp_new_line_before_else
  • Értékek: true, false

"While" elhelyezése egy do-while hurokban egy új sorban

  • Név: cpp_new_line_before_while_in_do_while
  • Értékek: true, false

Térköz beállításai

Térköz a függvénynevek és az argumentumlisták zárójeleinek megnyitása között

  • Név: cpp_space_before_function_open_parenthesis
  • Értékrend:
    • insert – Szóköz beszúrása
    • remove – Szóközök eltávolítása
    • ignore – Szóközök módosítása

Szóköz beszúrása argumentumlista zárójelei között

  • Névértékek cpp_space_within_parameter_list_parentheses : true, false

Szóköz beszúrása zárójelek között, ha az argumentumlista üres

  • Név: cpp_space_between_empty_parameter_list_parentheses
  • Értékek: true, false

Szóköz beszúrása kulcsszó és zárójel megnyitása vezérlőfolyamat-utasításokban

  • Név: cpp_space_after_keywords_in_control_flow_statements
  • Értékek: true, false

Szóköz beszúrása egy vezérlőutasítás zárójelei között

  • Név: cpp_space_within_control_flow_statement_parentheses
  • Értékek: true, false

Szóköz beszúrása a lambda argumentumlisták zárójelének megnyitása előtt

  • Név: cpp_space_before_lambda_open_parenthesis
  • Értékek: true, false

Térköz beszúrása egy C-stílusú öntött zárójelben

  • Név: cpp_space_within_cast_parentheses
  • Értékek: true, false

Térköz beszúrása a C stílusú öntött zárójel bezárása után

  • Név: cpp_space_after_cast_close_parenthesis
  • Értékek: true, false

Szóköz beszúrása zárójelben egy zárójeles kifejezésben

  • Név: cpp_space_within_expression_parentheses
  • Értékek: true, false

Szóköz beszúrása a blokkok kapcsos zárójelének megnyitása előtt

  • Név: cpp_space_before_block_open_brace
  • Értékek: true, false

Szóköz beszúrása üres zárójelek között

  • Név: cpp_space_between_empty_braces
  • Értékek: true, false

Szóköz beszúrása az egységes inicializálási és inicializálási listák zárójelének megnyitása előtt

  • Név: cpp_space_before_initializer_list_open_brace
  • Értékek: true, false

Szóköz beszúrása egységes inicializálási és inicializálási listák kapcsos zárójeleibe

  • Név: cpp_space_within_initializer_list_braces
  • Értékek: true, false

Egységes inicializálási és inicializálási listákban lévő szóközök megőrzése

  • Név: cpp_space_preserve_in_initializer_list
  • Értékek: true, false

Térköz beszúrása szögletes zárójelek megnyitása előtt

  • Név: cpp_space_before_open_square_bracket
  • Értékek: true, false

Térköz beszúrása szögletes zárójelben

  • Név: cpp_space_within_square_brackets
  • Értékek: true, false

Szóköz beszúrása üres szögletes zárójelek előtt

  • Név: cpp_space_before_empty_square_brackets
  • Értékek: true, false

Szóköz beszúrása üres szögletes zárójelek között

  • Név: cpp_space_between_empty_square_brackets
  • Értékek: true, false

Szögletes zárójelek csoportosítása többdimenziós tömbökhöz

  • Név: cpp_space_group_square_brackets
  • Értékek: true, false

Térköz beszúrása szögletes zárójelben lambdákhoz

  • Név: cpp_space_within_lambda_brackets
  • Értékek: true, false

SpaceBetweenEmptyLambdaBrackets

  • Név: cpp_space_between_empty_lambda_brackets
  • Értékek: true, false

Szóköz beszúrása vessző előtt

  • Név: cpp_space_before_comma
  • Értékek: true, false

Szóköz beszúrása vesszők után

  • Név: cpp_space_after_comma
  • Értékek: true, false

Szóközök eltávolítása a tagok operátorai előtt és után

  • Név: cpp_space_remove_around_member_operators
  • Értékek: true, false

Szóköz beszúrása kettőspont előtt az alaphoz típusdeklarációkban

  • Név: cpp_space_before_inheritance_colon
  • Értékek: true, false

Térköz beszúrása kettőspont előtt a konstruktorok számára

  • Név: cpp_space_before_constructor_colon
  • Értékek: true, false

Szóköz eltávolítása pontosvesszők előtt

  • Név: cpp_space_remove_before_semicolon
  • Értékek: true, false

Szóköz beszúrása pontosvesszők után

  • Név: cpp_space_after_semicolon
  • Értékek: true, false

Szóközök eltávolítása a nem szereplő operátorok és operandusaik között

  • Név: cpp_space_remove_around_unary_operator
  • Értékek: true, false

Bináris operátorok térköze

  • Név: cpp_space_around_binary_operator
  • Értékrend:
    • insert – Szóközök beszúrása bináris operátorok előtt és után.
    • remove - Távolítsa el a bináris operátorok körüli szóközöket.
    • ignore - Ne módosítsa a bináris operátorok körüli szóközöket.

Hozzárendelési operátorok térköze

  • Név: cpp_space_around_assignment_operator
  • Értékrend:
    • insert – Szóközök beszúrása a hozzárendelési operátorok köré.
    • remove – A hozzárendelési operátorok körüli szóközök eltávolítása.
    • ignore – Ne módosítsa a hozzárendelési operátorok körüli szóközöket.

Mutató/hivatkozás igazítása

  • Név: cpp_space_pointer_reference_alignment
  • Értékrend:
    • left - Balra igazítás.
    • center - Középre igazítás.
    • right - Jobbra igazítás.
    • ignore - Hagyja változatlanul.

Térköz feltételes operátorokhoz

  • Név: cpp_space_around_ternary_operator
  • Értékrend:
    • insert – Szóközök beszúrása feltételes operátorok köré.
    • remove – A feltételes operátorok körüli szóközök eltávolítása.
    • ignore – Ne módosítsa a szóközöket a feltételes operátorok körül.

Körbefuttatási beállítások

Körbefuttatási lehetőségek blokkokhoz

  • Név: cpp_wrap_preserve_blocks
  • Értékrend:
    • one_liners - Ne csomagolja be az egysoros kódblokkokat.
    • all_one_line_scopes - Ne törje körbe a kódblokkokat, ha a nyitó és záró zárójelek a következő sorban vannak.
    • never – Mindig alkalmazza az Új vonalak beállításokat a blokkokra.

Lásd még