Match special globals in Ruby better
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 24 Mar 2014 08:53:56 +0000 (10:53 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 24 Mar 2014 08:53:56 +0000 (10:53 +0200)
* lisp/progmodes/ruby-mode.el (ruby-expression-expansion-re):
Match special global variables without curlies, too.
(ruby-font-lock-keywords): Simplify the matcher for special global
variables.  Don't require a non-word character after the variable.

Fixes: debbugs:17057

lisp/ChangeLog
lisp/progmodes/ruby-mode.el

index f0705e5..029cbaa 100644 (file)
@@ -1,3 +1,11 @@
+2014-03-24  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * progmodes/ruby-mode.el (ruby-expression-expansion-re):
+       Match special global variables without curlies, too.
+       (ruby-font-lock-keywords): Simplify the matcher for special global
+       variables.  Don't require a non-word character after the variable.
+       (Bug#17057)
+
 2014-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * simple.el (redisplay-highlight-region-function): Increase priority of
index e05aef8..2b8f2fa 100644 (file)
   "Regexp to match the beginning of a heredoc.")
 
   (defconst ruby-expression-expansion-re
-    "\\(?:[^\\]\\|\\=\\)\\(\\\\\\\\\\)*\\(#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)\\)"))
+    "\\(?:[^\\]\\|\\=\\)\\(\\\\\\\\\\)*\\(#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\|\\$[^a-zA-Z \n]\\)\\)"))
 
 (defun ruby-here-doc-end-match ()
   "Return a regexp to find the end of a heredoc.
@@ -2113,8 +2113,8 @@ See `font-lock-syntax-table'.")
     ("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|@?\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
      2 font-lock-constant-face)
     ;; Variables.
-    ("\\(\\$\\([^a-zA-Z0-9 \n]\\|[0-9]\\)\\)\\W"
-     1 font-lock-variable-name-face)
+    ("\\$[^a-zA-Z \n]"
+     0 font-lock-variable-name-face)
     ("\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+"
      0 font-lock-variable-name-face)
     ;; Constants.