Validando / Conectando Código Elisp

8

Atualmente eu uso:

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

para validar o código Elisp. Isso me leva a erros estúpidos e é fácil resolvê-los.

A intenção do código pode ser verificada via C-x h C-M-\ C-x C-s M-x vc-diffarquivo if no VCS.

Quais métodos devo usar para validar o código Elisp para erros comuns?

gavenkoa
fonte

Respostas:

6

Existem algumas outras opções:

  • elint-defun, elint-fileE amigos que são incorporados para Emacs. elint procura principalmente variáveis ​​indefinidas, erros de ortografia e chamadas de funções incorretas. Eu achei isso de pouco uso, já que o compilador de bytes hoje em dia também captura a maioria (se não todos) desses erros. Também é dolorosamente lento, pois analisa todas as bibliotecas dependentes e, pior ainda, engasga regularmente com macros. Por exemplo, a aplicação de elint no código que faz uso pesado pcasefornece uma enorme quantidade de falsos positivos.
  • O flycheck-package fornece algumas dicas interessantes além do compilador de bytes e do checkdoc. Os mantenedores do MELPA o utilizam para verificar os pacotes enviados, tanto quanto eu sei, e eu mesmo os uso nos meus pacotes para proteger contra falhas de formatação nos cabeçalhos dos pacotes.

Fora isso, porém, não há nada na mesa para o Emacs Lisp. Em particular, sentimos falta de linters que capturam código unidiomatic, uso incorreto da API, coisas ausentes, etc. Por exemplo, não há nada que lhe diga que você deve substituir as referências ~/.emacs.dno seu código Elisp por, user-emacs-directoryou melhor ainda locate-user-emacs-file, ou avisar sobre defcustoms com falta :typeou :group, etc.

lunaryorn
fonte