summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2013-10-21 09:34:13 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2013-10-21 09:34:13 -0400
commitdf74c4be16efb83408b78c5b1205fccfb2c10696 (patch)
treee440d2a7dac62236a578fdeee4a9a0d6ff138052
parentc7e36328c69e8363928390fa8ee909d7a1cfd5b0 (diff)
downloademacs-df74c4be16efb83408b78c5b1205fccfb2c10696.tar.gz
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent after + used as
an instruction.
-rw-r--r--lisp/ChangeLog16
-rw-r--r--lisp/progmodes/ruby-mode.el2
-rw-r--r--test/indent/ruby.rb4
3 files changed, 14 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e9de6a7669c..b8cc19b383c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/ruby-mode.el (ruby-smie-rules): Indent after + used as
+ an instruction.
+
2013-10-21 Dmitry Gutov <dgutov@yandex.ru>
* progmodes/ruby-mode.el (ruby-smie-grammar): Add (almost) all infix operators.
@@ -12,15 +17,14 @@
Allow comma separated lists after Java "implements".
- * progmodes/cc-engine.el (c-backward-over-enum-header): parse
- commas.
+ * progmodes/cc-engine.el (c-backward-over-enum-header):
+ Parse commas.
* progmodes/cc-fonts.el (c-basic-matchers-after): Remove comma
from a "disallowed" list in enum fontification.
2013-10-20 Johan Bockgård <bojohan@gnu.org>
- * startup.el (default-frame-background-mode): Remove unused
- defvar.
+ * startup.el (default-frame-background-mode): Remove unused defvar.
* progmodes/verilog-mode.el (verilog-mode): Don't set
comment-indent-function globally.
@@ -168,8 +172,8 @@
* ielm.el (ielm-map): Bind M-RET to ielm-return-for-effect.
(ielm-return-for-effect): New command.
(ielm-send-input): Accept optional `for-effect' parameter.
- (ielm-eval-input): Accept optional `for-effect' parameter. Bind
- `standard-output' to stream we create using
+ (ielm-eval-input): Accept optional `for-effect' parameter.
+ Bind `standard-output' to stream we create using
`ielm-standard-output-impl'. Suppress printing result when
`for-effect'.
(ielm-standard-output-impl): New function.
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index fcbe4fdb7c4..280016317e7 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -498,6 +498,8 @@ explicitly declared in magic comment."
(`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure")) 0)
(`(:before . ,(or `"when"))
(if (not (smie-rule-sibling-p)) 0)) ;; ruby-indent-level
+ (`(:after . "+") ;FIXME: Probably applicable to most infix operators.
+ (if (smie-rule-parent-p ";") ruby-indent-level))
))
(defun ruby-imenu-create-index-in-block (prefix beg end)
diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb
index 198ad6384f0..c9ec8bd3723 100644
--- a/test/indent/ruby.rb
+++ b/test/indent/ruby.rb
@@ -186,11 +186,11 @@ if foo &&
bar
end
-# Examples below still fail with `ruby-use-smie' on:
-
foo +
bar
+# Examples below still fail with `ruby-use-smie' on:
+
foo = [1, 2, 3].map do |i|
i + 1
end