emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r114927: * lisp/emacs-lisp/smie.el (smie-rule-parent


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r114927: * lisp/emacs-lisp/smie.el (smie-rule-parent): Always call
Date: Sun, 03 Nov 2013 22:56:06 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114927
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Sun 2013-11-03 17:56:03 -0500
message:
  * lisp/emacs-lisp/smie.el (smie-rule-parent): Always call
  smie-indent-virtual rather than only for hanging tokens.
  (smie--next-indent-change): New helper command.
  * lisp/progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): Remove.
  (ruby-smie-rules): Use smie-rule-parent instead.
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-11-03 19:25:29 +0000
+++ b/lisp/ChangeLog    2013-11-03 22:56:03 +0000
@@ -1,3 +1,12 @@
+2013-11-03  Stefan Monnier  <address@hidden>
+
+       * progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): Remove.
+       (ruby-smie-rules): Use smie-rule-parent instead.
+
+       * emacs-lisp/smie.el (smie-rule-parent): Always call
+       smie-indent-virtual rather than only for hanging tokens.
+       (smie--next-indent-change): New helper command.
+
 2013-11-03  Glenn Morris  <address@hidden>
 
        * Makefile.in (abs_srcdir): Remove.
@@ -25,8 +34,8 @@
 
 2013-11-02  Bozhidar Batsov  <address@hidden>
 
-       * emacs-lisp/package.el (package-version-join): Recognize
-       snapshot versions.
+       * emacs-lisp/package.el (package-version-join):
+       Recognize snapshot versions.
 
 2013-11-02  Bozhidar Batsov  <address@hidden>
 
@@ -34,8 +43,8 @@
 
 2013-11-02  Dmitry Gutov  <address@hidden>
 
-       * progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): New
-       function, replacement for `smie-rule-parent' for when we want to
+       * progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign):
+       New function, replacement for `smie-rule-parent' for when we want to
        skip over our direct parent if it's an assignment token..
        (ruby-smie-rules): Use it.
 

=== modified file 'lisp/emacs-lisp/smie.el'
--- a/lisp/emacs-lisp/smie.el   2013-10-24 21:16:20 +0000
+++ b/lisp/emacs-lisp/smie.el   2013-11-03 22:56:03 +0000
@@ -1236,15 +1236,7 @@
     (goto-char (cadr (smie-indent--parent)))
     (cons 'column
           (+ (or offset 0)
-             ;; Use smie-indent-virtual when indenting relative to an opener:
-             ;; this will also by default use current-column unless
-             ;; that opener is hanging, but will additionally consult
-             ;; rules-function, so it gives it a chance to tweak
-             ;; indentation (e.g. by forcing indentation relative to
-             ;; its own parent, as in fn a => fn b => fn c =>).
-             (if (or (not (numberp (car smie--parent)))
-                    (smie-indent--hanging-p))
-                 (smie-indent-virtual) (current-column))))))
+             (smie-indent-virtual)))))
 
 (defvar smie-rule-separator-outdent 2)
 
@@ -1837,6 +1829,15 @@
       (edebug-instrument-function smie-rules-function)
     (error "Sorry, don't know how to instrument a lambda expression")))
 
+(defun smie--next-indent-change ()
+  "Go to the next line that needs to be reindented (and reindent it)."
+  (interactive)
+  (while
+      (let ((tick (buffer-modified-tick)))
+        (indent-according-to-mode)
+        (eq tick (buffer-modified-tick)))
+    (forward-line 1)))
+
 ;;; User configuration
 
 ;; This is designed to be a completely independent "module", so we can play

=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el       2013-11-02 05:18:11 +0000
+++ b/lisp/progmodes/ruby-mode.el       2013-11-03 22:56:03 +0000
@@ -467,16 +467,6 @@
            (t ";")))
          (t tok)))))))
 
-(defun ruby-smie--rule-parent-skip-assign ()
-  (let* ((parent (smie-indent--parent))
-         (tok (caddr parent)))
-    (if (and (stringp tok) (string-match-p "[+-*&|^]?=\\'" tok))
-        (progn
-          (goto-char (cadr parent))
-          (let (smie--parent)
-            (smie-rule-parent)))
-      (smie-rule-parent))))
-
 (defun ruby-smie-rules (kind token)
   (pcase (cons kind token)
     (`(:elem . basic) ruby-indent-level)
@@ -499,7 +489,7 @@
       ((and (equal token "{")
             (not (smie-rule-prev-p "(" "{" "[" "," "=>" "=" "return" ";")))
        ;; Curly block opener.
-       (ruby-smie--rule-parent-skip-assign))
+       (smie-rule-parent))
       ((smie-rule-hanging-p)
        ;; Treat purely syntactic block-constructs as being part of their 
parent,
        ;; when the opening statement is hanging.
@@ -508,7 +498,7 @@
        (cons 'column  (smie-indent-virtual)))))
     (`(:after . ,(or "=" "iuwu-mod")) 2)
     (`(:after . " @ ") (smie-rule-parent))
-    (`(:before . "do") (ruby-smie--rule-parent-skip-assign))
+    (`(:before . "do") (smie-rule-parent))
     (`(,(or :before :after) . ".")
      (unless (smie-rule-parent-p ".")
        (smie-rule-parent ruby-indent-level)))


reply via email to

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