summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/progmodes/ruby-mode.el1
-rw-r--r--test/indent/ruby.rb5
3 files changed, 12 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cb256740a03..ff76cadf945 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2014-03-27 Dmitry Gutov <dgutov@yandex.ru>
+
+ * progmodes/ruby-mode.el (ruby-syntax-propertize-function):
+ Don't propertize `?' or `!' as symbol constituent when after
+ colon. (Bug#17097)
+
2014-03-27 Juanma Barranquero <lekktu@gmail.com>
* frameset.el (frameset--restore-frame): Remove workaround for bug#14795
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 2b8f2fa6868..7219221d4e7 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1812,6 +1812,7 @@ It will be properly highlighted even when the call omits parens.")
("[!?]"
(0 (unless (save-excursion
(or (nth 8 (syntax-ppss (match-beginning 0)))
+ (eq (char-before) ?:)
(let (parse-sexp-lookup-properties)
(zerop (skip-syntax-backward "w_")))
(memq (preceding-char) '(?@ ?$))))
diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb
index 99482433145..fb341ee7ba6 100644
--- a/test/indent/ruby.rb
+++ b/test/indent/ruby.rb
@@ -148,6 +148,11 @@ if something == :==
)
end
+# Bug#17097
+if x == :!=
+ something
+end
+
# Example from http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
d = 4 + 5 + # no '\' needed
6 + 7