(calculate-lisp-indent): In the

case of alignment under a constant symbol, find and consider
the sexp actually at indentation to be the "last sexp".
This commit is contained in:
Thien-Thi Nguyen 2007-07-21 09:06:17 +00:00
parent 1d2646ccb6
commit 26716cc246
2 changed files with 16 additions and 0 deletions

View file

@ -932,6 +932,16 @@ is the buffer position of the start of the containing expression."
(goto-char indent-point)
(skip-chars-forward " \t")
(looking-at ":"))
;; The last sexp may not be at the indentation
;; where it begins, so find that one, instead.
(save-excursion
(goto-char calculate-lisp-indent-last-sexp)
(while (and (not (looking-back "^[ \t]*"))
(or (not containing-sexp)
(< (1+ containing-sexp) (point))))
(forward-sexp -1)
(backward-prefix-chars))
(setq calculate-lisp-indent-last-sexp (point)))
(> calculate-lisp-indent-last-sexp
(save-excursion
(goto-char (1+ containing-sexp))