La sangría de Emacs del código Emacs lisp es realmente genial, excepto por una cosa:
(defconst one-to-ten '(one two three
four five six seven
eight nine ten))
¿Es esta realmente la forma preferida de sangrar este bloque? Opuesto a
(defconst one-to-ten '(one two three
four five six seven
eight nine ten))
Me resulta especialmente confuso en comparación con el valor predeterminado para las listas:
(defconst one-to-ten '((one . 1) (two . 2) (three . 3)
(four . 4) (five . 5) (six . 6) (seven . 7)
(eight . 8) (nine . 9) (ten . 10)))
¿Hay alguna razón para este comportamiento? Posiblemente podría entenderlo para las listas entrecomilladas, ya que produciría una mejor sangría para las macros, pero ¿qué pasa con las listas?
indentation
Clemente
fuente
fuente
Indent the file using the default indentation parameters.
M-x report-emacs-bug
.Respuestas:
Aquí están las configuraciones que estoy usando para arreglar la sangría:
Traté de arreglar la sangría de Elisp en un momento, pero fue demasiado complicado y me di por vencido. Pero la configuración anterior ha funcionado bien durante años.
fuente
put
yget
formularios? ¿Reemplaza lascl-flet
instancias de la función conflet
ecl-labels
instanciaslabels
solo en elcommon-lisp-indent-function
? Si es así, ¿por qué se hace eso? Además, ¿qué hace el tercer puesto? Leí laput
documentación pero aún no tenía sentido. Se traduciría a "establecer el valor de lacommon-lisp-indent-function
propiedad delif
símbolo en 2", pero eso no tenía sentido para mí.'lisp-indent-function
(es decir, el predeterminado) es realmente mejor que'common-lisp-indent-function
. Esos ajustes hacen que la sangría se transfiera de uno a otro.(setq lisp-indent-function 'common-lisp-indent-function)
. El resto no tiene nada que ver con la sangría que se usará para una lista constante.