summaryrefslogtreecommitdiff
path: root/lisp/progmodes/ruby-mode.el
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2023-02-28 23:00:42 +0200
committerDmitry Gutov <dgutov@yandex.ru>2023-02-28 23:01:04 +0200
commit48a0804d10d02c2aa94664e0db8315239950225f (patch)
tree7e5c96ca33f86cd5ef51e203d28d6d8c1398154c /lisp/progmodes/ruby-mode.el
parent16d012cf3bd788bc622b00936ad0786128085316 (diff)
downloademacs-48a0804d10d02c2aa94664e0db8315239950225f.tar.gz
ruby-mode: Fix method call indentation in rhs of multiple assignment
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Special-case assignment that follows a comma-separated list (bug#61871). * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add case.
Diffstat (limited to 'lisp/progmodes/ruby-mode.el')
-rw-r--r--lisp/progmodes/ruby-mode.el13
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 559b62fef54..beccb8182a7 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -916,11 +916,14 @@ This only affects the output of the command `ruby-toggle-block'."
(smie-indent--hanging-p))
ruby-indent-level)))
(`(:before . "=")
- (save-excursion
- (and (smie-rule-parent-p " @ ")
- (goto-char (nth 1 (smie-indent--parent)))
- (smie-rule-prev-p "def=")
- (cons 'column (+ (current-column) ruby-indent-level -3)))))
+ (or
+ (save-excursion
+ (and (smie-rule-parent-p " @ ")
+ (goto-char (nth 1 (smie-indent--parent)))
+ (smie-rule-prev-p "def=")
+ (cons 'column (+ (current-column) ruby-indent-level -3))))
+ (and (smie-rule-parent-p ",")
+ (smie-rule-parent))))
(`(:after . ,(or "?" ":"))
(if ruby-after-operator-indent
ruby-indent-level