summaryrefslogtreecommitdiff
path: root/pygments/lexers/javascript.py
diff options
context:
space:
mode:
authorTim Hatch <tim@timhatch.com>2014-10-07 13:29:40 -0700
committerTim Hatch <tim@timhatch.com>2014-10-07 13:29:40 -0700
commit292b11fdfa96f33f40380a1053b65a2d5f344783 (patch)
tree317dc69ac42f77ca8714de4ea12ff9bc5102a897 /pygments/lexers/javascript.py
parenta34c60a2e073e9ddaa46f976064cf864125affbb (diff)
parent34d2f291d161ac07e090a597660c9fb383b9522b (diff)
downloadpygments-292b11fdfa96f33f40380a1053b65a2d5f344783.tar.gz
Merge with -main
Diffstat (limited to 'pygments/lexers/javascript.py')
-rw-r--r--pygments/lexers/javascript.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/pygments/lexers/javascript.py b/pygments/lexers/javascript.py
index 968436ed..8b5f9c76 100644
--- a/pygments/lexers/javascript.py
+++ b/pygments/lexers/javascript.py
@@ -16,11 +16,18 @@ from pygments.lexer import RegexLexer, include, bygroups, default, \
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Other
from pygments.util import get_bool_opt, iteritems
+import pygments.unistring as uni
__all__ = ['JavascriptLexer', 'KalLexer', 'LiveScriptLexer', 'DartLexer',
'TypeScriptLexer', 'LassoLexer', 'ObjectiveJLexer',
'CoffeeScriptLexer', 'MaskLexer']
+JS_IDENT_START = ('(?:[$_' + uni.Lu + uni.Ll + uni.Lt + uni.Lm + uni.Lo + uni.Nl
+ + ']|\\\\u[a-fA-F0-9]{4})')
+JS_IDENT_PART = ('(?:[$_' + uni.Lu + uni.Ll + uni.Lt + uni.Lm + uni.Lo + uni.Nl
+ + uni.Mn + uni.Mc + uni.Nd + uni.Pc
+ + u'\u200c\u200d]|\\\\u[a-fA-F0-9]{4})')
+JS_IDENT = JS_IDENT_START + '(?:' + JS_IDENT_PART + ')*'
class JavascriptLexer(RegexLexer):
"""
@@ -72,7 +79,7 @@ class JavascriptLexer(RegexLexer):
r'decodeURIComponent|encodeURI|encodeURIComponent|'
r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
r'window)\b', Name.Builtin),
- (r'[$a-zA-Z_]\w*', Name.Other),
+ (JS_IDENT, Name.Other),
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
(r'0x[0-9a-fA-F]+', Number.Hex),
(r'[0-9]+', Number.Integer),