Bagikan melalui


Konvensi pemformatan C++ EditorConfig

Formatter Visual Studio C++ memiliki serangkaian pengaturan yang dapat dikonfigurasi yang kaya yang dapat diterapkan secara global. Untuk mengatur pengaturan pemformatan C++ untuk ruang kerja tertentu, gunakan clangformat atau EditorConfig. Visual Studio dan Visual Studio Code memiliki dukungan EditorConfig bawaan untuk setiap pengaturan pemformatan Visual Studio C++ global, dengan pengaturan EditorConfig lebih diutamakan. Ini berarti Anda dapat menambahkan file EditorConfig ke ruang kerja Anda untuk mengonfigurasi pemformatan C++ pada tingkat yang lebih terperinci dan menerapkan gaya kode yang konsisten untuk semua orang yang berkontribusi pada proyek.

Konvensi pemformatan C++

Pengaturan EditorConfig pemformatan C++ diawali dengan cpp_. Berikut adalah contoh tampilan file EditorConfig Anda:

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

Sisa dokumen ini mencantumkan semua pengaturan pemformatan EditorConfig C++ yang didukung oleh Visual Studio dan Visual Studio Code.

Pengaturan indentasi

Kurung kurawal inden

  • Nama: cpp_indent_braces
  • Nilai: true, false

Inden setiap baris relatif terhadap

  • Nama: cpp_indent_multi_line_relative_to
  • Nilai:
    • outermost_parenthesis - Ketika baris baru dititik, garis tersebut diindentasi relatif ke tanda kurung terbuka terluar.
    • innermost_parenthesis - Ketika baris baru di ketikkan, garis tersebut diindentasi relatif terhadap tanda kurung terbuka terdarah.
    • statement_begin - Ketika baris baru ditik, baris tersebut diindentasi relatif ke awal pernyataan saat ini.

Dalam tanda kurung, ratakan baris baru saat saya mengetiknya

  • Nama: cpp_indent_within_parentheses
  • Nilai:
    • align_to_parenthesis - Sejajarkan konten dengan membuka tanda kurung.
    • indent - Inden baris baru.

Dalam kode yang ada, jangan gunakan pengaturan untuk perataan baris baru dalam tanda kurung

  • Nama: cpp_indent_preserve_within_parentheses
  • Nilai: true, false

Isi kasus inden

  • Nama: cpp_indent_case_contents
  • Nilai: true, false

Label kasus inden

  • Nama: cpp_indent_case_labels
  • Nilai: true, false

Kurung kurawal inden mengikuti pernyataan kasus

  • Nama: cpp_indent_case_contents_when_block
  • Nilai: true, false

Kurung kurawal inden lambda yang digunakan sebagai parameter

  • Nama: cpp_indent_lambda_braces_when_parameter
  • Nilai: true, false

Posisi label goto

  • Nama: cpp_indent_goto_labels
  • Nilai:
    • one_left - Satu inden ke kiri
    • leftmost_column - Pindah ke kolom paling kiri
    • none - Biarkan inden

Posisi arahan prapemrosan

  • Nama: cpp_indent_preprocessor
  • Nilai:
    • one_left - Satu inden ke kiri
    • leftmost_column - Pindah ke kolom paling kiri
    • none - Biarkan inden

Penentu akses inden

  • Nama: cpp_indent_access_specifiers
  • Nilai: true, false

Isi namespace inden

  • Nama: cpp_indent_namespace_contents
  • Nilai: true, false

Mempertahankan indentasi komentar

  • Nama: cpp_indent_preserve_comments
  • Nilai: true, false

Pengaturan baris baru

Posisi kurung kurawal terbuka untuk namespace

  • Nama: cpp_new_line_before_open_brace_namespace
  • Nilai:
    • new_line - Pindah ke baris baru
    • same_line - Tetap pada baris yang sama, tetapi tambahkan spasi sebelumnya
    • ignore - Jangan reposisi secara otomatis

Posisi kurung kurawal terbuka untuk jenis

  • Nama: cpp_new_line_before_open_brace_type
  • Nilai:
    • new_line - Pindah ke baris baru
    • same_line - Tetap pada baris yang sama, tetapi tambahkan spasi sebelumnya
    • ignore - Jangan reposisi secara otomatis

Posisi kurung kurawal terbuka untuk fungsi

  • Nama: cpp_new_line_before_open_brace_function
  • Nilai:
    • new_line - Pindah ke baris baru
    • same_line - Tetap pada baris yang sama, tetapi tambahkan spasi sebelumnya
    • ignore - Jangan reposisi secara otomatis

Posisi kurung kurawal terbuka untuk blok kontrol

  • Nama: cpp_new_line_before_open_brace_block
  • Nilai:
    • new_line - Pindah ke baris baru
    • same_line - Tetap pada baris yang sama, tetapi tambahkan spasi sebelumnya
    • ignore - Jangan reposisi secara otomatis

Posisi kurung kurawal terbuka untuk lambda

  • Nama: cpp_new_line_before_open_brace_lambda
  • Nilai:
    • new_line - Pindah ke baris baru
    • same_line - Tetap pada baris yang sama, tetapi tambahkan spasi sebelumnya
    • ignore - Jangan reposisi secara otomatis

Tempatkan kurung kurawal cakupan pada baris terpisah

  • Nama: cpp_new_line_scope_braces_on_separate_lines
  • Nilai: true, false

Untuk jenis kosong, pindahkan kurung kurawal penutup ke baris yang sama dengan kurung kurawal pembuka

  • Nama: cpp_new_line_close_brace_same_line_empty_type
  • Nilai: true, false

Untuk badan fungsi kosong, pindahkan kurung kurawal penutup ke baris yang sama dengan kurung kurawal pembuka

  • Nama: cpp_new_line_close_brace_same_line_empty_function
  • Nilai: true, false

Tempatkan 'tangkapan' dan kata kunci serupa pada baris baru

  • Nama: cpp_new_line_before_catch
  • Nilai: true, false

Tempatkan 'else' pada baris baru

  • Nama: cpp_new_line_before_else
  • Nilai: true, false

Tempatkan 'sementara' dalam perulangan do-while pada baris baru

  • Nama: cpp_new_line_before_while_in_do_while
  • Nilai: true, false

Pengaturan penspasian

Penspasian antara nama fungsi dan membuka tanda kurung daftar argumen

  • Nama: cpp_space_before_function_open_parenthesis
  • Nilai:
    • insert - Sisipkan spasi
    • remove - Hapus spasi
    • ignore - Jangan ubah spasi

Sisipkan spasi dalam tanda kurung daftar argumen

  • Nilai Nama cpp_space_within_parameter_list_parentheses : true, false

Sisipkan spasi antar tanda kurung saat daftar argumen kosong

  • Nama: cpp_space_between_empty_parameter_list_parentheses
  • Nilai: true, false

Menyisipkan spasi antara kata kunci dan membuka tanda kurung dalam pernyataan alur kontrol

  • Nama: cpp_space_after_keywords_in_control_flow_statements
  • Nilai: true, false

Menyisipkan ruang dalam tanda kurung pernyataan kontrol

  • Nama: cpp_space_within_control_flow_statement_parentheses
  • Nilai: true, false

Sisipkan spasi sebelum membuka tanda kurung daftar argumen lambda

  • Nama: cpp_space_before_lambda_open_parenthesis
  • Nilai: true, false

Menyisipkan ruang dalam tanda kurung dari cast gaya C

  • Nama: cpp_space_within_cast_parentheses
  • Nilai: true, false

Sisipkan spasi setelah menutup tanda kurung dari cast gaya C

  • Nama: cpp_space_after_cast_close_parenthesis
  • Nilai: true, false

Sisipkan ruang dalam tanda kurung ekspresi yang dikurung

  • Nama: cpp_space_within_expression_parentheses
  • Nilai: true, false

Sisipkan spasi sebelum membuka kurung kurawal blok

  • Nama: cpp_space_before_block_open_brace
  • Nilai: true, false

Sisipkan spasi di antara kurung kurawal kosong

  • Nama: cpp_space_between_empty_braces
  • Nilai: true, false

Sisipkan spasi sebelum membuka kurung kurawal dari inisialisasi seragam dan daftar inisialisasi

  • Nama: cpp_space_before_initializer_list_open_brace
  • Nilai: true, false

Sisipkan spasi dalam kurung kurawal dari inisialisasi seragam dan daftar inisialisasi

  • Nama: cpp_space_within_initializer_list_braces
  • Nilai: true, false

Mempertahankan spasi di dalam inisialisasi seragam dan daftar penginisialisasi

  • Nama: cpp_space_preserve_in_initializer_list
  • Nilai: true, false

Sisipkan spasi sebelum membuka tanda kurung siku

  • Nama: cpp_space_before_open_square_bracket
  • Nilai: true, false

Sisipkan ruang dalam tanda kurung siku

  • Nama: cpp_space_within_square_brackets
  • Nilai: true, false

Sisipkan spasi sebelum tanda kurung siku kosong

  • Nama: cpp_space_before_empty_square_brackets
  • Nilai: true, false

Sisipkan spasi di antara tanda kurung siku kosong

  • Nama: cpp_space_between_empty_square_brackets
  • Nilai: true, false

Kurung siku grup untuk array multi-dimensi bersama-sama

  • Nama: cpp_space_group_square_brackets
  • Nilai: true, false

Sisipkan ruang dalam tanda kurung siku untuk lambda

  • Nama: cpp_space_within_lambda_brackets
  • Nilai: true, false

SpaceBetweenEmptyLambdaBrackets

  • Nama: cpp_space_between_empty_lambda_brackets
  • Nilai: true, false

Sisipkan spasi sebelum koma

  • Nama: cpp_space_before_comma
  • Nilai: true, false

Sisipkan spasi setelah koma

  • Nama: cpp_space_after_comma
  • Nilai: true, false

Menghapus spasi sebelum dan sesudah operator anggota

  • Nama: cpp_space_remove_around_member_operators
  • Nilai: true, false

Sisipkan spasi sebelum titik dua untuk dasar dalam deklarasi tipe

  • Nama: cpp_space_before_inheritance_colon
  • Nilai: true, false

Sisipkan spasi sebelum titik dua untuk konstruktor

  • Nama: cpp_space_before_constructor_colon
  • Nilai: true, false

Hapus spasi sebelum titik koma

  • Nama: cpp_space_remove_before_semicolon
  • Nilai: true, false

Sisipkan spasi setelah titik koma

  • Nama: cpp_space_after_semicolon
  • Nilai: true, false

Menghapus spasi antara operator unary dan operand-nya

  • Nama: cpp_space_remove_around_unary_operator
  • Nilai: true, false

Penspasian untuk operator biner

  • Nama: cpp_space_around_binary_operator
  • Nilai:
    • insert - Masukkan spasi sebelum dan sesudah operator biner.
    • remove - Hapus spasi di sekitar operator biner.
    • ignore - Jangan mengubah ruang di sekitar operator biner.

Penspasian untuk operator penugasan

  • Nama: cpp_space_around_assignment_operator
  • Nilai:
    • insert - Sisipkan spasi di sekitar operator penugasan.
    • remove - Hapus spasi di sekitar operator penugasan.
    • ignore - Jangan mengubah ruang di sekitar operator penugasan.

Perataan penunjuk/referensi

  • Nama: cpp_space_pointer_reference_alignment
  • Nilai:
    • left - Rata kiri.
    • center - Sejajarkan tengah.
    • right - Sejajarkan ke kanan.
    • ignore - Biarkan tidak berubah.

Penspasian untuk operator bersyariah

  • Nama: cpp_space_around_ternary_operator
  • Nilai:
    • insert - Masukkan spasi di sekitar operator bersyarkat.
    • remove - Hapus spasi di sekitar operator bersyarkat.
    • ignore - Jangan mengubah ruang di sekitar operator bersyarkat.

Opsi pemberian batas

Opsi pembungkusan untuk blok

  • Nama: cpp_wrap_preserve_blocks
  • Nilai:
    • one_liners - Jangan membungkus blok kode satu baris.
    • all_one_line_scopes - Jangan membungkus blok kode di mana kurung kurawal buka dan tutup berada di baris berikutnya.
    • never - Selalu terapkan pengaturan Baris Baru untuk blok.

Baca juga