Commit 4dd3c4d5 authored by Dmitry Gutov's avatar Dmitry Gutov

* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize-function):

Backtrack one char if the global/char-literal var matcher hits
inside a string.  The next char could be the beginning of an
expression expansion.

* test/automated/ruby-mode-tests.el
(ruby-interpolation-after-dollar-sign): New test.
parent 6da8d069
2014-05-05 Dmitry Gutov <dgutov@yandex.ru>
* progmodes/ruby-mode.el (ruby-syntax-propertize-function):
Backtrack one char if the global/char-literal var matcher hits
inside a string. The next char could be the beginning of an
expression expansion.
2014-05-05 Glenn Morris <rgm@gnu.org>
* help-fns.el (describe-function-1): Test for an autoload before a
......
......@@ -1804,9 +1804,10 @@ It will be properly highlighted even when the call omits parens.")
;; $' $" $` .... are variables.
;; ?' ?" ?` are character literals (one-char strings in 1.9+).
("\\([?$]\\)[#\"'`]"
(1 (unless (save-excursion
;; Not within a string.
(nth 3 (syntax-ppss (match-beginning 0))))
(1 (if (save-excursion
(nth 3 (syntax-ppss (match-beginning 0))))
;; Within a string, skip.
(goto-char (match-end 1))
(string-to-syntax "\\"))))
;; Part of symbol when at the end of a method name.
("[!?]"
......
2014-05-05 Dmitry Gutov <dgutov@yandex.ru>
* automated/ruby-mode-tests.el
(ruby-interpolation-after-dollar-sign): New test.
2014-05-05 Glenn Morris <rgm@gnu.org>
* automated/help-fns.el: New file.
......
......@@ -452,6 +452,10 @@ VALUES-PLIST is a list with alternating index and value elements."
(ruby-assert-face "%w{foo #@bar}" 8 font-lock-string-face)
(ruby-assert-face "%s{foo #@bar}" 8 font-lock-string-face))
(ert-deftest ruby-interpolation-after-dollar-sign ()
(ruby-assert-face "\"$#{balance}\"" 2 'font-lock-string-face)
(ruby-assert-face "\"$#{balance}\"" 3 'font-lock-variable-name-face))
(ert-deftest ruby-no-unknown-percent-literals ()
;; No folding of case.
(ruby-assert-face "%S{foo}" 4 nil)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment