# HG changeset patch # User Franz Glasner # Date 1779265018 -7200 # Node ID f365d9d2c0add40f73ffb2c043f852d1d396605e # Parent 77cfab93a60e14636175dcfa3fc04fe9ea2ae676 FIX: explicit token types: backslash as separator now correctly handled diff -r 77cfab93a60e -r f365d9d2c0ad pygments_lexer_pseudocode2/lexers/algpseudocode.py --- a/pygments_lexer_pseudocode2/lexers/algpseudocode.py Wed May 20 09:51:29 2026 +0200 +++ b/pygments_lexer_pseudocode2/lexers/algpseudocode.py Wed May 20 10:16:58 2026 +0200 @@ -491,7 +491,7 @@ # All these REs are CASE-SENSITIVE! # Multiple characters possible, but no escaping! - (r"\\ttx\-(?P[a-zA-Z0-9_-]+?)(?P[/:|=*+!\$~])" + (r"\\ttx\-(?P[a-zA-Z0-9_-]+?)(?P[/:|=*+!\\$~])" r"(?P(.|\n)+?)(?P=sep)", op_explicit_tokentype), (r"\\ttx\-(?P[a-zA-Z0-9_-]+?)\{(?P[^}]+?)\}", diff -r 77cfab93a60e -r f365d9d2c0ad tests/test_algpseudo.py --- a/tests/test_algpseudo.py Wed May 20 09:51:29 2026 +0200 +++ b/tests/test_algpseudo.py Wed May 20 10:16:58 2026 +0200 @@ -699,6 +699,16 @@ r"""\ttx-nd[a_Decorator](p1, p2) \rem (Python) annotation""", self.lexer)) + def test_explicit_tokentype_all_seps(self): + for sep in r"/:|=*+!\$~": + self.assertTokenStreamEqualComplete( + [("Name.Decorator", "word"), + ("Text.Whitespace", "\n"), + ], + pygments.lex( + r"\ttx-nd%sword%s" % (sep, sep,), + self.lexer)) + def test_explicit_tokentype_error(self): self.assertTokenStreamEqualComplete( [("Generic.Error", r"""\ttx-non-existing[a_Decorator]"""),