Mengedit dan memfaktorkan ulang kode C++ di Visual Studio

Visual Studio menyediakan beberapa alat untuk membantu Anda menulis, mengedit, dan memfaktorkan ulang kode Anda.

IntelliSense

IntelliSense adalah alat penyelesaian kode yang kuat yang menyarankan simbol dan cuplikan kode untuk Anda saat Anda mengetik. C++ IntelliSense di Visual Studio berjalan secara real time, menganalisis dasar kode saat Anda memperbaruinya dan memberikan rekomendasi. Saat Anda mengetik lebih banyak karakter, daftar hasil yang disarankan akan menyempit.

Cuplikan layar menu drop-down daftar anggota C plus plus memperlihatkan metode yang tersedia untuk string seperti tambahkan, tetapkan, dan sebagainya.

Beberapa simbol dihilangkan secara otomatis untuk membantu mempersempit hasil. Misalnya, saat mengakses anggota objek kelas dari luar kelas, Anda tidak akan dapat melihat anggota privat secara default, atau anggota yang dilindungi (jika Anda tidak berada dalam konteks kelas anak). Anda dapat menyesuaikan pemfilteran dengan menggunakan tombol di bagian bawah.

Setelah Anda memilih simbol dari daftar drop-down, Anda dapat melengkapinya secara otomatis dengan Tab, Enter, atau salah satu karakter commit lainnya (secara default: { } [ ] ( ) . , : ; + - * / % & | ^ ! = ? @ # \). Untuk menambahkan atau menghapus karakter dari daftar ini, cari "IntelliSense" di Pengaktifan Cepat (Ctrl + Q) dan pilih opsi Editor Teks > C/C++ > Tingkat Lanjut. Opsi Daftar Anggota Karakter Commit memungkinkan Anda menyesuaikan daftar dengan perubahan yang diinginkan.

Opsi Mode Filter Daftar Anggota mengontrol jenis saran pelengkap otomatis IntelliSense yang Anda lihat. Secara default, diatur ke Fuzzy. Dalam pencarian Fuzzy, jika Anda memiliki simbol yang disebut MyAwesomeClass, Anda dapat mengetik "MAC" dan menemukan kelas tersebut di saran lengkapi otomatis Anda. Algoritme fuzzy menetapkan ambang batas minimum yang harus dipenuhi simbol untuk muncul dalam daftar. Pemfilteran Cerdas menampilkan semua simbol yang berisi substring yang cocok dengan apa yang Anda ketik. Pemfilteran Prefiks mencari string yang dimulai dengan apa yang Anda ketik.

Untuk informasi selengkapnya tentang C++ IntelliSense, lihat Visual C++ IntelliSense dan Mengonfigurasi proyek C++ untuk IntelliSense.

IntelliCode

IntelliCode adalah IntelliSense yang dibantu AI. IntelliCode menempatkan kandidat yang paling mungkin di bagian atas daftar penyelesaian Anda. Rekomendasi IntelliCode didasarkan pada ribuan proyek sumber terbuka di GitHub, masing-masing dengan lebih dari 100 bintang. Ketika dikombinasikan dengan konteks kode Anda, daftar penyelesaian disesuaikan untuk mempromosikan praktik umum.

Saat menulis C++, IntelliCode akan membantu saat menggunakan pustaka populer, seperti Pustaka Standar C++. Konteks kode Anda digunakan untuk memberikan rekomendasi yang paling berguna terlebih dahulu. Dalam contoh berikut, size fungsi anggota umumnya digunakan dengan sort fungsi , sehingga muncul ke bagian atas daftar hasil.

Cuplikan layar dropdown C plus IntelliCode yang menunjukkan anggota kelas vektor yang diurutkan berdasarkan yang paling umum digunakan dalam kode Anda.

Di Visual Studio 2022 dan Visual Studio 2019, IntelliCode tersedia sebagai komponen opsional dalam beban kerja Pengembangan Desktop C++. Untuk memastikan bahwa IntelliCode aktif untuk C++, buka Alat>Opsi>IntelliCode>Umum dan setel mode dasar C++ ke Diaktifkan.

Di Visual Studio 2017, IntelliCode tersedia sebagai ekstensi Visual Studio Marketplace.

IntelliSense Prediktif (Eksperimental)

IntelliSense Prediktif adalah fitur eksperimental yang menggunakan kesadaran kontekstual untuk membatasi jumlah hasil yang ditampilkan di daftar dropdown IntelliSense. Algoritme menerapkan pencocokan tipe sehingga hanya menampilkan hasil yang cocok dengan tipe yang diharapkan. Dalam kasus yang paling sederhana, jika Anda mengetik int x = dan menggunakan dropdown IntelliSense, Anda hanya akan melihat bilangan bulat atau fungsi yang mengembalikan bilangan bulat. Fitur ini nonaktif secara default karena masih dalam pengembangan. Ini bekerja paling baik dengan simbol global; fungsi anggota belum didukung. Anda dapat mengaktifkannya dengan mengetik "Prediktif" di Pengaktifan Cepat atau dengan membuka Alat>Opsi>Editor Teks>C/C++>Eksperimental>Aktifkan IntelliSense Prediktif.

Untuk mengambil alih IntelliSense Prediktif dan menunjukkan daftar yang lebih panjang, tekan Ctrl + J. Jika IntelliSense Prediktif aktif, menggunakan Ctrl + J akan menghapus filter Prediktif. Menekan Ctrl + J lagi akan menghapus filter aksesibilitas dari hasil Daftar Anggota jika relevan. Tombol ([+]) di bawah daftar dropdown IntelliSense melakukan hal yang sama seperti Ctrl + J. Arahkan kursor ke tombol tersebut untuk melihat informasi tip alat tentang apa yang sedang ditampilkan.

Cuplikan layar C plus plus Prediktif IntelliSense.

Screenshot sebelumnya menunjukkan beberapa tombol di bawah daftar dropdown. Tombol-tombol ini mengaktifkan filter IntelliSense untuk berbagai jenis hasil:

  • Variabel dan Konstanta
  • Fungsi
  • Jenis
  • Makro
  • Enum
  • Namaspace

Tombol hanya ditampilkan jika relevan dengan sesi IntelliSense Anda saat ini. Anda biasanya tidak melihat semua tombol secara bersamaan.

IntelliSense Templat

Bilah templat adalah elemen UI yang muncul saat kursor Anda berada pada definisi templat. Ini berguna karena Anda dapat menyediakan contoh argumen templat untuk intellisense yang akan muncul saat Anda mengedit isi templat. Misalnya, Anda dapat menentukan bahwa argumen templat berjenis std::vector<int>. Kemudian, saat Anda menggunakan argumen tersebut di isi templat, Anda akan melihat anggota std::vector<int>dalam intellisense.

Cuplikan layar bilah templat yang memiliki opsi Tambahkan Semua Instansiasi yang Ada disorot.

Klik ikon <T> untuk memperluas/menciutkan Bilah Templat. Klik ikon pensil atau klik dua kali Bilah Templat untuk membuka jendela Edit tempat Anda menentukan jenis argumen untuk parameter.

Cuplikan layar pengalaman pengeditan di dalam bilah templat tempat Anda memasukkan jenis untuk setiap parameter templat.

Bilah Templat dapat mengisi jenis parameter secara otomatis berdasarkan instans templat dalam kode Anda. Klik Tambahkan Semua Instansiasi yang Ada untuk melihat daftar semua argumen konkret yang telah digunakan untuk membuat instans templat di seluruh dasar kode Anda.

Cuplikan layar Hasil IntelliSense Templat yang mencantumkan berbagai jenis yang digunakan untuk membuat instans parameter templat C seperti C = AmbientLight, C = Candle, dan lainnya.

Jendela di bagian bawah editor menunjukkan di mana setiap instansiasi ditemukan dan apa argumennya. Anda dapat memilih instansiasi untuk masuk ke lokasi dalam kode Anda tempat instansiasi tersebut ditemukan.

Cuplikan layar daftar instansiasi templat dalam kode Anda. Instansi, file, lokasi, dan argumen dicantumkan.

Informasi Bilah Templat khusus pengguna. Ini disimpan di .vs folder dan tidak berkomitmen untuk kontrol sumber.

Coretan kesalahan dan perbaikan cepat

Jika editor mendeteksi masalah dengan kode Anda, editor akan menambahkan coretan berwarna di bawah masalah. Coretan merah menunjukkan kode yang tidak dapat dikompilasi. Coretan hijau menunjukkan jenis masalah lain yang mungkin masih berpotensi serius. Anda dapat membuka jendela Daftar Kesalahan untuk mendapatkan informasi selengkapnya tentang masalah tersebut.

Untuk beberapa jenis kesalahan, dan pola pengkodian umum, editor akan menawarkan Perbaikan Cepat dalam bentuk bola lampu yang muncul saat Anda mengarahkan kumparan ke atas berlekuk. Klik panah bawah untuk melihat saran.

Dalam contoh berikut, sebuah vector dideklarasikan, tetapi tidak ada definisi yang ditemukan, sehingga editor menawarkan untuk menyertakan file header yang dibutuhkan:

Cuplikan layar kesalahan dan perbaikan cepat yang diusulkan ke # sertakan vektor.

Editor juga menawarkan Perbaikan Cepat untuk beberapa peluang pemfaktoran ulang. Misalnya, jika Anda mendeklarasikan sebuah kelas dalam file header, Visual Studio akan menawarkan untuk membuat definisi untuk kelas tersebut di file .cpp terpisah.

Cuplikan layar memperlihatkan perbaikan cepat dengan opsi Buat definisi Iterator Rute Saluran di saluran dot C P P disorot.

Pelacakan perubahan

Setiap kali Anda membuat perubahan pada file, bilah kuning akan muncul di sebelah kiri untuk menunjukkan bahwa perubahan yang belum disimpan telah dibuat. Saat Anda menyimpan file tersebut, bilah akan berubah hijau. Bilah hijau dan kuning akan dipertahankan selama dokumen terbuka di editor. Mereka mewakili perubahan yang dibuat sejak terakhir kali Anda membuka dokumen.

Cuplikan layar C plus plus pelacakan perubahan. Bilah kuning di bawah kiri tampaknya menunjukkan perubahan.

Pindahkan kode

Anda dapat memindahkan baris kode ke atas dan ke bawah dengan memilihnya, menekan dan menahan tombol Alt, serta menekan tombol panah Atas/Bawah.

Sisipkan cuplikan

Cuplikan adalah bagian kode sumber yang telah ditentukan sebelumnya. Klik kanan pada satu titik atau pada teks yang dipilih dan pilih Cuplikan untuk menyisipkan cuplikan atau mengelilingi teks yang dipilih dengan cuplikan. Ilustrasi berikut menunjukkan tiga langkah untuk mengelilingi pernyataan yang dipilih dengan pengulangan for. Sorotan kuning pada gambar akhir adalah bidang yang dapat diedit yang Anda akses dengan tombol tab. Untuk informasi selengkapnya, lihat Cuplikan Kode.

Cuplikan layar kontrol Drop-down Sisipkan Cuplikan.

Fungsi dipilih. Di menu drop-down yang muncul setelah klik kanan pada nama fungsi, Kelilingi Dengan... disorot dengan warna kuning. Di menu drop-down Keliling Dengan: , cuplikan untuk perulangan 'untuk' dipilih. Hal ini mengakibatkan menempatkan untuk perulangan di sekitar fungsi. Variabel dan batas perulangan ditampilkan dalam warna kuning untuk menunjukkan bahwa variabel dan batas tersebut adalah bidang yang dapat diedit.

Tambahkan Kelas

Tambahkan kelas baru dari menu Proyek, atau dari menu konteks di Penjelajah Solusi:

Cuplikan layar dialog Tambahkan Kelas Baru. Ini memiliki bidang untuk nama kelas, aksesibilitas, file untuk menempatkan deklarasi dan implementasi, dan sebagainya.

Anda juga dapat menggunakan Wizard Kelas untuk mengubah atau memeriksa kelas yang sudah ada.

Cuplikan layar Wizard Kelas yang memiliki opsi untuk menambahkan metode, variabel anggota, dan banyak lagi.

Untuk informasi selengkapnya, lihat Menambahkan Fungsionalitas dengan Wizard Kode (C++).

Pemfaktoran ulang

Pemfaktoran ulang tersedia di bawah menu konteks Tindakan Cepat atau dengan mengklik bohlam lampu di editor. Beberapa juga ditemukan di menu Edit > Pemfaktoran Ulang. Fitur ini mencakup:

Penerapan gaya kode dengan ClangFormat dan EditorConfig

Visual Studio 2017 dan yang lebih baru dilengkapi dengan dukungan bawaan untuk ClangFormat, utilitas pemformatan kode populer untuk C++ berdasarkan Clang/LLVM. Ketik "ClangFormat" ke dalam Pengaktifan Cepat untuk mengaturnya agar menggunakan salah satu format umum berikut:

  • LLVM
  • Google
  • Chromium
  • Mozilla
  • WebKit
  • Visual Studio

Anda juga dapat menyediakan file atau _clang-format Anda sendiri .clang-format untuk menerapkan aturan kustom ke semua file kode pada tingkat yang sama atau di bawahnya.

File dapat dibagikan dengan mudah melalui kontrol sumber, sehingga Anda dapat menerapkan konvensi pengodean di seluruh tim pengembangan Anda.

Cuplikan layar memperlihatkan file berformat .clang yang memiliki banyak opsi seperti batas kolom, lebar inden, lebar tab, dan sebagainya.

Visual Studio 2017 dan versi yang lebih baru juga mendukung EditorConfig, yang bekerja dengan cara yang serupa. Namun, ClangFormat memiliki lebih banyak opsi gaya daripada EditorConfig, termasuk aturan yang dikhususkan untuk C++. Dengan EditorConfig, Anda membuat file .editorconfig dan menempatkannya di folder yang berbeda dari dasar kode Anda untuk menentukan gaya kode untuk folder tersebut dan subfoldernya. File .editorconfig menggantikan file .editorconfig lainnya di folder induk dan menimpa pengaturan pemformatan apa pun yang dikonfigurasi melalui Alat>Opsi. Anda dapat menentukan aturan untuk tab vs. spasi, ukuran indentasi, dan lain-lain. Untuk informasi selengkapnya, lihat Membuat pengaturan editor kustom portabel dengan EditorConfig.

Opsi pemformatan lainnya

Kotak pencarian Pengaktifan Cepat menyediakan cara tercepat untuk menemukan pengaturan atau alat. Lokasinya ada di menu utama. Mulailah mengetik dan daftar pelengkap otomatis akan memfilter hasilnya.

Cuplikan layar kotak pencarian Luncur Cepat. Ini menunjukkan pencarian C plus plus tingkat lanjut yang menghasilkan opsi untuk editor teks.

Untuk mengatur opsi pemformatan seperti inden, penyelesaian kurung awal, dan pewarnaan, ketik "Pemformatan C++" ke dalam jendela Pengaktifan Cepat.

Cuplikan layar memperlihatkan opsi pemformatan C++ seperti apakah akan menginden secara otomatis saat Anda mengetik tab.

Opsi pemformatan lain dapat ditemukan di bawah Edit>Tingkat Lanjut di menu utama.

Cuplikan layar memperlihatkan opsi pengeditan tingkat lanjut seperti menampilkan spasi kosong, pembungkus kata, mengomentari pilihan, meningkatkan inden baris, dan lainnya.

Opsi untuk mengaktifkan dan mengonfigurasi fitur pengaktifan khusus C++ terletak di bawah Alat>Opsi>Editor Teks>C/C++. Setelah memilih opsi mana yang ingin Anda atur, Anda bisa mendapatkan bantuan lainnya dengan menekan F1 ketika dialog sedang fokus. Untuk opsi pemformatan kode umum, ketik Editor C++ ke dalam Pengaktifan Cepat.

Cuplikan layar memperlihatkan item menu Visual Studio Alat dipilih, dan item menu Opsi disorot.

Fitur eksperimental, yang mungkin atau mungkin tidak disertakan dalam versi Visual Studio yang akan datang, dapat di temukan dalam dialog Editor Teks C++ Eksperimental. Dalam Visual Studio 2017 dan versi yang lebih baru, Anda dapat mengaktifkan IntelliSense Prediktif dalam dialog ini.

Lihat juga

Membaca dan memahami kode C++
Navigasikan dasar kode C++ Anda di Visual Studio
Berkolaborasi dengan Live Share untuk C++