summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2016-03-14 00:15:06 +0200
committerDmitry Gutov <dgutov@yandex.ru>2016-03-14 01:45:01 +0200
commit5b705bc97d3928e6550d271c415c54e00e020011 (patch)
treedea5346c13e94e024a5fc9e5ed57450b4f36743a
parent04f5525fbb961f6006280be340ca0f03df9e80a7 (diff)
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).
-rw-r--r--lisp/progmodes/ruby-mode.el4
-rw-r--r--test/indent/ruby.rb5
2 files changed, 8 insertions, 1 deletions
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