Secara otomatis mengidentifikasi variabel-variabel usang dalam init-file


8

Ketika versi baru Emacs dirilis, biasanya beberapa variabel / perintah / fungsi menjadi usang. Mereka biasanya ditandai seperti itu dalam dokumentasi yang sesuai:

turn-on-eldoc-modeadalah alias untuk eldoc-modedalam eldoc.el. [...]

Fungsi ini sudah usang sejak 24.4 ; gunakan eldoc-modesaja.

Saya ingin memastikan saya tidak mereferensikan variabel yang sudah usang dalam init-file saya, tetapi saya juga ingin menghindari memeriksa semuanya secara manual.

Jadi pertanyaan saya adalah : Apakah ada cara untuk secara otomatis mengidentifikasi semua variabel usang dalam file init saya (yang mungkin juga berfungsi untuk paket pihak ketiga yang diinstal melalui manajer paket)?

Jawaban:


12

Byte-kompilasi file tersebut.

Secara umum, yang terbaik adalah tidak byte-compile file init Anda, tetapi ini berguna. Byte-compiler akan memperingatkan Anda tentang banyak praktik buruk, di antaranya adalah penggunaan variabel atau fungsi yang usang.

  1. Panggil M-x byte-compile-filedan berikan file init Anda.

  2. Setelah itu, pastikan Anda menghapus .elcfile yang dihasilkan .


2
Karena penasaran, apa alasannya untuk tidak meng-compile file init?
Dan

4
@Dan Keuntungannya bisa diabaikan. Sementara itu, kadang-kadang Anda mungkin lupa untuk mengkompilasi ulang setelah mengubahnya, dan dibiarkan bertanya-tanya mengapa perubahan Anda tidak berpengaruh.
Malabarba

4
@Dan: Selain apa yang dikatakan Malabarba, file init yang diberikan kadang-kadang (sering) digunakan untuk beberapa versi Emacs, dan mengompilasinya dengan byte dapat mengurangi portabilitas semacam ini.
Drew

Kalau-kalau itu tidak jelas: Anda dapat byte-kompilasi (untuk melihat peringatan dll) dan kemudian menghapus *.elc.
Drew

6
Itu sebabnya Anda harus menggunakan #'alih-alih 'untuk fungsi. Jika Anda mengompilasi sesuatu dengan (add-hook 'emacs-lisp-mode-hook #'turn-on-eldoc-mode)kompiler akan memperingatkan Anda.
Malabarba
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.