Udostępnij za pośrednictwem


Konwencje formatowania języka C++ w narzędziu EditorConfig

Możesz dodać pliki EditorConfig do projektu, aby skonfigurować formatowanie języka C++, aby wymusić spójny styl kodu dla wszystkich współtworzyjących projekt. Zarówno programy Visual Studio, jak i Visual Studio Code mają wbudowaną obsługę polecenia EditorConfig dla każdego z globalnych ustawień formatowania programu Visual Studio C++. Ustawienia EditorConfig są przechowywane w .editorconfig pliku. Gdy ten plik jest obecny w projekcie, ma pierwszeństwo przed ustawieniami formatowania programu Visual Studio.

Ten dokument zawiera listę wszystkich ustawień formatowania EditorConfig C++ obsługiwanych przez programy Visual Studio i Visual Studio Code.

Aby uzyskać więcej informacji na temat:

Konwencje formatowania języka C++

Ustawienia edytora formatowania języka C++ są poprzedzone prefiksem cpp_. Oto przykładowy .editorconfig wygląd pliku:

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

W pozostałej części tego dokumentu wymieniono wszystkie ustawienia formatowania EditorConfig C++ obsługiwane przez programy Visual Studio i VS Code.

Ustawienia wcięcia

Wcięcie nawiasów klamrowych

  • Nazwa: cpp_indent_braces
  • Wartości: true, false

Wcięcie każdego wiersza stosunkowo do

  • Nazwa: cpp_indent_multi_line_relative_to
  • Wartości:
    • outermost_parenthesis - Gdy nowy wiersz jest wpisany, jest wcięcie stosunkowo do najbardziej zewnętrznego nawiasu otwartego.
    • innermost_parenthesis - Gdy nowy wiersz jest wpisany, jest wcięcie stosunkowo do najbardziej wewnętrznego nawiasu otwartego.
    • statement_begin - Gdy nowy wiersz jest wpisany, jest wcięcie stosunkowo na początku bieżącej instrukcji.

W nawiasach wyrównaj nowe wiersze, gdy wpiszę je

  • Nazwa: cpp_indent_within_parentheses
  • Wartości:
    • align_to_parenthesis - Wyrównaj zawartość do nawiasu otwierającego.
    • indent — Wcięcie nowych wierszy.

W istniejącym kodzie nie używaj ustawienia do wyrównania nowych wierszy w nawiasach

  • Nazwa: cpp_indent_preserve_within_parentheses
  • Wartości: true, false

Wcięcie zawartości wielkości liter

  • Nazwa: cpp_indent_case_contents
  • Wartości: true, false

Wcięcie etykiet wielkości liter

  • Nazwa: cpp_indent_case_labels
  • Wartości: true, false

Wcięcie nawiasów klamrowych po instrukcji case

  • Nazwa: cpp_indent_case_contents_when_block
  • Wartości: true, false

Wcięcie nawiasów klamrowych lambda używanych jako parametry

  • Nazwa: cpp_indent_lambda_braces_when_parameter
  • Wartości: true, false

Położenie etykiet goto

  • Nazwa: cpp_indent_goto_labels
  • Wartości:
    • one_left - Jedno wcięcie z lewej
    • leftmost_column — Przechodzenie do kolumny z lewej strony
    • none — Pozostaw wcięcie

Położenie dyrektyw preprocesora

  • Nazwa: cpp_indent_preprocessor
  • Wartości:
    • one_left - Jedno wcięcie z lewej
    • leftmost_column — Przechodzenie do kolumny z lewej strony
    • none — Pozostaw wcięcie

Specyfikatory dostępu wcięcia

  • Nazwa: cpp_indent_access_specifiers
  • Wartości: true, false

Wcięcie zawartości przestrzeni nazw

  • Nazwa: cpp_indent_namespace_contents
  • Wartości: true, false

Zachowywanie wcięcia komentarzy

  • Nazwa: cpp_indent_preserve_comments
  • Wartości: true, false

Ustawienia nowego wiersza

Położenie otwartych nawiasów klamrowych dla przestrzeni nazw

  • Nazwa: cpp_new_line_before_open_brace_namespace
  • Wartości:
    • new_line - Przejście do nowego wiersza
    • same_line - Zachowaj na tym samym wierszu, ale dodaj spację przed
    • ignore - Nie zmieniaj położenia automatycznie

Położenie otwartych nawiasów klamrowych dla typów

  • Nazwa: cpp_new_line_before_open_brace_type
  • Wartości:
    • new_line - Przejście do nowego wiersza
    • same_line - Zachowaj na tym samym wierszu, ale dodaj spację przed
    • ignore - Nie zmieniaj położenia automatycznie

Położenie otwartych nawiasów klamrowych dla funkcji

  • Nazwa: cpp_new_line_before_open_brace_function
  • Wartości:
    • new_line - Przejście do nowego wiersza
    • same_line - Zachowaj na tym samym wierszu, ale dodaj spację przed
    • ignore - Nie zmieniaj położenia automatycznie

Położenie otwartych nawiasów klamrowych dla bloków sterujących

  • Nazwa: cpp_new_line_before_open_brace_block
  • Wartości:
    • new_line - Przejście do nowego wiersza
    • same_line - Zachowaj na tym samym wierszu, ale dodaj spację przed
    • ignore - Nie zmieniaj położenia automatycznie

Położenie otwartych nawiasów klamrowych dla lambd

  • Nazwa: cpp_new_line_before_open_brace_lambda
  • Wartości:
    • new_line - Przejście do nowego wiersza
    • same_line - Zachowaj na tym samym wierszu, ale dodaj spację przed
    • ignore - Nie zmieniaj położenia automatycznie

Umieść nawiasy klamrowe zakresu w oddzielnych wierszach

  • Nazwa: cpp_new_line_scope_braces_on_separate_lines
  • Wartości: true, false

W przypadku pustych typów przenieś nawiasy klamrowe zamykające do tego samego wiersza co otwierające nawiasy klamrowe

  • Nazwa: cpp_new_line_close_brace_same_line_empty_type
  • Wartości: true, false

W przypadku pustych treści funkcji przenieś zamykające nawiasy klamrowe do tego samego wiersza co otwierające nawiasy klamrowe

  • Nazwa: cpp_new_line_close_brace_same_line_empty_function
  • Wartości: true, false

Umieść słowa kluczowe "catch" i podobne w nowym wierszu

  • Nazwa: cpp_new_line_before_catch
  • Wartości: true, false

Umieść "else" w nowym wierszu

  • Nazwa: cpp_new_line_before_else
  • Wartości: true, false

Umieść "while" w pętli do-while w nowym wierszu

  • Nazwa: cpp_new_line_before_while_in_do_while
  • Wartości: true, false

Ustawienia odstępów

Odstępy między nazwami funkcji a otwarciem nawiasów list argumentów

  • Nazwa: cpp_space_before_function_open_parenthesis
  • Wartości:
    • insert - Wstaw spację
    • remove - Usuwanie spacji
    • ignore - Nie zmieniaj spacji

Wstaw spację w nawiasach listy argumentów

  • Wartości nazw cpp_space_within_parameter_list_parentheses : true, false

Wstaw spację między nawiasami, gdy lista argumentów jest pusta

  • Nazwa: cpp_space_between_empty_parameter_list_parentheses
  • Wartości: true, false

Wstawianie odstępu między słowem kluczowym a otwarciem nawiasu w instrukcjach przepływu sterowania

  • Nazwa: cpp_space_after_keywords_in_control_flow_statements
  • Wartości: true, false

Wstaw spację w nawiasach instrukcji kontrolki

  • Nazwa: cpp_space_within_control_flow_statement_parentheses
  • Wartości: true, false

Wstaw spację przed otwarciem nawiasu list argumentów lambda

  • Nazwa: cpp_space_before_lambda_open_parenthesis
  • Wartości: true, false

Wstaw spację w nawiasach rzutowania w stylu C

  • Nazwa: cpp_space_within_cast_parentheses
  • Wartości: true, false

Wstaw spację po zamknięciu nawiasu rzutowania w stylu C

  • Nazwa: cpp_space_after_cast_close_parenthesis
  • Wartości: true, false

Wstaw spację w nawiasach wyrażenia nawiasu

  • Nazwa: cpp_space_within_expression_parentheses
  • Wartości: true, false

Wstaw spację przed otwarciem nawiasu klamrowego bloków

  • Nazwa: cpp_space_before_block_open_brace
  • Wartości: true, false

Wstaw spację między pustymi nawiasami klamrowymi

  • Nazwa: cpp_space_between_empty_braces
  • Wartości: true, false

Wstaw spację przed otwarciem nawiasu klamrowego list inicjowania i inicjatora

  • Nazwa: cpp_space_before_initializer_list_open_brace
  • Wartości: true, false

Wstaw spację w nawiasach klamrowych list inicjowania i inicjatora

  • Nazwa: cpp_space_within_initializer_list_braces
  • Wartości: true, false

Zachowywanie spacji wewnątrz jednolitych list inicjowania i inicjatora

  • Nazwa: cpp_space_preserve_in_initializer_list
  • Wartości: true, false

Wstaw spację przed otwarciem nawiasów kwadratowych

  • Nazwa: cpp_space_before_open_square_bracket
  • Wartości: true, false

Wstaw spację w nawiasie kwadratowym

  • Nazwa: cpp_space_within_square_brackets
  • Wartości: true, false

Wstaw spację przed pustymi nawiasami kwadratowymi

  • Nazwa: cpp_space_before_empty_square_brackets
  • Wartości: true, false

Wstaw spację między pustymi nawiasami kwadratowymi

  • Nazwa: cpp_space_between_empty_square_brackets
  • Wartości: true, false

Grupuj nawiasy kwadratowe dla tablic wielowymiarowych razem

  • Nazwa: cpp_space_group_square_brackets
  • Wartości: true, false

Wstaw spację w nawiasach kwadratowych dla lambd

  • Nazwa: cpp_space_within_lambda_brackets
  • Wartości: true, false

SpaceBetweenEmptyLambdaBrackets

  • Nazwa: cpp_space_between_empty_lambda_brackets
  • Wartości: true, false

Wstaw spację przed przecinkami

  • Nazwa: cpp_space_before_comma
  • Wartości: true, false

Wstaw spację po przecinkach

  • Nazwa: cpp_space_after_comma
  • Wartości: true, false

Usuwanie spacji przed operatorami składowymi i po niej

  • Nazwa: cpp_space_remove_around_member_operators
  • Wartości: true, false

Wstaw spację przed dwukropkiem dla bazy w deklaracjach typów

  • Nazwa: cpp_space_before_inheritance_colon
  • Wartości: true, false

Wstaw spację przed dwukropkiem dla konstruktorów

  • Nazwa: cpp_space_before_constructor_colon
  • Wartości: true, false

Usuń spację przed średnikami

  • Nazwa: cpp_space_remove_before_semicolon
  • Wartości: true, false

Wstaw spację po średnikami

  • Nazwa: cpp_space_after_semicolon
  • Wartości: true, false

Usuwanie spacji między operatorami jednoargumentowymi i ich operandami

  • Nazwa: cpp_space_remove_around_unary_operator
  • Wartości: true, false

Odstępy dla operatorów binarnych

  • Nazwa: cpp_space_around_binary_operator
  • Wartości:
    • insert - Wstaw spacje przed i po operatorach binarnych.
    • remove - Usuń spacje wokół operatorów binarnych.
    • ignore — Nie zmieniaj spacji wokół operatorów binarnych.

Odstępy dla operatorów przypisania

  • Nazwa: cpp_space_around_assignment_operator
  • Wartości:
    • insert - Wstaw spacje wokół operatorów przypisania.
    • remove - Usuń spacje wokół operatorów przypisania.
    • ignore — Nie zmieniaj spacji wokół operatorów przypisania.

Wyrównanie wskaźnika/odwołania

  • Nazwa: cpp_space_pointer_reference_alignment
  • Wartości:
    • left - Wyrównaj do lewej.
    • center - Wyrównaj do środka.
    • right - Wyrównaj do prawej.
    • ignore - Pozostaw niezmienione.

Odstępy dla operatorów warunkowych

  • Nazwa: cpp_space_around_ternary_operator
  • Wartości:
    • insert - Wstaw spacje wokół operatorów warunkowych.
    • remove - Usuń spacje wokół operatorów warunkowych.
    • ignore — Nie zmieniaj spacji wokół operatorów warunkowych.

Opcje zawijania

Opcje zawijania bloków

  • Nazwa: cpp_wrap_preserve_blocks
  • Wartości:
    • one_liners — Nie zawijaj bloków kodu jednowierszowego.
    • all_one_line_scopes — Nie zawijaj bloków kodu, w których nawiasy klamrowe otwierające i zamykające znajdują się w następnym wierszu.
    • never — Zawsze stosuj ustawienia Nowe linie dla bloków.

Zobacz też