summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthäus G. Chajdas <dev@anteru.net>2021-01-04 18:02:36 +0100
committerMatthäus G. Chajdas <dev@anteru.net>2021-01-04 18:02:36 +0100
commit5b432dfd6c99dbf0678ccc3a3ea95fc57649bfd1 (patch)
tree7c663e3e265e274bfaba08a6915b5df426929c29
parenta590ac5ea7c00a41e253834306bfa19e38349c0b (diff)
parent05effdac9409f1d04820ecf7c7979987f7a5f36c (diff)
downloadpygments-git-5b432dfd6c99dbf0678ccc3a3ea95fc57649bfd1.tar.gz
Merge branch 'master' of https://github.com/felixhao28/pygments into felixhao28-master
-rw-r--r--pygments/lexers/javascript.py2
-rw-r--r--tests/test_javascript.py26
2 files changed, 25 insertions, 3 deletions
diff --git a/pygments/lexers/javascript.py b/pygments/lexers/javascript.py
index 42200e94..329120e5 100644
--- a/pygments/lexers/javascript.py
+++ b/pygments/lexers/javascript.py
@@ -509,7 +509,7 @@ class TypeScriptLexer(RegexLexer):
(r'(super)(\s*)(\([\w,?.$\s]+\s*\))',
bygroups(Keyword.Reserved, Text), 'slashstartsregex'),
# Match stuff like: function() {...}
- (r'([a-zA-Z_?.$][\w?.$]*)\(\) \{', Name.Other, 'slashstartsregex'),
+ (r'([a-zA-Z_?.$][\w?.$]*)(?=\(\) \{)', Name.Other, 'slashstartsregex'),
# Match stuff like: (function: return type)
(r'([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)',
bygroups(Name.Other, Text, Keyword.Type)),
diff --git a/tests/test_javascript.py b/tests/test_javascript.py
index cdccfde5..ea0691d6 100644
--- a/tests/test_javascript.py
+++ b/tests/test_javascript.py
@@ -9,8 +9,8 @@
import pytest
-from pygments.lexers.javascript import JavascriptLexer
-from pygments.token import Number
+from pygments.lexers.javascript import JavascriptLexer, TypeScriptLexer
+from pygments.token import Number, Token
@pytest.fixture(scope='module')
@@ -82,3 +82,25 @@ def test_hexadecimal_literal_positive_matches(lexer, text):
def test_hexadecimal_literals_negative_matches(lexer, text):
"""Test text that should **not** be tokenized as hexadecimal literals."""
assert list(lexer.get_tokens(text))[0] != (Number.Hex, text)
+
+@pytest.fixture(scope='module')
+def ts_lexer():
+ yield TypeScriptLexer()
+
+def test_function_definition(ts_lexer):
+ fragment = u'async function main() {\n}'
+ tokens = [
+ (Token.Keyword, u'async'),
+ (Token.Text, u' '),
+ (Token.Keyword.Declaration, u'function'),
+ (Token.Text, u' '),
+ (Token.Name.Other, u'main'),
+ (Token.Punctuation, u'('),
+ (Token.Punctuation, u')'),
+ (Token.Text, u' '),
+ (Token.Punctuation, u'{'),
+ (Token.Text, u'\n'),
+ (Token.Punctuation, u'}'),
+ (Token.Text, u'\n'),
+ ]
+ assert list(ts_lexer.get_tokens(fragment)) == tokens