Kempt, CLI Format Kode dan Git Hook Tanpa Ketergantungan Gradle

Kempt, CLI Format Kode dan Git Hook Tanpa Ketergantungan Gradle

Teknologi

Kempt CLI format kode karya Zac Sweers menyatukan ktfmt, google-java-format, dan cargo fmt dengan integrasi git hook tanpa bergantung pada Gradle.

Pengembang Zac Sweers memperkenalkan kempt, sebuah proyek hobi berupa antarmuka baris perintah (CLI) yang dibuat untuk melepaskan diri dari Spotless dan Gradle sekaligus menyederhanakan pemasangan commit hook di sejumlah proyeknya.

Kempt disebut sebagai CLI dengan satu titik masuk yang mendelegasikan pekerjaan pemformatan kepada formatter khusus tiap bahasa. Alat ini menawarkan instalasi yang mudah, pengelolaan binari otomatis, integrasi git hook, penyisipan header lisensi, penanganan whitespace, serta konfigurasi yang sederhana.

Alasan meninggalkan Gradle

Menurut penjelasan di laman proyek, Spotless dan plugin formatter Gradle lainnya dinilai terlalu berat karena dijalankan di atas Gradle. Sebagian besar repositori yang perlu beralih dari pemformatan berbasis Gradle, ujarnya, pada akhirnya mengumpulkan tumpukan skrip pemformatan yang serupa. Kempt berupaya mengubah tumpukan skrip itu menjadi satu pipeline di dalam repositori.

Bahasa dan fitur yang didukung

Pada versi saat ini, kempt mendukung pemformatan untuk beberapa bahasa dan sejumlah fungsi pendukung, yaitu:

  • Kotlin melalui ktfmt
  • Java melalui google-java-format
  • Rust melalui cargo fmt
  • Penyisipan header lisensi
  • Normalisasi spasi di akhir baris

Dengan cakupan tersebut, satu alat yang sama dapat dipakai untuk kebutuhan pemformatan lintas bahasa tanpa perlu merangkai sejumlah skrip terpisah di setiap repositori.

Konfigurasi melalui .kempt.toml

Repositori dikonfigurasi menggunakan berkas .kempt.toml. Setelah konfigurasi itu dibuat, alat yang sama dipakai secara lokal, pada pre-commit, dan di lingkungan CI. Pola ini membuat aturan pemformatan yang berlaku di mesin pengembang sejalan dengan yang dijalankan pada proses otomatis.

Langkah awal penggunaan

Untuk mulai menggunakan kempt, alur yang didokumentasikan adalah sebagai berikut:

  • brew install ZacSweers/tap/kempt-fmt untuk memasang alat
  • kempt init untuk menyiapkan berkas .kempt.toml berdasarkan bahasa yang terdeteksi
  • kempt install-hook sebagai integrasi git commit hook yang bersifat opsional
  • kempt format atau kempt check untuk menjalankan pemformatan atau pemeriksaan

Perintah kempt init disebut membuat konfigurasi awal berdasarkan bahasa yang terdeteksi di repositori, sedangkan integrasi hook bersifat pilihan bagi pengguna yang ingin proses pemeriksaan berjalan otomatis pada setiap commit.

Mode pemeriksaan di CI dan hook commit

Untuk kebutuhan CI, kempt check berfungsi sebagai mode baca-saja. Perintah itu keluar dengan status bukan nol ketika ada berkas yang masih perlu diformat, dan mencetak perintah yang dapat dipakai untuk memperbaikinya.

Sementara itu, untuk commit lokal, hook memformat berkas yang sudah di-stage dan men-stage ulang hanya berkas yang diubahnya. Hook tersebut menolak kasus partial staging yang dinilai tidak aman, alih-alih diam-diam menarik pekerjaan yang tidak terkait ke dalam sebuah commit.

Kempt juga disebut mendukung formatter yang menyediakan kemampuan pemformatan sebagian, yaitu google-java-format dan ktfmt pada versi mendatang.

Dokumentasi

Rincian penggunaan dan konfigurasi kempt secara lengkap disediakan di berkas README.md pada repositori proyek tersebut.

Sumber: Zac Sweers

Your experience on this site will be improved by allowing cookies Cookie Policy