From 9517f8af147c034fd2242377a5212c8de4115e1f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 10 Feb 2011 14:40:17 -0500 Subject: [PATCH] * lisp/emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two conflicting ways. (smie-indent--parent): Extend to "parent of arg". (smie-indent-inside-string): New function. (smie-indent-functions): Use it. --- lisp/ChangeLog | 6 ++++++ lisp/emacs-lisp/smie.el | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 70dc7697814..e89003e724b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2011-02-10 Stefan Monnier + * emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two + conflicting ways. + (smie-indent--parent): Extend to "parent of arg". + (smie-indent-inside-string): New function. + (smie-indent-functions): Use it. + * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid bzr locking race condition. diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index 702e8d880ba..e81a8b37981 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el @@ -915,7 +915,7 @@ This uses SMIE's tables and is expected to be placed on `post-self-insert-hook'. ;; anything else than this trigger char, lest we'd blink ;; both when inserting the trigger char and when ;; inserting a subsequent trigger char like SPC. - (or (eq (point) pos) + (or (eq (char-before) last-command-event) (not (memq (char-before) smie-blink-matching-triggers))) (or smie-blink-matching-inners @@ -998,7 +998,10 @@ the beginning of a line." (unless (numberp (cadr (assoc tok smie-grammar))) (goto-char pos)) (setq smie--parent - (smie-backward-sexp 'halfsexp)))))) + (or (smie-backward-sexp 'halfsexp) + (let (res) + (while (null (setq res (smie-backward-sexp)))) + (list nil (point) (nth 2 res))))))))) (defun smie-rule-parent-p (&rest parents) "Return non-nil if the current token's parent is among PARENTS. @@ -1403,6 +1406,10 @@ should not be computed on the basis of the following token." (and (nth 4 (syntax-ppss)) 'noindent)) +(defun smie-indent-inside-string () + (and (nth 3 (syntax-ppss)) + 'noindent)) + (defun smie-indent-after-keyword () ;; Indentation right after a special keyword. (save-excursion @@ -1476,8 +1483,9 @@ should not be computed on the basis of the following token." (defvar smie-indent-functions '(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-comment smie-indent-comment-continue smie-indent-comment-close + smie-indent-comment-inside smie-indent-inside-string + 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 -- 2.11.4.GIT