Jika satu proyek memerlukan pemformat kode (code formatter) yang berbeda, tetapkan pilihan di tingkat proyek: gunakan file konfigurasi proyek tersebut dan, jika Anda bekerja di Visual Studio Code, gunakan pengaturan ruang kerjanya (workspace settings). Hal ini menjaga pengaturan default pengguna VS Code Anda tetap utuh sekaligus membuat pilihan pemformatan proyek dapat direproduksi secara konsisten. Langkah-langkah di bawah ini berfokus pada macOS dan VS Code; editor lain mungkin menggunakan kontrol yang berbeda.

Tentukan apa arti “formatter” untuk proyek ini

Pertama, identifikasi bahasa dan kebutuhan sebenarnya. Sebuah formatter menulis ulang kode ke suatu gaya tertentu; pengaturan dasar editor mungkin hanya mengontrol indentasi, akhir baris (line endings), atau spasi (whitespace). Sebagai contoh, EditorConfig menyediakan properti gaya proyek yang dapat dibaca oleh editor yang mendukungnya, sedangkan Prettier adalah formatter dengan konfigurasi proyeknya sendiri. Alat-alat ini dapat saling melengkapi, tetapi file EditorConfig saja tidak memilih atau memasang formatter. EditorConfig menjelaskan format dan plugin editornya; panduan konfigurasi Prettier menjelaskan cara membaca file konfigurasi yang didukung.

Periksa formatter mana yang sudah digunakan oleh proyek sebelum menambahkan yang lain. Periksa manifes paketnya, konfigurasi formatter, dan dokumentasi proyek. Jika rekan tim atau pemeriksaan otomatis mengharapkan alat atau versi tertentu, menyelaraskan dengan pengaturan tersebut biasanya merupakan pilihan paling praktis. Memasang formatter pesaing atau mengubah opsinya dapat menghasilkan perbedaan kode (diffs) yang besar meskipun kodenya masih berfungsi.

Pilih tempat pengaturan yang tepat

Di VS Code, pengaturan pengguna (user settings) berlaku di seluruh penggunaan editor Anda, sedangkan pengaturan ruang kerja (workspace settings) berlaku untuk proyek yang dibuka dan lebih diprioritaskan daripada pengaturan pengguna. VS Code menyimpan pengaturan ruang kerja di dalam folder .vscode pada root proyek; pengaturan pengguna disimpan secara terpisah di direktori application support akun macOS Anda. Gunakan Command Palette (⇧⌘P) dan pilih Preferences: Open Workspace Settings (JSON) untuk mengedit pengaturan proyek. Pastikan editor Settings menampilkan keterangan Workspace sebelum mengubah apa pun. Dokumentasi pengaturan VS Code menjelaskan cakupan (scopes) dan lokasinya.

Untuk memilih formatter khusus bagi suatu bahasa dalam proyek ini, tambahkan entri default formatter khusus bahasa ke pengaturan ruang kerja. Misalnya, jika proyek menggunakan ekstensi VS Code Prettier untuk JavaScript, pengaturannya memiliki format seperti ini:

{
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

Gunakan pengidentifikasi ekstensi (extension identifier) untuk formatter yang benar-benar terpasang di editor Anda; contoh tersebut bukanlah pengidentifikasi universal. Jika proyek menyertakan beberapa bahasa, tambahkan entri untuk setiap bahasa yang relevan daripada menetapkan default global. Perintah Format Document With... di VS Code memungkinkan Anda memilih dari formatter yang tersedia untuk dokumen saat ini, dan tindakan formatnya dapat dijalankan dari Command Palette. Panduan pemformatan VS Code mendokumentasikan kontrol-kontrol tersebut. Hindari mengaktifkan format-on-save sebagai bagian dari perubahan terbatas ini kecuali Anda ingin setiap penyimpanan di proyek tersebut memicu pemformatan.

Simpan aturan formatter bersama proyek

Default formatter memilih sebuah alat; ini tidak menentukan semua aturan pemformatan alat tersebut. Simpan aturan bersama dalam file konfigurasi yang dikenali oleh formatter yang dipilih. Untuk Prettier, itu bisa berupa file .prettierrc.json di root proyek. Contoh minimal mungkin hanya menentukan opsi yang telah disepakati untuk digunakan oleh proyek:

{
  "singleQuote": true
}

Prettier mencari konfigurasi mulai dari file yang sedang diformat hingga ke direktori induknya, sehingga konfigurasi tingkat root dapat berlaku untuk file-file di bawahnya. Alat ini juga mendukung beberapa format konfigurasi lainnya; pilihlah salah satu yang didukung oleh versi proyek dan perkakas yang ada. Dokumentasi konfigurasi Prettier mencantumkan file yang didukung dan perilaku resolusinya.

Jika tujuannya hanya konsistensi indentasi atau akhir baris di berbagai editor, pertimbangkan untuk menggunakan file .editorconfig di tingkat root. Misalnya, root = true menghentikan pencarian file EditorConfig yang lebih jauh, dan properti seperti indent_style, indent_size, serta end_of_line dapat menentukan konvensi teks dasar. Dukungan editor bervariasi berdasarkan plugin, dan properti ini tidak menggantikan aturan pemformatan yang memahami bahasa pemrograman (language-aware). Spesifikasi dan ikhtisar EditorConfig menjelaskan cara file ditemukan dan bagaimana aturan yang cocok diterapkan.

Verifikasi cakupan sebelum Anda memformat

Simpan pengaturan ruang kerja dan konfigurasi, lalu buka kembali folder proyek di VS Code jika diperlukan. Buka satu file representatif dan gunakan Format Document With... untuk mengonfirmasi formatter yang dipilih. Jika formatter tidak terdaftar, periksa apakah ekstensinya telah terpasang dan mendukung bahasa tersebut; pengaturan ruang kerja tidak dapat memasang ekstensi atau menambahkan dukungan formatter dengan sendirinya.

Sebelum menerapkan pemformatan secara luas, periksa file-file yang terpengaruh di Source Control atau tampilan diff. Format sebagian kecil file yang representatif terlebih dahulu, terutama jika proyek memiliki aturan gaya yang sudah ada atau file-file yang digenerasi (generated files). Jika hasilnya tidak sesuai harapan, hentikan dan periksa apakah ada konfigurasi yang bertentangan di direktori induk, pengaturan khusus bahasa, atau formatter lain yang sudah diharapkan oleh proyek. Kembalikan perubahan pemformatan yang tidak diinginkan melalui alat kontrol sumber (source control) editor, lalu sesuaikan konfigurasi proyek dan ulangi pada sejumlah kecil file.

Ini membuat keputusan tetap terikat pada proyek: pengaturan default pengguna VS Code tetap berada dalam cakupan terpisahnya, sementara proyek dapat membawa pilihan formatter dan aturannya sendiri. Jika Anda berganti editor, pengaturan ruang kerja tidak akan ikut terbawa, jadi andalkan konfigurasi proyek dari formatter tersebut jika editor tersebut mendukungnya.

Sumber