* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent middle-of-block
authorDmitry Gutov <dgutov@yandex.ru>
Thu, 19 Dec 2013 05:06:24 +0000 (07:06 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Thu, 19 Dec 2013 05:06:24 +0000 (07:06 +0200)
keywords to their parent.

lisp/ChangeLog
lisp/progmodes/ruby-mode.el
test/indent/ruby.rb

index 09d4ceb..5fd4ff5 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-19  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * progmodes/ruby-mode.el (ruby-smie-rules): Indent middle-of-block
+       keywords to their parent.
+
 2013-12-19  Dmitry Gutov  <dgutov@yandex.ru>
 
        * progmodes/ruby-mode.el (ruby-smie--args-separator-p): Allow the
index e291ace..449a10d 100644 (file)
@@ -569,8 +569,9 @@ It is used when `ruby-encoding-magic-comment-style' is set to `custom'."
          (cons 'column (current-column)))))
     (`(:before . "do") (ruby-smie--indent-to-stmt))
     (`(:before . ".") ruby-indent-level)
-    (`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure")) 0)
-    (`(:before . ,(or `"when"))
+    (`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure"))
+     (smie-rule-parent))
+    (`(:before . "when")
      (if (not (smie-rule-sibling-p)) 0)) ;; ruby-indent-level
     (`(:after . ,(or "=" "iuwu-mod" "+" "-" "*" "/" "&&" "||" "%" "**" "^" "&"
                      "<=>" ">" "<" ">=" "<=" "==" "===" "!=" "<<" ">>"
index 0bf4bc1..1993c29 100644 (file)
@@ -272,6 +272,8 @@ end
 # http://stackoverflow.com/questions/17786563/emacs-ruby-mode-if-expressions-indentation
 tee = if foo
         bar
+      else
+        tee
       end
 
 a = b {
@@ -328,6 +330,8 @@ def qux
   foo ||= begin
     bar
     tee
+  rescue
+    oomph
   end
 end