emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r114561: * lisp/emacs-lisp/smie.el (smie-next-sexp):


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r114561: * lisp/emacs-lisp/smie.el (smie-next-sexp): Refine last fix.
Date: Mon, 07 Oct 2013 16:56:57 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114561
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2013-10-07 12:56:51 -0400
message:
  * lisp/emacs-lisp/smie.el (smie-next-sexp): Refine last fix.
  * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Tweak handling of
  open braces.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/emacs-lisp/smie.el        smie.el-20100517192034-xap3ihmey43772vj-1
  lisp/progmodes/ruby-mode.el    
rubymode.el-20091113204419-o5vbwnq5f7feedwu-8804
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-10-07 15:40:24 +0000
+++ b/lisp/ChangeLog    2013-10-07 16:56:51 +0000
@@ -1,5 +1,10 @@
 2013-10-07  Stefan Monnier  <address@hidden>
 
+       * progmodes/ruby-mode.el (ruby-smie-rules): Tweak handling of
+       open braces.
+
+       * emacs-lisp/smie.el (smie-next-sexp): Refine last fix.
+
        * textmodes/css-mode.el (css-smie-rules): Fix indentation (bug#15467).
        (css-mode): Use electric-indent-chars.
 

=== modified file 'lisp/emacs-lisp/smie.el'
--- a/lisp/emacs-lisp/smie.el   2013-10-05 18:37:08 +0000
+++ b/lisp/emacs-lisp/smie.el   2013-10-07 16:56:51 +0000
@@ -709,11 +709,13 @@
                 (condition-case err
                     (progn (funcall next-sexp 1) nil)
                   (scan-error
-                   (let ((pos (nth 2 err)))
+                   (let ((epos (nth 2 err)))
+                     (goto-char pos)
                      (throw 'return
-                            (list t pos
+                            (list t epos
                                   (buffer-substring-no-properties
-                                   pos (+ pos (if (< (point) pos) -1 1))))))))
+                                   epos
+                                   (+ epos (if (< (point) epos) -1 1))))))))
                 (if (eq pos (point))
                     ;; We did not move, so let's abort the loop.
                     (throw 'return (list t (point))))))

=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el       2013-10-07 03:38:26 +0000
+++ b/lisp/progmodes/ruby-mode.el       2013-10-07 16:56:51 +0000
@@ -414,7 +414,8 @@
     (`(:before . ,(or `"(" `"[" `"{"))
      ;; Treat purely syntactic block-constructs as being part of their parent,
      ;; when the opening statement is hanging.
-     (if (smie-rule-hanging-p) (smie-rule-parent)))
+     (when (smie-rule-hanging-p)
+       (smie-backward-sexp 'halfsexp) (smie-indent-virtual)))
     (`(:after . "=") 2)
     (`(:before . "do")
      (when (or (smie-rule-hanging-p)


reply via email to

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