Ini adalah mesin kodasi untuk analisis kode statis scala dibangun di atas scala.meta. Periksa bagian dokumen untuk informasi lebih lanjut.
Menerapkan pola baru:
Biasanya ide yang baik untuk memulai dengan mengimplementasikan file uji. Ini berisi masalah -masalah yang harus dideteksi oleh pola baru serta implementasi yang memperbaiki masalah tersebut. Ini mendefinisikan kendala apa yang seharusnya dan juga tidak boleh dideteksi dan membantu menghindari positif palsu. Untuk membuat testfile tambahkan ke sumber daya di bawah dokumen/ tes/ Anda dapat melihat tes yang sudah diimplementasikan di plugin dasar kami
Selanjutnya kami mengimplementasikan kode yang sebenarnya. Pola saat ini harus berada di paket codacy.patterns dan mengimplementasikan antarmuka codacy.base.Pattern . Yang berarti harus mengimplementasikan def apply(tree:Tree):Iterable[Result] . Dalam kebanyakan kasus, metode collect pada pohon yang disediakan Scala.Meta cukup untuk tujuan itu. Result terdiri dari Message (yang itu sendiri hanyalah string yang dibungkus tipe) dan yang Positionable yang saat ini dapat secara implisit diperoleh dengan melewati scala.meta.Tree atau scala.meta.Token
Terkadang orang mungkin ingin mengubah perilaku pola sesuai dengan beberapa konfigurasi. Konfigurasi seperti itu harus mengikuti beberapa aturan dasar dan disahkan ke pola sebagai satu -satunya argumen dalam konstruktor. Aturannya adalah:
itu harus menjadi kelas kasus
Semua argumen perlu menentukan default
Pembaca dan penulis JSON harus ada untuk jenis argumen. (Saat ini itu berarti tipe primitif dan scala.util.matching.Regex )
Langkah -langkah tambahan dapat ditemukan dalam integrasi alat bab dengan satu eksepsi: tidak perlu secara eksplisit menambahkan parameter pola ke pola yang ditentukan dalam patterns.json karena itu sudah dicakup oleh aturan 2 dari aturan konfigurasi. Sebagai contoh lengkap, periksa pola yang ada
https://github.com/scalameta/scalameta/blob/master/notes/quasiquotes.md
https://docs.codacy.com/related-tools/tool-developer-guide/
import scala.meta._
val code = """ .... """
val tree = code.parse[Source]
codacy.patterns.Custom_Scala_ElseIf(tree)
//To see the tree structure:
tree.show[Structure]
Anda dapat membuat buruh pelabuhan dengan melakukan:
sbt docker:publishLocal
Docker dijalankan dengan perintah berikut:
docker run -it -v $srcDir:/src <DOCKER_NAME>:<DOCKER_VERSION>
Panduan Pengembang Alat
Panduan Pengembang Alat - Menggunakan Scala
Kami menggunakan uji kodasi-plugin untuk menguji integrasi alat eksternal kami. Anda dapat mengikuti instruksi di sana untuk memastikan alat Anda berfungsi seperti yang diharapkan.
Codacy adalah alat peninjauan kode otomatis yang memantau utang teknis Anda, membantu Anda meningkatkan kualitas kode Anda, mengajarkan praktik terbaik kepada pengembang Anda, dan membantu Anda menghemat waktu dalam ulasan kode.
Kodasi juga membantu melacak cakupan kode, duplikasi kode, dan kompleksitas kode.
Kodasi mendukung PHP, Python, Ruby, Java, Javascript, dan Scala, antara lain.
Kodasi gratis untuk proyek open source.