diff options
| author | Matthäus G. Chajdas <dev@anteru.net> | 2021-01-04 18:02:36 +0100 |
|---|---|---|
| committer | Matthäus G. Chajdas <dev@anteru.net> | 2021-01-04 18:02:36 +0100 |
| commit | 5b432dfd6c99dbf0678ccc3a3ea95fc57649bfd1 (patch) | |
| tree | 7c663e3e265e274bfaba08a6915b5df426929c29 | |
| parent | a590ac5ea7c00a41e253834306bfa19e38349c0b (diff) | |
| parent | 05effdac9409f1d04820ecf7c7979987f7a5f36c (diff) | |
| download | pygments-git-5b432dfd6c99dbf0678ccc3a3ea95fc57649bfd1.tar.gz | |
Merge branch 'master' of https://github.com/felixhao28/pygments into felixhao28-master
| -rw-r--r-- | pygments/lexers/javascript.py | 2 | ||||
| -rw-r--r-- | tests/test_javascript.py | 26 |
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 |
