emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r103216: * lisp/emacs-lisp/smie.el (s


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103216: * lisp/emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two
Date: Thu, 10 Feb 2011 14:40:17 -0500
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103216
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2011-02-10 14:40:17 -0500
message:
  * 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.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/smie.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-02-10 19:37:42 +0000
+++ b/lisp/ChangeLog    2011-02-10 19:40:17 +0000
@@ -1,5 +1,11 @@
 2011-02-10  Stefan Monnier  <address@hidden>
 
+       * 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.
 

=== modified file 'lisp/emacs-lisp/smie.el'
--- a/lisp/emacs-lisp/smie.el   2011-01-25 04:08:28 +0000
+++ b/lisp/emacs-lisp/smie.el   2011-02-10 19:40:17 +0000
@@ -915,7 +915,7 @@
                      ;; 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 @@
           (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 @@
   (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 @@
 
 (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


reply via email to

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