Fungsi alat ini
Formatter Ruby menulis ulang kode Ruby dengan indentasi dan spasi yang konsisten. Tempel skrip, model Rails, atau Rakefile, dan hasilnya kembali dengan indentasi dua spasi, satu pernyataan per baris, spasi di sekitar operator dan di dalam kurung kurawal, serta rantai method yang panjang dipecah agar muat dalam lebar baris.
Alat ini memakai Syntax Tree yang berjalan di interpreter Ruby asli yang dikompilasi ke WebAssembly. Karena parser-nya milik Ruby sendiri, sintaks modern seperti endless method, pattern matching, dan keyword argument dipahami persis seperti Ruby memahaminya.
Cara menggunakannya
- Tempel kode Ruby, atau buka file
.rb. - Tunggu hasil pertama. Interpreter diunduh sekali, di latar belakang.
- Pilih Lebar baris. Baris yang lebih panjang dari ini dipecah di pemanggilan method, argumen, atau entri hash.
- Salin atau unduh kode yang sudah diformat.
Jika kode tidak bisa diurai, alat ini menampilkan kesalahan sintaks dari Ruby, misalnya syntax error, unexpected 'end', agar Anda bisa menemukan bagian yang hilang.
Contoh
Contohnya adalah modul keranjang belanja kecil yang ditulis tanpa memperhatikan tata letak: isi class yang tidak diindentasi, initialize yang ditulis dalam satu baris dengan titik koma, hash tanpa spasi, dan operator ternary tanpa spasi di sekitar >. Setelah diformat, modul dan class diindentasi, setiap pernyataan di initialize mendapat barisnya sendiri, literal hash menjadi { name: name, price: price, qty: qty }, dan ternary-nya menjadi cart.total > 10 ? "big order" : "small order".
Yang tidak diubah
Formatter hanya mengubah tata letak. Formatter tidak mengganti nama variabel, mengubah hash rocket ke sintaks baru, atau beralih antara kutip tunggal dan ganda. Komentar dipertahankan. Jika Anda membutuhkan perbaikan gaya seperti itu, jalankan autocorrect RuboCop di proyek Anda setelah memformat.
Tips
- Gunakan lebar baris yang sama dengan
.rubocop.ymlproyek Anda (Layout/LineLength) agar kode yang diformat lolos linter. - Memformat adalah cara cepat menemukan
endyang hilang: Ruby melaporkan tempat ia berhenti, biasanya tepat setelah blok yang tidak ditutup.
FAQ
› Formatter apa yang dipakai?
Syntax Tree, formatter Ruby di balik plugin Ruby resmi Prettier. Formatter ini berjalan di CRuby, interpreter Ruby standar, yang dikompilasi ke WebAssembly, sehingga kode Anda diurai persis seperti cara Ruby mengurainya.
› Mengapa proses pertama lambat?
Saat pertama kali Anda memformat sesuatu, halaman mengunduh interpreter Ruby dan formatter-nya, sekitar 13 MB, lalu menjalankannya di background worker agar halaman tetap responsif. Setelah itu, pemformatan hanya butuh sepersekian detik.
› Apakah mengikuti gaya RuboCop?
Sebagian besar ya. Syntax Tree menghasilkan indentasi dua spasi, spasi di dalam kurung kurawal hash dan di sekitar operator, serta satu baris kosong di antara method, yang sesuai dengan aturan layout bawaan RuboCop. Formatter ini tidak mengubah gaya kutip atau menulis ulang kode seperti yang dilakukan `rubocop -a`.
› Apakah kode saya diunggah?
Tidak. Semuanya berjalan di browser Anda dan tidak ada yang dikirim ke server.