summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/ruby-mode.el2
-rw-r--r--test/indent/ruby.rb5
3 files changed, 11 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8b31efc50b7..96f3ab25172 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-27 Dmitry Gutov <dgutov@yandex.ru>
+
+ * progmodes/ruby-mode.el (ruby-smie--bosp): Anything that goes
+ after `=' is probably a new expression.
+
2013-10-27 RĂ¼diger Sonderfeld <ruediger@c-plusplus.de>
* man.el (man-imenu-title): New option.
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index b85385a7428..441f166396e 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -334,7 +334,7 @@ explicitly declared in magic comment."
(defun ruby-smie--bosp ()
(save-excursion (skip-chars-backward " \t")
- (or (bolp) (eq (char-before) ?\;))))
+ (or (bolp) (memq (char-before) '(?\; ?=)))))
(defun ruby-smie--implicit-semi-p ()
(save-excursion
diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb
index b4173b69bc1..633b2991d5e 100644
--- a/test/indent/ruby.rb
+++ b/test/indent/ruby.rb
@@ -220,6 +220,11 @@ def bar
.baz
end
+# http://stackoverflow.com/questions/17786563/emacs-ruby-mode-if-expressions-indentation
+tee = if foo
+ bar
+ end
+
# Examples below still fail with `ruby-use-smie' on:
foo = [1, 2, 3].map do |i|