[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#16202: 24.3.50; lisp-mode's indent-sexp might be buggy (for slime in

From: npostavs
Subject: bug#16202: 24.3.50; lisp-mode's indent-sexp might be buggy (for slime in particular, and lisp in general)
Date: Sat, 04 Mar 2017 16:39:34 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

tags 16202 notabug

joaotavora@gmail.com (João Távora) writes:

> Hi maintainers,
> This was started by bug reports in the slime-devel mailing list
>   http://comments.gmane.org/gmane.lisp.slime.devel/11196
>   http://comments.gmane.org/gmane.lisp.slime.devel/11189
> The reproduction recipe described in these messages requires,
> unfortunately, that you install slime.

Unfortunately, it no longer works with current slime.

    Debugger entered--Lisp error: (void-function 

I can't find a definition of common-lisp-run-indentation-tests anywhere
in slime's code.

> which indented the two comment lines to comment-column, I think. The
> patch I attach at the end of this message fixes it.
> ...as does indenting the sexp with indent-region. This might be naive,
> but why not super-simplify indent-sexp to be something like this?

Both your patch and indent-region do not indent comments that occur
after code.  But I don't think doing this indentation is a bug, rather,
slime should change `comment-indent-function' and/or
`comment-insert-comment-function' so that comments will be indented in
the way it expects.

>       ;; unless a line ends inside a string.
>       (while (and (not inner-loop-done)
>                   (not (setq outer-loop-done (eobp))))
> +       (setq before-parse (point))
>         (setq state (parse-partial-sexp (point) (progn (end-of-line) (point))
>                                         nil nil state))
>         (setq next-depth (car state))
> !       ;; If the line contains nothing but a comment other than the sort that
> !       ;; is indented like code, indent it now with indent-for-comment.
> !       ;; Comments indented like code are right already.  In any case clear
> !       ;; the in-comment flag in the state because parse-partial-sexp never
> !       ;; sees the newlines.
> !       (when (car (nthcdr 4 state))
> !             (when (<= (nth 8 state) before-parse)

I think this would only indent comments starting at the beginning of the
line, which never need to be indented anyway...

> !               (indent-for-comment)
> !               (end-of-line))
> !             (setcar (nthcdr 4 state) nil))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]