Mengonfigurasi C/C++ Sertakan Pembersihan di Visual Studio

Mulai dari 17.8 Pratinjau 1, Visual Studio dapat membersihkan file yang Anda #include untuk meningkatkan kualitas kode C dan C++ Anda dengan cara-cara berikut:

  • Menawarkan penambahan file header untuk kode yang hanya dapat dikompilasi karena file header yang diperlukan diikutkan secara tidak langsung oleh file header lain.
  • Menawarkan penghapusan file header yang tidak digunakan--mempercepat waktu build.

Artikel ini menjelaskan cara mengonfigurasi Include Cleanup di Visual Studio. Untuk informasi selengkapnya tentang Include Cleanup, lihat Gambaran umum Include Cleanup C/C++.

Aktifkan opsi Sertakan Pembersihan

Fitur Include Cleanup dinonaktifkan secara default.

Aktifkan dengan memilihOpsi>Alat>Editor> TeksC/C++>Code Cleanup dan pilih Aktifkan pembersihan #include.

Kemudian gunakan menu dropdown untuk mengonfigurasi tingkat keparahan pemberitahuan tentang peluang untuk menambahkan header tidak langsung atau menghapus header yang tidak digunakan:

Kotak dialog Opsi Alat terbuka di Editor Teks > C/C++ > Pembersihan Kode.

Kotak centang **Aktifkan pembersihan #include** dipilih. Menu tarik-turun untuk **Tingkat saran Hapus include yang tidak digunakan** dan **Tingkat saran Tambahkan include yang hilang** ditampilkan. Isi dropdown ditampilkan, yaitu: **Pemfaktoran ulang saja**, **Saran**, **Peringatan**, dan **Kesalahan**. Daftar tarik-turun **Tingkat saran untuk menghapus include yang tidak digunakan** menawarkan opsi yang sama, tetapi juga menambahkan **Diredupkan**.

Opsi ini mengatur jenis notifikasi tentang header yang tidak digunakan yang diberikan oleh fitur Include Cleanup:

Diredupkan

Include Cleanup menampilkan file header yang tidak digunakan dengan meredupkan baris file header yang tidak digunakan pada editor kode, serta menampilkan pesan di jendela Daftar Kesalahan. Di editor kode, arahkan kursor Anda ke ikon #include yang tampak redup untuk memunculkan menu tindakan cepat dan pilih Tampilkan kemungkinan perbaikan, atau klik menu tarik-turun ikon lampu, untuk melihat tindakan yang berkaitan dengan file yang tidak digunakan.

Cuplikan layar baris #include < iostream > yang diredupkan.

Baris untuk #include < iostream > diredupkan karena baris kode yang menggunakan iostream dikomentari. Baris kode tersebut adalah // std::cout << "charSize = " << charSize; Menu tindakan cepat juga terlihat untuk baris ini. Tertulis bahwa #include < iostream > tidak digunakan di file ini, dan menyertakan tautan ke “Tampilkan kemungkinan perbaikan”.

Hanya pemfaktoran ulang: Include Cleanup menawarkan tindakan yang dapat Anda lakukan melalui menu tindakan cepat di editor kode saat Anda mengarahkan penunjuk mouse ke #include, atau meletakkan kursor pada baris #include lalu menekan Ctrl+.

Cuplikan layar tindakan cepat untuk menghapus header yang tidak digunakan.

Saat mengarahkan kursor ke atas `#include `, ikon lampu muncul dengan teks bahwa `#include ` tidak digunakan di file ini.

Saran, Peringatan, Kesalahan: Sertakan Pembersihan dapat menampilkan Sertakan pesan Pembersihan sebagai saran, peringatan, atau kesalahan di jendela Daftar Kesalahan . Anda menentukan yang mana. Dalam cuplikan layar Daftar Kesalahan berikut, Include Cleanup dikonfigurasi untuk menampilkan berkas header yang tidak digunakan sebagai peringatan. Pastikan Build + Intellisense dipilih pada filter tarik-turun agar Anda dapat melihat output Include Cleanup:

Cuplikan layar jendela Daftar Kesalahan.

Filter dropdown diatur ke **Build + IntelliSense**. Peringatan terlihat: VCIC002 - '#include ' tidak digunakan dalam file ini."

Aktifkan dengan memilihOpsi>Alat>Semua Pengaturan>Bahasa>C/C++>Pembersihan Kode>Sertakan pembersihan. Gunakan menu tarik-turun untuk mengonfigurasi bagaimana Anda ingin menerima notifikasi tentang peluang untuk menyoroti pernyataan #include yang tidak digunakan, pernyataan #include yang dapat dioptimalkan (dihapus setelah include transitif yang diperlukan ditambahkan secara langsung), dan pernyataan #include yang hilang tetapi disertakan secara transitif.

Cuplikan layar dialog opsi Alat yang dibuka di Pembersihan > Kode > Semua Bahasa Pengaturan > C/C++ > Sertakan pembersihan.

Cuplikan layar memperlihatkan dropdown untuk memilih cara menyoroti header yang tidak digunakan di editor kode, yang dapat dioptimalkan, dan yang disertakan secara transitif.

Arti dari opsi:

Diredupkan

Include Cleanup menampilkan file header yang tidak digunakan dengan meredupkan baris file header yang tidak digunakan di editor kode, serta menampilkannya sebagai pesan di jendela Daftar Kesalahan. Di editor kode, arahkan kursor ke #include yang diredupkan untuk menampilkan menu tindakan cepat dan pilih Tampilkan kemungkinan perbaikan, atau klik menu tarik-turun ikon lampu, untuk melihat tindakan yang terkait dengan file yang tidak terpakai.

Cuplikan layar baris #include < iostream > yang redup.

Baris untuk `#include ` diredupkan karena baris kode yang menggunakan `iostream` dikomentari. Baris kode tersebut adalah `// std::cout << "charSize = " << charSize;`. Menu aksi cepat juga terlihat pada baris ini. Ia mengatakan '#include ' tidak digunakan dalam file ini, dan memiliki tautan ke **Tampilkan perbaikan potensial**.

Tidak Ada: Jangan ambil tindakan. Include Cleanup tetap menyediakan tindakan yang dapat Anda lakukan di editor kode melalui menu tindakan cepat saat Anda mengarahkan penunjuk mouse ke #include, atau meletakkan kursor pada baris #include lalu menekan Ctrl+titik:

Saran, Peringatan, Kesalahan: Sertakan Pembersihan dapat menampilkan Sertakan pesan Pembersihan sebagai saran, peringatan, atau kesalahan di jendela Daftar Kesalahan. Anda menentukan yang mana. Dalam cuplikan layar Daftar Kesalahan berikut, Include Cleanup diatur untuk menampilkan berkas header yang tidak digunakan sebagai peringatan. Pastikan bahwa Build + Intellisense dipilih di filter tarik-turun sehingga Anda dapat melihat output Include Cleanup:

Cuplikan layar jendela Daftar Kesalahan.

Filter dropdown diatur ke **Build + IntelliSense**. Peringatan terlihat: VCIC002 - '#include ' tidak digunakan dalam file ini."

Opsi konfigurasi lainnya

Pengaturan Pembersihan Penyertaan lainnya tersedia di bawah Alat>Opsi>Editor Teks>C/C++>Pembersihan Kode:

  • Urutkan include: Menandai arahan #include yang perlu diurutkan. Pilih tingkat pemberitahuan tingkat keparahan pesan yang muncul di jendela Daftar Kesalahan : Tidak ada (fitur nonaktif), Saran, Peringatan, atau Kesalahan.
  • Gaya: Mengontrol cara #include pernyataan diurutkan. Pilih Abaikan untuk mengurutkan tanpa mempertimbangkan gaya kurung, Tanda kutip untuk mengurutkan direktif include bertanda kutip di atas direktif include dengan kurung sudut, atau Kurung sudut untuk mengurutkan direktif include dengan kurung sudut di atas direktif include bertanda kutip.
  • Peka huruf besar/kecil: Saat dipilih, pengurutan membandingkan nama file dengan membedakan huruf besar/kecil. Jika dikosongkan, pengurutan tidak membedakan huruf besar/kecil.

Cuplikan layar Opsi Visual Studio dengan Pemfilteran tingkat lanjut, Urutkan setelah pengeditan, Urutkan Termasuk, Prioritas pengurutan, Gaya, dan Pengaturan peka huruf besar/kecil disorot.

Lainnya Sertakan pengaturan Pembersihan tersedia di bawahOpsi>Alat>Semua Pengaturan>Bahasa>C/C++>Pembersihan Kode>Sertakan pembersihan:

  • Pemfilteran Tingkat Lanjut: Saat dipilih, jika Anda memanggil fungsi anggota pada objek kelas turunan tetapi fungsi didefinisikan di kelas dasar, alat tidak menyarankan untuk menambahkan header kelas dasar. Aktifkan opsi ini untuk mengurangi saran berisik saat simbol yang Anda gunakan berasal dari kelas dasar daripada jenis yang Anda referensikan secara langsung.
  • Urutkan direktif #include setelah melakukan pengeditan untuk pembersihan include: Saat dipilih, fitur bawaan untuk mengurutkan include dijalankan setelah tindakan Pembersihan Include.
  • Format direktif #include setelah melakukan pengeditan apa pun untuk Pembersihan Include: Saat dipilih, perintah pemformatan dijalankan setelah tindakan Pembersihan Include apa pun.

Cuplikan layar Visual Studio Sertakan opsi pembersihan dengan pengaturan Pemfilteran Tingkat Lanjut, Urutkan, dan Format disorot.

Mengonfigurasi Sertakan Pembersihan dengan .editorconfig

Fitur Pembersihan Include memiliki lebih banyak opsi, seperti mengecualikan include tertentu dari saran pembersihan dan menandai bahwa beberapa file header diperlukan agar alat tidak menandainya sebagai tidak digunakan. Tentukan opsi ini dalam .editorconfig file. Tambahkan file ini ke proyek Anda untuk menerapkan gaya pengodean yang konsisten untuk semua orang yang bekerja di basis kode. Untuk informasi selengkapnya tentang menambahkan .editorconfig file ke proyek Anda, lihat Membuat pengaturan editor kustom portabel dengan EditorConfig.

Pengaturan .editorconfig yang dapat digunakan dengan Include Cleanup adalah:

Pengaturan Nilai Contoh
cpp_include_cleanup_add_missing_error_tag_type

Mengatur tingkat kesalahan untuk menambahkan pesan sertakan transitif.
none
suggestion
warning
error
cpp_include_cleanup_add_missing_error_tag_type = suggestion
cpp_include_cleanup_alternate_files

Sembunyikan pesan untuk penyertaan tidak langsung. Misalnya, jika Anda #include <windows.h> dan hanya menggunakan konten dari header winerror.h yang disertakan secara tidak langsung atau minwindef.h, alat tidak menyarankan untuk menambahkannya.
file1:file2[:file3...][,file4:file5...] cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h
Atau
cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h,umbrella.h:internal.h
cpp_include_cleanup_excluded_files

Mengecualikan file-file yang ditentukan dari pesan Include Cleanup. Anda tidak akan mendapatkan saran yang terkait dengan header sama sekali, baik tentang menambahkannya atau tentang ketidakgunannya.
filename cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h
cpp_include_cleanup_remove_unused_error_tag_type

Mengatur tingkat kesalahan untuk menghapus pesan sertakan yang tidak digunakan.
none
suggestion
warning
error
dimmed
cpp_include_cleanup_remove_unused_error_tag_type = dimmed
cpp_include_cleanup_replacement_files

Mengganti file1 dengan file2 selama pemrosesan Include Cleanup. Misalnya, Anda mungkin lebih suka menggunakan cstdio lebih dari stdio.h. Jika Anda memiliki file yang berisi #include <cstdio> dan #include <stdio.h>, dan Anda hanya menggunakan konten dari stdio.h, dengan pengaturan ini Include Cleanup akan memberi tahu Anda untuk menghapus stdio.h karena selama pemrosesan, penggunaan cstdio telah digantikan dengan stdio.h. Jika Anda tidak menggunakan isi dari salah satunya, Include Cleanup akan memberi tahu Anda untuk menghapus keduanya.
file1:file2 cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint
cpp_include_cleanup_required_files

Tentukan bahwa penggunaan file1 memerlukan file2. Misalnya, tentukan bahwa jika Anda menggunakan atlwin.h, maka altbase.h juga harus disertakan.
file1:file2 cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h
cpp_sort_includes_error_tag_type

Mengatur tingkat kesalahan untuk pesan sort-includes. none menonaktifkan fitur. suggestion menampilkan garis bergelombang ... dan menambahkan pesan ke daftar kesalahan. warning menampilkan garis bergelombang hijau dan menambahkan peringatan. error menampilkan garis bergelombang merah dan menandai kesalahan.
none
suggestion
warning
error
cpp_sort_includes_error_tag_type = suggestion
cpp_sort_includes_priority_case_sensitive

Saat true, perbandingan pengurutan menyertakan nama file secara peka huruf besar/kecil. Ketika false, pengurutan tidak membedakan huruf besar/kecil.
true
false
cpp_sort_includes_priority_case_sensitive = false
cpp_sort_includes_priority_style

Menentukan apakah pengurutan mempertimbangkan gaya kurung. ignore mengurutkan tanpa mempertimbangkan tanda kurung. quoted mengurutkan include bertanda kutip di atas include dengan tanda kurung sudut. angle_brackets mengurutkan include bertanda kurung sudut di atas include bertanda kutip.
ignore
quoted
angle_brackets
cpp_sort_includes_priority_style = quoted

Pengaturan berikut ini tersedia mulai Visual Studio 2026:

Pengaturan Nilai Contoh
cpp_include_cleanup_format_after_edits

Saat true, menjalankan perintah format setelah tindakan Include Cleanup apa pun. Berguna saat Anda mengonfigurasi clang-format untuk mengurutkan direktif #include Anda.
true
false
cpp_include_cleanup_format_after_edits = true
cpp_include_cleanup_sort_after_edits

Saat true, menjalankan fitur sortir bawaan yang disertakan setelah tindakan Sertakan Pembersihan. Berguna saat Anda tidak menggunakan format clang untuk mengurutkan arahan Anda #include .
true
false
cpp_include_cleanup_sort_after_edits = true

Menyembunyikan pesan unused-include melalui kode

Mulai dari Visual Studio 2026, Anda dapat menyembunyikan pesan Include Cleanup pada satu direktif #include dengan menambahkan komentar // VCIC-Excluded di baris yang sama. Alat Include Cleanup tidak menyarankan untuk menghapus include tersebut, meskipun tampak tidak digunakan. Berikan teks pembenaran opsional setelah penanda sehingga pembaca di masa mendatang tahu mengapa menyertakannya ada di sana:

#include "Header2.h" // VCIC-Excluded: needed for the ATL macros used below

Anda juga dapat menggunakan menu ikon bohlam untuk menambahkan komentar // VCIC-Excluded ke direktif #include. Pastikan Bahwa Sertakan Pembersihan diaktifkan melaluiOpsi>Alat>Semua Pengaturan>Bahasa>C/C++>Pembersihan Kode>Sertakan pembersihan karena dinonaktifkan secara default. Kemudian, arahkan kursor Anda di atas baris #include, pilih Perbaikan Lain>Abaikan VCIC002 dalam sumber::

Cuplikan layar menu bola lampu Visual Studio, yang menampilkan

Komentar // VCIC-Excluded hanya berlaku untuk #include file. Pengaturan cpp_include_cleanup_excluded_files dalam .editorconfig menerapkan pengecualian tersebut pada setiap file yang diatur oleh .editorconfig.

Lihat juga

Gambaran umum C/C++ Sertakan Pembersihan
Sertakan pesan Pembersihan