Mercurial > emacs
changeset 110464:27917ce150c1
* lisp/emacs-lisp/smie.el (smie-debug--describe-cycle): Fix typo.
(smie-indent-comment): Be more careful with comment-start-skip.
(smie-indent-comment-close, smie-indent-comment-inside): New funs.
(smie-indent-functions): Use them.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 21 Sep 2010 23:18:08 +0200 |
parents | 3132ab826fc5 |
children | b7b7e970d807 |
files | lisp/ChangeLog lisp/emacs-lisp/smie.el |
diffstat | 2 files changed, 31 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Sep 21 21:33:59 2010 +0200 +++ b/lisp/ChangeLog Tue Sep 21 23:18:08 2010 +0200 @@ -1,3 +1,10 @@ +2010-09-21 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/smie.el (smie-debug--describe-cycle): Fix typo. + (smie-indent-comment): Be more careful with comment-start-skip. + (smie-indent-comment-close, smie-indent-comment-inside): New funs. + (smie-indent-functions): Use them. + 2010-09-21 Michael Albinus <michael.albinus@gmx.de> * net/ange-ftp.el (ange-ftp-skip-msgs): Add "^504 ..." message.
--- a/lisp/emacs-lisp/smie.el Tue Sep 21 21:33:59 2010 +0200 +++ b/lisp/emacs-lisp/smie.el Tue Sep 21 23:18:08 2010 +0200 @@ -338,7 +338,7 @@ res)) cycle))) (mapconcat - (lambda (elems) (mapconcat 'indentity elems "=")) + (lambda (elems) (mapconcat 'identity elems "=")) (append names (list (car names))) " < "))) @@ -1173,7 +1173,11 @@ ;; front of a comment" when doing virtual-indentation anyway. And if we are ;; (as can happen in octave-mode), moving forward can lead to inf-loops. (and (smie-indent--bolp) - (looking-at comment-start-skip) + (let ((pos (point))) + (save-excursion + (beginning-of-line) + (and (re-search-forward comment-start-skip (line-end-position) t) + (eq pos (or (match-end 1) (match-beginning 0)))))) (save-excursion (forward-comment (point-max)) (skip-chars-forward " \t\r\n") @@ -1194,6 +1198,20 @@ (if (looking-at (regexp-quote continue)) (current-column)))))))) +(defun smie-indent-comment-close () + (and (boundp 'comment-end-skip) + comment-end-skip + (not (looking-at " \t*$")) ;Not just a \n comment-closer. + (looking-at comment-end-skip) + (nth 4 (syntax-ppss)) + (save-excursion + (goto-char (nth 8 (syntax-ppss))) + (current-column)))) + +(defun smie-indent-comment-inside () + (and (nth 4 (syntax-ppss)) + 'noindent)) + (defun smie-indent-after-keyword () ;; Indentation right after a special keyword. (save-excursion @@ -1275,9 +1293,10 @@ (current-column))))))) (defvar smie-indent-functions - '(smie-indent-fixindent smie-indent-bob smie-indent-close smie-indent-comment - smie-indent-comment-continue smie-indent-keyword smie-indent-after-keyword - smie-indent-exps) + '(smie-indent-fixindent smie-indent-bob smie-indent-close + smie-indent-comment smie-indent-comment-continue smie-indent-comment-close + smie-indent-comment-inside smie-indent-keyword smie-indent-after-keyword + smie-indent-exps) "Functions to compute the indentation. Each function is called with no argument, shouldn't move point, and should return either nil if it has no opinion, or an integer representing the column