Opsi konfigurasi untuk analisis kode
Aturan analisis kode memiliki berbagai opsi konfigurasi. Beberapa opsi ini ditentukan sebagai pasangan kunci-nilai dalam file konfigurasi penganalisis menggunakan sintaks <option key> = <option value>
. Opsi lain, yang mengonfigurasi analisis kode secara keseluruhan, tersedia sebagai properti MSBuild dalam file proyek Anda.
Opsi paling umum yang akan Anda konfigurasi adalah tingkat keparahan aturan. Anda dapat mengonfigurasi tingkat keparahan untuk aturan apa pun, termasuk aturan kualitas kode dan aturan gaya kode. Misalnya, untuk mengaktifkan aturan sebagai peringatan, tambahkan pasangan kunci-nilai berikut ke file konfigurasi penganalisis:
dotnet_diagnostic.<rule ID>.severity = warning
Anda juga dapat mengonfigurasi opsi tambahan untuk menyesuaikan perilaku aturan:
- Aturan kualitas kode memiliki opsi perilaku, seperti metode mana yang harus diterapkan oleh aturan.
- Aturan gaya kode memiliki opsi preferensi gaya, seperti di mana baris baru diinginkan.
- Aturan penganalisis pihak ketiga dapat menentukan opsi konfigurasi mereka sendiri, dengan nama kunci kustom dan format nilai.
Opsi Umum
Opsi ini berlaku untuk analisis kode secara keseluruhan. Mereka tidak dapat diterapkan hanya ke aturan tertentu.
Untuk opsi tambahan, lihat Properti analisis kode.
Mode analisis
Sementara .NET SDK menyertakan semua aturan analisis kode, hanya beberapa dari mereka yang diaktifkan secara default. Mode analisis menentukan, jika ada, sekumpulan aturan yang akan diaktifkan. Anda dapat memilih mode analisis yang lebih agresif di mana sebagian besar atau semua aturan diaktifkan. Atau Anda dapat memilih mode analisis yang lebih konservatif di mana sebagian besar atau semua aturan dinonaktifkan, dan Anda kemudian dapat ikut serta dalam aturan tertentu sesuai kebutuhan. Atur mode analisis Anda dengan menambahkan <properti AnalysisMode> MSBuild ke file proyek Anda.
<PropertyGroup>
<AnalysisMode>Recommended</AnalysisMode>
</PropertyGroup>
Mulai dari .NET 6, Anda juga dapat mengaktifkan kategori aturan secara massal menggunakan <properti AnalysisMode<Category>> MSBuild.
Catatan
Jika Anda mengonfigurasi analisis kode menggunakan properti MSBuild seperti AnalysisMode
, opsi konfigurasi massal apa pun yang Anda tetapkan dalam file konfigurasi Anda diabaikan. Misalnya, jika Anda telah mengaktifkan semua aturan secara massal atau kategori aturan dalam file .editorconfig , konfigurasi tersebut diabaikan.
Mengaktifkan analisis kode
Analisis kode diaktifkan secara default untuk proyek yang menargetkan .NET 5 dan versi yang lebih baru. Jika Anda memiliki .NET 5+ SDK tetapi proyek Anda menargetkan implementasi .NET yang berbeda, Anda dapat mengaktifkan analisis kode secara manual dengan mengatur properti EnableNETAnalyzers dalam file proyek Anda ke true
.
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
</PropertyGroup>
Mengecualikan kode yang dihasilkan
Peringatan penganalisis kode .NET tidak berguna pada file kode yang dihasilkan, seperti file yang dihasilkan desainer, yang tidak dapat diedit pengguna untuk memperbaiki pelanggaran apa pun. Dalam kebanyakan kasus, penganalisis kode melewati file kode yang dihasilkan dan tidak melaporkan pelanggaran pada file-file ini.
Secara default, file dengan ekstensi file tertentu atau header file yang dihasilkan secara otomatis diperlakukan sebagai file kode yang dihasilkan. Misalnya, nama file yang diakhir dengan .designer.cs
atau .generated.cs
dianggap kode yang dihasilkan. Opsi konfigurasi ini memungkinkan Anda menentukan pola penamaan tambahan yang akan diperlakukan sebagai kode yang dihasilkan. Anda mengonfigurasi file dan folder tambahan dengan menambahkan generated_code = true | false
entri ke file konfigurasi Anda. Misalnya, untuk memperlakukan semua file yang namanya diakhir dengan .MyGenerated.cs
sebagai kode yang dihasilkan, tambahkan entri berikut:
[*.MyGenerated.cs]
generated_code = true
Opsi khusus aturan
Opsi khusus aturan dapat diterapkan ke satu aturan, sekumpulan aturan, atau semua aturan. Opsi khusus aturan meliputi:
Tingkat keparahan
Tabel berikut ini memperlihatkan berbagai tingkat keparahan aturan yang dapat Anda konfigurasi untuk semua aturan penganalisis, termasuk kualitas kode dan aturan gaya kode.
Nilai konfigurasi tingkat keparahan | Perilaku waktu-build |
---|---|
error |
Pelanggaran muncul sebagai kesalahan build dan menyebabkan build gagal. |
warning |
Pelanggaran muncul sebagai peringatan build tetapi tidak menyebabkan build gagal (kecuali Anda memiliki opsi yang diatur untuk memperlakukan peringatan sebagai kesalahan). |
suggestion |
Pelanggaran muncul sebagai pesan build dan sebagai saran di Visual Studio IDE. (Di Visual Studio, saran muncul sebagai tiga titik abu-abu di bawah dua karakter pertama.) |
silent |
Pelanggaran tidak terlihat oleh pengguna. Namun, untuk aturan gaya kode, fitur pembuatan kode Visual Studio masih menghasilkan kode dalam gaya ini. Aturan ini juga berpartisipasi dalam pembersihan dan muncul di menu Tindakan Cepat dan Pemfaktoran Ulang di Visual Studio. |
none |
Aturan ditekan sepenuhnya. Namun, untuk aturan gaya kode, fitur pembuatan kode Visual Studio masih menghasilkan kode dalam gaya ini. |
default |
Tingkat keparahan default aturan digunakan. Tingkat keparahan default untuk setiap rilis .NET tercantum dalam repositori roslyn-analyzers. Dalam tabel itu, "Dinonaktifkan" sesuai dengan none , "Tersembunyi" sesuai dengan silent , dan "Info" sesuai dengan suggestion . |
Cakupan
Aturan tunggal
Untuk mengatur tingkat keparahan aturan untuk satu aturan, gunakan sintaks berikut.
dotnet_diagnostic.<rule ID>.severity = <severity value>
Kategori aturan
Untuk mengatur tingkat keparahan aturan default untuk kategori aturan, gunakan sintaks berikut. Namun, pengaturan tingkat keparahan ini hanya memengaruhi aturan dalam kategori tersebut yang diaktifkan secara default.
dotnet_analyzer_diagnostic.category-<rule category>.severity = <severity value>
Kategori yang berbeda dicantumkan dan dijelaskan di kategori Aturan. Selain itu, Anda dapat menemukan kategori untuk aturan tertentu di halaman referensinya, misalnya, CA1000.
Semua aturan
Untuk mengatur tingkat keparahan aturan default untuk semua aturan penganalisis, gunakan sintaks berikut. Namun, pengaturan tingkat keparahan ini hanya memengaruhi aturan yang diaktifkan secara default.
dotnet_analyzer_diagnostic.severity = <severity value>
Penting
Saat Anda mengonfigurasi tingkat keparahan untuk beberapa aturan dengan satu entri, baik untuk kategori aturan atau untuk semua aturan, tingkat keparahan hanya berlaku untuk aturan yang diaktifkan secara default. Dan jika Anda mengaktifkan semua aturan dengan menggunakan properti <MSBuild AnalysisMode> atau< AnalysisLevel>, opsi massal dotnet_analyzer_diagnostic
apa pun diabaikan. Untuk alasan ini, lebih baik mengaktifkan kategori aturan dengan mengatur <Kategori>> AnalysisMode<ke All
.
Catatan
Awalan untuk mengatur tingkat keparahan untuk satu aturan, dotnet_diagnostic
, sedikit berbeda dari awalan untuk mengonfigurasi tingkat keparahan melalui kategori atau untuk semua aturan, dotnet_analyzer_diagnostic
.
Prioritas
Jika Anda memiliki beberapa entri konfigurasi tingkat keparahan yang dapat diterapkan ke ID aturan yang sama, prioritas dipilih dalam urutan berikut:
- Entri untuk kategori lebih diutamakan daripada entri untuk semua aturan penganalisis.
- Entri untuk aturan individual menurut ID lebih diutamakan daripada entri untuk kategori.
Pertimbangkan contoh berikut, di mana CA1822 memiliki kategori "Performa":
[*.cs]
dotnet_diagnostic.CA1822.severity = error
dotnet_analyzer_diagnostic.category-performance.severity = warning
dotnet_analyzer_diagnostic.severity = suggestion
Dalam contoh sebelumnya, ketiga entri tingkat keparahan berlaku untuk CA1822. Namun, menggunakan aturan prioritas yang ditentukan, entri berbasis ID aturan pertama menang atas entri berikutnya. Dalam contoh ini, CA1822 akan memiliki tingkat keparahan yang efektif dari error
. Semua aturan lain dalam kategori "Performa" akan memiliki tingkat keparahan warning
.
Untuk informasi tentang bagaimana prioritas antar file diputuskan, lihat bagian Prioritas dari artikel File konfigurasi.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk