Bagaimana saya bisa menekan peringatan "assignment to free variable" ketika byte mengkompilasi file emacs lisp?
Saya sebenarnya sebagian besar tertarik untuk menekannya untuk buffer tertentu ketika menggunakan flycheck, tapi saya mengerti ini hanya meneruskan ke byte compiler.
Akan lebih baik untuk mendapatkan daftar semua peringatan / kesalahan yang dapat ditekan.
UPDATE :
Demi kelengkapan, izinkan saya untuk mengklarifikasi bahwa ada banyak (bahasa agnostik) alasan untuk menonaktifkan peringatan kompiler. Beberapa contoh: untuk memudahkan transisi kode lawas ke kerangka kerja yang diperkuat serat, agar file awal dan resep dijalankan dalam konteks langsung, untuk menghilangkan kebisingan sambil memperbaiki masalah prioritas yang lebih tinggi, atau karena kompiler salah.
sumber
defvar
atau tidak adarequire
.(defvar the-variable)
. Ini membungkam peringatan hanya untuk variabel itu, sehingga Anda masih bisa mendapatkannya untuk variabel lain.Jawaban:
Untuk kepentingan pembaca yang tidak mengerti yang tiba di sini, izinkan saya melakukan sedikit penyimpangan untuk mengatakan bahwa peringatan ini umumnya mengarah ke masalah kode nyata (dan ketika mereka tidak, Anda dapat menekan mereka berdasarkan basis per variabel) sehingga orang harus meneliti apa yang mereka maksud sebelum menonaktifkannya.
Tentu saja, saya tidak ragu bahwa Anda tahu mengapa Anda harus menonaktifkannya, jadi jawabannya ada di bawah ini.
Jawabannya
Untuk menonaktifkan peringatan ini (atau lainnya), Anda harus mengatur nilai
byte-compile-warnings
. Anda bisa melakukan ini sebagai variabel file-lokal dengan menambahkan potongan berikut di akhir file.Anda juga dapat mengatur ini secara global.
Anda dapat mengganti
(not free-vars)
dengan(not free-vars callargs unresolved)
dan peringatan apa pun yang ingin Anda tekan. Daftar lengkap peringatan yang dapat dimasukkan / ditekan ditemukan pada docstring variabel (di bawah).sumber