Validation / peluchage du code Elisp

8

Actuellement j'utilise:

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

pour valider le code Elisp. Cela me prend quelques erreurs stupides et il est facile de les résoudre.

L'intention de code peut être vérifiée via C-x h C-M-\ C-x C-s M-x vc-diffsi le fichier sous VCS.

Quelles méthodes dois-je utiliser pour valider le code Elisp pour les erreurs courantes?

gavenkoa
la source

Réponses:

6

Il y a quelques autres options:

  • elint-defun, elint-fileet amis intégrés à Emacs. elint recherche principalement des variables non définies, des fautes d'orthographe et des appels de fonction incorrects. Je l'ai trouvé de peu d'utilité, car le compilateur d'octets détecte de nos jours la plupart (sinon la totalité) de ces erreurs. Il est également extrêmement lent car il analyse également toutes les bibliothèques dépendantes et, pire encore, s'étouffe régulièrement avec les macros. Par exemple, appliquer elint sur du code qui fait un usage intensif de pcasedélivre énormément de faux positifs.
  • flycheck-package fournit de jolies astuces au-delà du compilateur d'octets et de checkdoc. Les responsables de MELPA l'utilisent pour vérifier les packages soumis pour autant que je sache, et je l'utilise moi-même dans mes packages pour me protéger contre les défauts de formatage dans les en-têtes de packages.

À part cela, cependant, il n'y a rien sur la table à peluches pour Emacs Lisp. En particulier, nous manquons bourres que les prises pour le code unidiomatic, une mauvaise utilisation de l' API, les choses manquantes, etc. Par exemple, il n'y a rien qui vous indique que vous devez remplacer les références à ~/.emacs.dvotre code Elisp avec user-emacs-directoryou mieux encore locate-user-emacs-file, ou met en garde contre defcustoms avec manquant :typeou :group, etc.

lunaryorn
la source