Jika menyimpan berkas yang dihasilkan (generated file) di VS Code pada Mac Anda terus mengubah isinya, pertama-tama identifikasi formatter mana yang sedang berjalan. Pengaturan editor.formatOnSave pada VS Code menerapkan pemformatan saat berkas disimpan, tetapi VS Code tidak menyediakan pola jalur (path pattern) bawaan yang mengecualikan berkas tertentu dari pengaturan tersebut. Untuk formatter seperti Prettier, gunakan berkas ignore miliknya sendiri; jika tidak, matikan format-on-save pada cakupan (scope) yang sesuai dengan berkas yang perlu Anda lindungi.

Identifikasi apa yang mengubah berkas

VS Code dapat memformat saat menyimpan melalui editor.formatOnSave, dan ekstensi bahasa dapat menyediakan formatter. Code Action saat menyimpan, seperti merapikan impor (organizing imports), adalah pengaturan terpisah dan juga dapat mengubah konten berkas. Dokumentasi pengeditan VS Code menjelaskan format-on-save; panduan Code Actions on Save membahas tindakan saat penyimpanan.

Untuk mempersempit penyebabnya, buka berkas yang dihasilkan, periksa mode bahasanya di bilah status, dan cari formatOnSave serta codeActionsOnSave di Settings. Filter @modified di Settings dapat membantu menampilkan nilai yang dikonfigurasi. Jika berkas tetap berubah meskipun pemformatan dimatikan, periksa ekstensi yang terpasang dan skrip proyek: generator atau tindakan penyimpanan lain mungkin bertanggung jawab. Menonaktifkan pemformatan tidak akan menghentikan alat independen untuk menulis ulang berkas tersebut.

Kecualikan jalur yang dihasilkan saat menggunakan Prettier

Jika Prettier adalah formatter-nya, tambahkan jalur berkas yang dihasilkan ke .prettierignore di root proyek. Misalnya, untuk melewati berkas yang dihasilkan di bawah src/generated, gunakan entri ini:

src/generated/

Prettier mendokumentasikan .prettierignore sebagai mekanisme pengecualian berkasnya dan menyatakan bahwa integrasi editor dapat menggunakannya. Polanya menggunakan sintaksis Git-ignore. Ini adalah opsi paling terarah ketika Anda ingin format-on-save tetap berjalan untuk berkas lain yang ditangani oleh Prettier. Pastikan bahwa formatter yang dipilih untuk berkas ini benar-benar Prettier; formatter lain mungkin menggunakan aturan atau kontrol pengabaian yang berbeda. Prettier: Ignoring Code

Nonaktifkan pemformatan pada cakupan VS Code yang sesuai

Di Mac, tekan ⇧⌘P dan jalankan Preferences: Open User Settings (JSON) untuk perubahan global, atau Preferences: Open Workspace Settings (JSON) untuk hanya memengaruhi proyek saat ini. Berkas workspace disimpan di folder .vscode milik proyek. VS Code mendokumentasikan kedua cakupan pengaturan tersebut beserta perintah Mac-nya di User and workspace settings.

Untuk menghentikan pemformatan saat menyimpan hanya di seluruh ruang kerja (workspace) ini, tambahkan pengaturan di bawah ini ke objek JSON yang sudah ada. Pertahankan pengaturan lain yang sudah ada di sana, dan tambahkan koma jika diperlukan:

{
  "editor.formatOnSave": false
}

Untuk pengecualian pada cakupan seluruh bahasa, arahkan pengaturan tersebut ke bahasa terkait. Ganti typescript dengan pengidentifikasi bahasa VS Code yang sebenarnya untuk berkas tersebut, yang dapat Anda periksa dari bilah status:

{
  "[typescript]": {
    "editor.formatOnSave": false
  }
}

Ini menonaktifkan format-on-save untuk setiap berkas dalam bahasa tersebut pada cakupan yang dipilih, bukan hanya jalur yang dihasilkan. Pengaturan juga dapat ditimpa oleh cakupan yang lebih spesifik, jadi jika berkas masih berubah, cari @modified dan periksa pengaturan pengguna (user) dan ruang kerja (workspace) serta blok khusus bahasa apa pun. Referensi pengaturan VS Code mendokumentasikan pengaturan khusus bahasa dan urutan prioritasnya.

Periksa tindakan saat menyimpan secara terpisah

Jika pemformatan sudah dimatikan tetapi penyimpanan masih menyusun ulang impor atau menerapkan perbaikan, periksa editor.codeActionsOnSave. Pengaturan ini mengontrol tindakan seperti merapikan impor dan perbaikan otomatis (fix-all). Hapus atau ubah hanya tindakan yang menyebabkan penulisan ulang tersebut; menonaktifkan pengaturan ini secara keseluruhan juga dapat menghilangkan perilaku penyimpanan yang berguna. Dokumentasi Code Actions on Save dari VS Code menjelaskan kontrol yang didukung.

Jangan gunakan files.exclude sebagai pengaman pemformatan: VS Code mendokumentasikannya sebagai pengaturan visibilitas Explorer, bukan kontrol atas apakah formatter mengedit berkas atau tidak. Jika formatter tidak memiliki fitur pengabaian berbasis jalur dan hanya beberapa berkas yang dihasilkan yang terpengaruh, opsi praktis di VS Code adalah menonaktifkan format-on-save untuk bahasa atau ruang kerja tersebut, lalu memformat berkas biasa secara manual dengan Format Document (⇧⌥F) saat dibutuhkan. VS Code mendokumentasikan perintah tersebut di Basic editing.

Untuk berkas yang dihasilkan yang harus tetap stabil byte-demi-byte, utamakan mekanisme pengabaian yang terdokumentasi dari formatter itu sendiri jika tersedia. Jika tidak, gunakan cakupan pengaturan VS Code tersempit yang tersedia, lalu simpan berkas representatif yang dihasilkan dan periksa diff untuk mengonfirmasi perilaku mana yang bertanggung jawab.

Sumber