summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthäus G. Chajdas <dev@anteru.net>2020-11-08 09:17:12 +0100
committerMatthäus G. Chajdas <dev@anteru.net>2020-11-08 09:17:12 +0100
commitafa9e3be5a05a27ed2c8ac515a10e146a766ad15 (patch)
tree7ded6127136ac596ff7f1cfe92673e95a541db7a
parent255442ae96a5f283f05f246a9827beecc9612c26 (diff)
downloadpygments-git-afa9e3be5a05a27ed2c8ac515a10e146a766ad15.tar.gz
Fix Mason regex.
Previously, the tag was cut off.
-rw-r--r--pygments/lexers/templates.py5
-rw-r--r--tests/test_templates.py3
2 files changed, 3 insertions, 5 deletions
diff --git a/pygments/lexers/templates.py b/pygments/lexers/templates.py
index 9461b425..968504ab 100644
--- a/pygments/lexers/templates.py
+++ b/pygments/lexers/templates.py
@@ -537,9 +537,8 @@ class MasonLexer(RegexLexer):
(r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
bygroups(Name.Tag, Text, Name.Function, Name.Tag,
using(this), Name.Tag)),
- (r'(?s)<%(\w+)(.*?)(>)(.*?)(</%\1\s*>)',
- bygroups(Name.Tag, Name.Function, Name.Tag,
- using(PerlLexer), Name.Tag)),
+ (r'(?s)(<%(\w+)(.*?)(>))(.*?)(</%\2\s*>)',
+ bygroups(Name.Tag, None, None, None, using(PerlLexer), Name.Tag)),
(r'(?s)(<&[^|])(.*?)(,.*?)?(&>)',
bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
(r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
diff --git a/tests/test_templates.py b/tests/test_templates.py
index 5b4d90b2..fb6a5072 100644
--- a/tests/test_templates.py
+++ b/tests/test_templates.py
@@ -45,8 +45,7 @@ def test_mason_unnamed_block(lexerMason):
def test_mason_handles_tags_correctly(lexerMason):
fragment = "<%class>\nhas 'foo';\nhas 'bar' => (required => 1);\nhas 'baz' => (isa => 'Int', default => 17);\n</%class>\n"
tokens = [
- (Token.Name.Tag, 'class'),
- (Token.Name.Tag, '>'),
+ (Token.Name.Tag, '<%class>'),
(Token.Text, '\n'),
(Token.Name, ''),
(Token.Name, 'has'),