Formatter C, C++, Java, JavaScript, JSON, Objective-C, dan C# berbasis Clang untuk lingkungan Node.js
(clang-format-node.lumir.page)Saya telah mengembangkan formatter untuk C, C++, Java, JavaScript, JSON, Objective-C, dan C# berbasis Clang di lingkungan Node.js. Proyek ini merupakan proyek baru yang dibangun berdasarkan paket angular clang-format yang sudah tidak lagi dipelihara (deprecated).
Saat ini banyak orang menunjukkan minat, dan berkat banyak pengguna legacy yang bermigrasi, jumlah unduhan bulanan telah melampaui 20.000 kali.
Selain itu, paket ini telah mencapai full test coverage, dan karena sudah ada PR yang diajukan untuk mengubah Node.js core agar menggunakan paket ini sebagai pengganti proyek angular clang-format yang lama, sepertinya Anda bisa mempercayai stabilitasnya dan menggunakannya dengan tenang.
Paket ini adalah formatter berbasis clang-format dari Clang, compiler C terkenal dari LLVM, yang menangani formatting kode untuk berbagai bahasa seperti C, C++, dan Java. Fungsinya sama seperti Prettier, salah satu paket paling terkenal di lingkungan Node.js.
Namun, karena paket Prettier tidak mendukung formatting untuk bahasa native seperti C, C++, dan Java, clang-format sering digunakan untuk menangani formatting di bahasa-bahasa tersebut.
clang-format di lingkungan Node.js sangat berguna terutama ketika Anda perlu menulis kode JavaScript dan kode native seperti C dan C++ secara bersamaan, seperti dalam pengembangan Node.js core. Pada clang-format lama, untuk menggunakan versi terbaru dari paket tersebut Anda harus memasang dependensi tambahan, tetapi dengan paket ini hal itu tidak diperlukan.
Selain itu, paket clang-format lama cukup sulit diintegrasikan ke workflow yang menggunakan Node.js dan npm seperti CI, tetapi dengan paket ini Anda cukup mengunduhnya dari npm dan mengatur skrip sederhana, sehingga ada banyak keuntungan di lingkungan CI.
Poin-poin utamanya adalah sebagai berikut:
- Bahasa yang didukung: C, C++, Java, JavaScript, JSON, Objective‑C, C# — formatter berbasis
clang-format - Fully Secure Binaries: dibangun langsung dari source resmi LLVM. Terverifikasi sepenuhnya dengan GitHub Actions Attestation Provenances dan npm Build Provenances
- Zero dependencies: tidak memerlukan Python, toolchain C++, atau subdependensi npm — berjalan hanya dengan Node.js murni
- Drop-in replacement: dirancang untuk menggantikan
angular/clang-formatyang deprecated - Dukungan platform luas: mendukung beragam OS/arsitektur, versi Node.js, image runner GitHub Actions, image build Docker, dan lainnya
- Ramah CI: integrasi CI dimungkinkan dengan instalasi npm + skrip sederhana — tanpa pengaturan native yang rumit
- Build dan rilis otomatis: setiap ada pembaruan
clang-format, GitHub Actions akan membangun, memverifikasi, dan membuat PR → secara otomatis menerbitkan versi baru ke npm - Indikator stabilitas: mencapai full test coverage, melampaui 20.000 unduhan bulanan, dan PR penggantian paket
angularlama sedang berjalan di Node.js core - Fitur baru (1.2.0): wrapper
git-clang-format— hanya memformat 'baris yang berubah' pada file yang diubah untuk meminimalkan kerusakan riwayat commit di repositori besar
Mengapa git-clang-format penting?
- Reformat seluruh repositori dapat mengotori riwayat commit pada proyek besar.
git-clang-formathanya memformat baris yang benar-benar Anda ubah, sehingga adopsi bertahap menjadi mungkin dan konsistensi style bisa tercapai secara alami seiring waktu.- Seperti
lint-staged, penerapannya bisa lebih detail pada tingkat baris, bukan tingkat file.
Cocok untuk situasi seperti apa?
- Repositori yang mencampurkan Node.js dengan kode native seperti C/C++/Java
- Saat ingin menerapkan format secara sederhana di pipeline CI tanpa memasang toolchain native
- Migrasi yang aman bagi pengguna legacy yang sebelumnya memakai
angular/clang-format
Tautan
- Dokumentasi resmi: https://clang-format-node.lumir.page
- Repositori: https://github.com/lumirlumir/npm-clang-format-node
Belum ada komentar.