[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r103216: * lisp/emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two,
Stefan Monnier <=