1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

Do not mistake colon at the end of regexp for slash symbol

* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Check the parse state in the "Symbols with special characters"
rule (bug#23515).
This commit is contained in:
Dmitry Gutov 2016-05-12 03:18:45 +03:00
parent 4c5a00b09f
commit 1a5a05cf6f
2 changed files with 6 additions and 1 deletions

View File

@ -1858,7 +1858,9 @@ It will be properly highlighted even when the call omits parens.")
(string-to-syntax "'"))))
;; Symbols with special characters.
("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\)\\)"
(3 (string-to-syntax "_")))
(3 (unless (nth 8 (syntax-ppss (match-beginning 3)))
(goto-char (match-end 0))
(string-to-syntax "_"))))
;; Part of method name when at the end of it.
("[!?]"
(0 (unless (save-excursion

View File

@ -146,6 +146,9 @@ VALUES-PLIST is a list with alternating index and value elements."
(ert-deftest ruby-slash-char-literal-is-not-mistaken-for-regexp ()
(ruby-assert-state "?/" 3 nil))
(ert-deftest ruby-regexp-is-not-mistaken-for-slash-symbol ()
(ruby-assert-state "x = /foo:/" 3 nil))
(ert-deftest ruby-indent-simple ()
(ruby-should-indent-buffer
"if foo