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)?

itu hanya
sumber

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 .

Malabarba
sumber
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