From 5b705bc97d3928e6550d271c415c54e00e020011 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Mon, 14 Mar 2016 00:15:06 +0200 Subject: [PATCH] Indent '.' relative to the first sibling expression * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent '.' relative to the first sibling expression, instead of the parent token (bug#17213). --- lisp/progmodes/ruby-mode.el | 4 +++- test/indent/ruby.rb | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index b0b837aa20..9884b7e1ac 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -661,7 +661,9 @@ It is used when `ruby-encoding-magic-comment-style' is set to `custom'." (`(:before . ".") (if (smie-rule-sibling-p) (and ruby-align-chained-calls 0) - ruby-indent-level)) + (smie-backward-sexp ".") + (cons 'column (+ (current-column) + ruby-indent-level)))) (`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure")) (smie-rule-parent)) (`(:before . "when") diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb index 51923f7937..941fffb220 100644 --- a/test/indent/ruby.rb +++ b/test/indent/ruby.rb @@ -317,6 +317,11 @@ def bar .baz end +abc(foo + .bar, + tee + .qux) + # http://stackoverflow.com/questions/17786563/emacs-ruby-mode-if-expressions-indentation tee = if foo bar -- 2.39.2