]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/progmodes/ruby-mode.el (ruby-syntax-before-regexp-re):
authorDmitry Gutov <dgutov@yandex.ru>
Tue, 18 Jun 2013 22:17:56 +0000 (02:17 +0400)
committerDmitry Gutov <dgutov@yandex.ru>
Tue, 18 Jun 2013 22:17:56 +0000 (02:17 +0400)
Distinguish ternary operator tokens from slash symbol and slash
char literal.

lisp/ChangeLog
lisp/progmodes/ruby-mode.el
test/automated/ruby-mode-tests.el

index 44d8a2a82bd0edc6cbc1e73d7686f2dca5afde41..ce507cfff9fa9b2151e7879636e8758b6e8bba91 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-18  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * progmodes/ruby-mode.el (ruby-syntax-before-regexp-re):
+       Distinguish ternary operator tokens from slash symbol and slash
+       char literal.
+
 2013-06-18  Juanma Barranquero  <lekktu@gmail.com>
 
        Convert symbol prettification into minor mode and global minor mode.
index fa4efe49b7b99fb8132ad05d4d61dbfc2c0197cf..8a1548bc9407d4a08fe2f9a7b15f1a28eb30dfca 100644 (file)
@@ -1368,7 +1368,10 @@ It will be properly highlighted even when the call omits parens.")
         (defvar ruby-syntax-before-regexp-re
           (concat
            ;; Special tokens that can't be followed by a division operator.
-           "\\(^\\|[[=(,~?:;<>]"
+           "\\(^\\|[[=(,~;<>]"
+           ;; Distinguish ternary operator tokens.
+           ;; FIXME: They don't really have to be separated with spaces.
+           "\\|[?:] "
            ;; Control flow keywords and operators following bol or whitespace.
            "\\|\\(?:^\\|\\s \\)"
            (regexp-opt '("if" "elsif" "unless" "while" "until" "when" "and"
index 77dd62821f74efb9cc523cd7a79d7d90033017a2..ad13d01a67448ad112d94f97f04c84305da33704 100644 (file)
@@ -124,6 +124,12 @@ VALUES-PLIST is a list with alternating index and value elements."
 (ert-deftest ruby-regexp-can-be-multiline ()
   (ruby-assert-state "/bars\ntees # toots \nfoos/" 3 nil))
 
+(ert-deftest ruby-slash-symbol-is-not-mistaken-for-regexp ()
+  (ruby-assert-state ":/" 3 nil))
+
+(ert-deftest ruby-slash-char-literal-is-not-mistaken-for-regexp ()
+  (ruby-assert-state "?/" 3 nil))
+
 (ert-deftest ruby-indent-simple ()
   (ruby-should-indent-buffer
    "if foo