[slime-devel] indentation ???
Helmut Eller
e9626484 at stud3.tuwien.ac.at
Sun Oct 17 19:00:57 UTC 2004
"Pascal J.Bourguignon" <pjb at informatimago.com> writes:
> Indentation with slime:
>
> (DEFMACRO DEFTRANSLATION (TABLE TEXT LANGUAGE TRANSLATION
> &REST LANGS-TRANS)
> `(PROGN
> (DEFVAR ,TABLE (MAKE-HASH-TABLE :TEST (FUNCTION EQUAL)))
> (SETF ,@(DO ((LT (CONS LANGUAGE (CONS TRANSLATION LANGS-TRANS)))
> (RESULT ,()))
> ((NULL LT) (NREVERSE RESULT))
> (PUSH `(GETHASH (CONS ,TEXT ,(POP LT)) ,TABLE))
> (LET ((TRANS (POP LT)))
> (IF (EQ TRANSLATION :IDEM) `,TEXT `,TRANSLATION)))))
> );;DEFTRANSLATION
>
>
> (DEFUN LOCALIZE (TABLE LANGUAGE TEXT)
> "
> RETURN: A version of the text in the given language.
> "
> (LET ((SYM (INTERN-SOFT TEXT TABLE)))
> (IF SYM
> (LET ((RESULT (GET SYM LANGUAGE)))
> (IF RESULT
> RESULT
> (LOCALIZE TABLE :EN TEXT)))
> TEXT)));;LOCALIZE
>
>
> The slime-indentation of &REST is right, but all the rest is wrong.
> How could I disable it?
As far as I can see, only the forms beginning with "`(progn" and
",@(do" are wrong.
Emacs thinks the backquoted list is some generic data and not code.
In newer Emacsen have a variable lisp-backquote-indentation to control
this. Setting it to t should give better results. But I think there
a bug in common-lisp-indent-function, because I can't see any the
reason why ",@(do" should ever be considered as data. I think I fixed
that in the cl-inded.el file which is now included in SLIME. See the
other message.
Helmut.
More information about the slime-devel
mailing list