* 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.
This commit is contained in:
parent
295559b0fd
commit
e61845c1db
3 changed files with 25 additions and 25 deletions
|
@ -1236,15 +1236,7 @@ Only meaningful when called from within `smie-rules-function'."
|
|||
(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 @@ KEYWORDS are additional arguments, which can use the following keywords:
|
|||
(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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue