Sonarqube css / scss / kurang penganalisa
Penafian
Saya tidak ingin terus memelihara plugin ini. Jangan ragu untuk melakukan ping saya jika Anda ingin mengambil alih.
Keterangan
Plugin Sonarqube ini menganalisis:
- File CSS
- Kode CSS tertanam dalam file HTML/XHTML
- File SCSS
- Lebih sedikit file
Dan:
- Menghitung metrik: baris kode, kompleksitas, jumlah aturan, dll.
- Memvalidasi kode CSS Anda
- Periksa kode yang digandakan
- Memeriksa berbagai pedoman untuk mengetahui potensi bug, kerentanan, dan aroma kode melalui lebih dari:
- 80 cek pada kode CSS
- 90 Pemeriksaan pada Kode SCSS
- 80 cek pada lebih sedikit kode
- Memberikan kemampuan untuk menulis cek Anda sendiri
Penggunaan
Panduan Instalasi
- Unduh dan Instal Sonarquce
- Instal plugin CSS / SCSS / Less dengan unduhan langsung. Versi terbaru kompatibel dengan Sonarqube 6.7+.
- Instal Pemindai Favorit Anda (Pemindai Sonarqube, Maven, Ant, dll.)
- Menganalisis kode Anda
Menganalisis kode CSS yang tertanam dalam file HTML/XHTML
Plugin menganalisis kode CSS yang tertanam dalam <style type="text/css">...</style> tag dalam file html/xhtml. Untuk melakukannya, sebagai prasyarat, Sonarqube harus mengimpor file -file tersebut. Salah satu:
- Instal plugin yang mengimpor file tersebut (misalnya plugin Web)
- Atau nyalakan impor file yang tidak dikenal dengan mengatur properti
sonar.import_unknown_files ke true
Daftar file yang berisi CSS tertanam untuk dianalisis dapat disesuaikan melalui properti sonar.css.embedded.file.suffixes .
Stylelint / Sonarqube Rule Mapping
Jika Anda sudah menggunakan StyLelint, menambahkan Sonarquce ke tumpukan Anda akan membantu Anda membawa kualitas kode ke level lain. Pemetaan aturan Stylelint / Sonarqube mungkin sangat membantu untuk menentukan profil kualitas sonarqube Anda.
Pemeriksaan khusus
Anda sedang memikirkan cek berharga baru? Versi 2.1 atau lebih besar menyediakan API untuk menulis cek khusus Anda sendiri. Plugin sampel dengan penjelasan terperinci tersedia di sini. Jika pemeriksaan khusus Anda dapat menguntungkan masyarakat, jangan ragu untuk membuat permintaan tarik untuk membuat cek tersedia di CSS / SCSS / kurang penganalisa.
Anda sedang memikirkan cek baru yang mungkin bermanfaat bagi masyarakat tetapi tidak punya waktu atau keterampilan untuk menulisnya? Jangan ragu untuk membuat masalah agar cek Anda dipertimbangkan.
Metrik
Fungsi
Jumlah aturan.
Kompleksitas
Elemen -elemen berikut menambah kompleksitas dengan satu:
- Pemilih kelas
- Pemilih ID
- Atribut pemilih
- Ketik pemilih
- Pemilih semu
- Pemilih Kunci Kunci
- At-aturan
Kompleksitas/fungsi
Ini menghitung kompleksitas/aturan, yang berarti jumlah rata -rata pemilih per aturan. Ini memberikan pengukuran tentang seberapa spesifik pemilih.
Aturan yang tersedia
Umum untuk CSS dan SCS dan lebih sedikit
- Bendera "! Penting" harus ditempatkan di akhir deklarasi
- Bendera "! Penting" tidak boleh digunakan
- Aturan "@font-face" harus dibuat kompatibel dengan browser yang diperlukan
- Tag "fixme" harus ditangani
- Tag "nosonar" tidak boleh digunakan untuk mematikan masalah
- Tag "Stylelint-Disemable" harus dihapus
- Tag "stylelint-enable" harus dihapus
- Properti "transform teks" tidak boleh diatur ke "huruf besar" atau "kapitalisasi" untuk beberapa bahasa
- Tag "todo" harus ditangani
- @charset harus menjadi elemen pertama dalam lembar gaya dan tidak didahului oleh karakter apa pun
- Ukuran model kotak harus ditinjau dengan cermat
- Byte Order Mark (BOM) tidak boleh digunakan untuk file UTF-8
- Bendera yang tidak sensitif case tidak boleh digunakan
- Pemilih kelas harus mengikuti konvensi penamaan
- CSS harus ditulis dalam huruf kecil
- Warna sistem yang sudah usang tidak boleh digunakan
- Gambar latar belakang yang digandakan harus dihapus
- Properti yang digandakan harus dilepas
- Setiap deklarasi harus diakhiri dengan titik koma
- Deklarasi kosong harus dilepas
- Aturan kosong harus dihapus
- Lembar gaya kosong harus dihapus
- Eksperimental @-rules tidak boleh digunakan
- Pengidentifikasi eksperimental tidak boleh digunakan
- Sifat eksperimental tidak boleh digunakan
- Elemen semu eksperimental dan kelas semu tidak boleh digunakan
- Kombinator pemilih eksperimental tidak boleh digunakan
- File harus berisi baris baru yang kosong di akhir
- File tidak boleh memiliki terlalu banyak baris
- Nama keluarga font harus dikutip
- File font inlining tidak boleh digunakan
- Sifat font-family harus diakhiri dengan keluarga font generik
- font-family tidak boleh berisi nama keluarga font yang digandakan
- Properti terlarang tidak boleh digunakan
- Nama keluarga font generik tidak boleh dikutip
- Definisi gradien harus ditetapkan untuk semua vendor
- Pemilih ID harus mengikuti konvensi penamaan
- ID dalam pemilih harus dihapus
- Nol memimpin harus dihapus
- Garis seharusnya tidak terlalu lama
- Garis seharusnya tidak berakhir dengan lintasan putih
- Awalan vendor yang hilang harus ditambahkan ke properti eksperimental
- Nama elemen yang terlalu tinggi harus dihapus
- Warna yang dinamai tidak boleh digunakan
- Presisi angka tidak boleh terlalu tinggi
- Sifat usang tidak boleh digunakan
- Elemen semu yang sudah usang dan kelas semu tidak boleh digunakan
- Kombinator pemilih yang usang tidak boleh digunakan
- Selektor yang ditentukan secara berlebihan harus disederhanakan
- Properti yang tidak berfungsi dengan properti "tampilan" harus dihapus
- Nilai properti harus valid
- URL protokol-relatif tidak boleh digunakan
- Ekspresi reguler seperti pemilih tidak boleh digunakan
- Ekspresi reguler di @-rule
- Ekspresi reguler tentang komentar
- Ekspresi reguler pada fungsi
- Ekspresi reguler di properti
- Ekspresi reguler di unit
- Properti aturan harus dipesan secara abjad
- Properti steno harus digunakan jika memungkinkan
- Properti steno tidak boleh digunakan
- Kutipan tunggal harus digunakan sebagai ganti kutipan ganda untuk string
- Kode sumber harus memenuhi standar pemformatan
- Properti Standar harus ditentukan bersama dengan properti yang diprefisix vendor
- STAR Hack tidak boleh digunakan
- Stylesheets tidak boleh berisi terlalu banyak aturan
- Stylesheets tidak boleh berisi terlalu banyak pemilih
- Karakter tabulasi tidak boleh digunakan
- Jumlah font web harus dikurangi
- Harus ada satu deklarasi tunggal per baris
- Trailing nol untuk nilai numerik harus dihapus
- Jenis selector harus dihapus
- Retasan garis bawah tidak boleh digunakan
- Unit untuk nilai panjang nol harus dihapus
- Pemilih universal tidak boleh digunakan sebagai bagian utama
- Tidak diketahui @-rules harus dihapus
- Properti yang tidak diketahui harus dihapus
- Elemen semu dan kelas semu yang tidak diketahui harus dihapus
- Pemilih tipe yang tidak diketahui harus dihapus
- URL 'Paper.gif' tidak boleh digunakan
- URL harus dikutip
Khusus untuk CSS
- Aturan "@import" tidak boleh digunakan
- aturan @Import harus mendahului semua aturan at-aturan dan gaya lainnya
- Variabel CSS harus mengikuti konvensi penamaan
- Fungsi eksperimental tidak boleh digunakan
- Fungsi usang tidak boleh digunakan
- Stylesheets tidak boleh "@import" terlalu banyak lembar lainnya
- Fungsi CSS yang tidak diketahui harus dihapus
Khusus untuk CSS yang tertanam dalam HTML/XHTML
- CSS tidak boleh tertanam dalam file HTML
Khusus untuk SCSS
- @Debug Directive tidak boleh digunakan dalam kode produksi
- @Extend Directives tidak boleh digunakan
- @if ... @else jika ... konstruksi harus diakhiri dengan arahan @else
- Selalu gunakan 'melalui' bukannya 'ke' di @For arahan
- Kondisi seharusnya tidak terlalu rumit
- Arahan aliran kontrol @if, @else if, @else, @for, @shile, dan @each tidak boleh terlalu dalam
- Fungsi khusus harus mengikuti konvensi penamaan
- Deklarasi dan arahan harus disortir dengan benar
- String multilin yang tidak tertutup tidak boleh digunakan tidak boleh digunakan
- Arahan Aliran Kontrol Kosong harus dilepas
- Mixin kosong harus dilepas
- Mixins harus mengikuti konvensi penamaan
- Properti bersarang harus mendefinisikan setidaknya dua properti
- Pemilih placeholder harus mengikuti konvensi penamaan
- Terkait @if / @else jika arahan tidak boleh memiliki kondisi yang sama
- Aturan tidak boleh terlalu dalam
- Variabel SCSS harus mengikuti konvensi penamaan
- Komentar satu baris (//) harus lebih disukai daripada komentar multi-line (/ * ... */)
- Dua cabang dalam struktur bersyarat yang sama seharusnya tidak memiliki implementasi yang sama persis
- Tanda kurung yang tidak berguna mengikuti @include dan @mixin tanpa parameter harus dihapus
Khusus untuk kurang
- Fungsi pelarian "e" yang sudah usang harus diganti dengan sintaks "nilai"
- Lebih sedikit variabel harus mengikuti konvensi penamaan
- Aturan tidak boleh terlalu dalam
- Variabel yang sama tidak boleh dinyatakan beberapa kali dalam lingkup yang sama
- Komentar satu baris (//) harus lebih disukai daripada komentar multi-line (/ * ... */)
- CSS yang tidak diketahui / fungsi yang kurang harus dihapus
- Variabel harus dinyatakan di awal blok