Convalida / rilascio di codici Elisp


8

Attualmente uso:

(checkdoc)
(byte-compile-file (buffer-file-name))
(package-buffer-info)

per convalidare il codice Elisp. Questo mi porta ad alcuni stupidi errori ed è facile risolverli.

L'intenzione del codice può essere verificata tramite il C-x h C-M-\ C-x C-s M-x vc-difffile if in VCS.

Quali metodi devo usare per convalidare il codice Elisp per errori comuni?

Risposte:


6

Ci sono un paio di altre opzioni:

  • elint-defun, elint-filee amici integrati in Emacs. elint cerca principalmente variabili indefinite, errori di ortografia e chiamate di funzioni errate. L'ho trovato di scarsa utilità, dato che al giorno d'oggi il compilatore di byte rileva la maggior parte (se non tutti) di questi errori. È anche dolorosamente lento poiché analizza anche tutte le librerie dipendenti e, peggio ancora, soffoca regolarmente le macro. Ad esempio, l'applicazione di elint su codice che fa un uso pesante di pcasefornisce moltissimi falsi positivi.
  • flycheck-package fornisce alcuni suggerimenti utili oltre al compilatore di byte e al checkdoc. I manutentori di MELPA lo usano per controllare i pacchetti inviati per quanto ne so, e io stesso lo uso nei miei pacchetti per proteggermi dai difetti di formattazione nelle intestazioni dei pacchetti.

A parte questo, però, non c'è nulla sul tavolo da sfilacciare di Emacs Lisp. In particolare, ci mancano le linter che cercano codice unidiomatico, uso errato dell'API, cose mancanti, ecc. Ad esempio, non c'è nulla che ti dica che dovresti sostituire i riferimenti ~/.emacs.dnel tuo codice Elisp con user-emacs-directoryo anche meglio locate-user-emacs-file, o avvisa di defcustoms con mancanti :typeo :group, eccetera.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.