Elisp-Code validieren / fusseln

8

Derzeit benutze ich:

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

um Elisp-Code zu validieren. Das bringt mir einige dumme Fehler und es ist einfach, sie zu beheben.

Der beabsichtigte Code kann über die C-x h C-M-\ C-x C-s M-x vc-diffif-Datei unter VCS überprüft werden .

Welche Methoden sollte ich verwenden, um Elisp-Code auf häufige Fehler zu überprüfen?

Gavenkoa
quelle

Antworten:

6

Es gibt noch einige andere Möglichkeiten:

  • elint-defun, elint-fileUnd Freunde, die Emacs-in gebaut werden. elint sucht hauptsächlich nach undefinierten Variablen, Rechtschreibfehlern und falschen Funktionsaufrufen. Ich fand es wenig nützlich, da der Byte-Compiler heutzutage auch die meisten (wenn nicht alle) dieser Fehler abfängt. Es ist auch schmerzhaft langsam, da es auch alle abhängigen Bibliotheken analysiert und, noch schlimmer, regelmäßig Makros verschluckt. Zum Beispiel pcaseliefert das Anwenden von elint auf Code, der viel Gebrauch macht, eine Menge falsch positiver Ergebnisse .
  • Das flycheck-Paket bietet einige nette Lints jenseits des Byte-Compilers und des Checkdocs. MELPA-Betreuer verwenden es, soweit ich weiß, um eingereichte Pakete zu überprüfen, und ich selbst verwende es in meinen Paketen, um mich vor Formatierungsfehlern in Paket-Headern zu schützen.

Davon abgesehen steht für Emacs Lisp jedoch nichts auf dem Flusentisch. Insbesondere vermissen wir Linters, die nach unidiomatischem Code, falscher API-Verwendung, fehlenden Dingen usw. ~/.emacs.dsuchen . Zum Beispiel gibt es nichts, was Ihnen sagt, dass Sie Verweise in Ihrem Elisp-Code durch user-emacs-directoryoder noch besser ersetzen sollten locate-user-emacs-file, oder warnt vor defcustoms durch fehlendes :typeoder :group, usw.

Mondhorn
quelle