[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)))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r114927: * lisp/emacs-lisp/smie.el (smie-rule-parent): Always call,
Stefan Monnier <=