summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/progmodes/ruby-mode.el6
2 files changed, 7 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 63156bb18a1..6210bbeabae 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2013-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
+ * progmodes/ruby-mode.el (ruby-smie-rules): Only align with parent of
+ { if it is hanging.
+
* progmodes/ruby-mode.el (ruby-smie-rules): Don't return 0 for
:before ";".
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 7b9dcd44b24..88820a4a942 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -449,7 +449,7 @@ explicitly declared in magic comment."
((smie-rule-parent-p "def" "begin" "do" "class" "module" "for"
"while" "until" "unless"
"if" "then" "elsif" "else" "when"
- "rescue" "ensure" "{")
+ "rescue" "ensure")
(smie-rule-parent ruby-indent-level))
;; For (invalid) code between switch and case.
;; (if (smie-parent-p "switch") 4)
@@ -457,7 +457,9 @@ explicitly declared in magic comment."
(`(:before . ,(or `"(" `"[" `"{"))
(cond
((and (equal token "{")
- (not (smie-rule-prev-p "(" "{" "[" "," "=>")))
+ (not (smie-rule-prev-p "(" "{" "[" "," "=>"))
+ (or (smie-rule-hanging-p)
+ (smie-rule-next-p "opening-|")))
;; Curly block opener.
(smie-rule-parent))
((smie-rule-hanging-p)