diff pygments_lexer_pseudocode2/lexers/algpseudocode.py @ 288:298841bc4dee

Allow "normal" Pygments token names in "\ttX" ("Error", "Text.Whitespace", ...)
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 22 May 2026 12:32:38 +0200
parents 051c8877ee22
children 6fc7f9c1d89d
line wrap: on
line diff
--- a/pygments_lexer_pseudocode2/lexers/algpseudocode.py	Fri May 22 12:31:09 2026 +0200
+++ b/pygments_lexer_pseudocode2/lexers/algpseudocode.py	Fri May 22 12:32:38 2026 +0200
@@ -26,7 +26,8 @@
 # in all of our supported Python releases.
 #
 from pygments_lexer_pseudocode2.lexers.bases import LexBase
-from pygments_lexer_pseudocode2.utils import REVERSED_STANDARD_TYPES
+from pygments_lexer_pseudocode2.utils import (
+    REVERSED_STANDARD_TYPES, string_to_defined_tokentype)
 from pygments_lexer_pseudocode2 import uniprops
 
 #
@@ -240,17 +241,20 @@
         needed_css = match.group("type")
         toktype = REVERSED_STANDARD_TYPES.get(needed_css, None)
         if toktype is None:
-            if not lexer.strict_tokentype:
+            if lexer.strict_tokentype:
+                toktype = string_to_defined_tokentype(needed_css)
+                if toktype is None:
+                    _logger.warning(
+                        "Unhandled explicit token type: %s", needed_css)
+            else:
                 toktype = string_to_tokentype(needed_css)
                 if toktype is None:
                     _logger.warning(
                         "Unhandled explicit token type: %s", needed_css)
                 else:
                     _logger.debug(
-                        "Synthesized new token type: %s", needed_css)
-            else:
-                _logger.warning(
-                    "Unhandled explicit token type: %s", needed_css)
+                        "New token type may have been synthesized: %s",
+                        needed_css)
         if toktype is None:
             # Be more error friendly
             ctx.explicit_token_type = Generic.Error
@@ -532,7 +536,7 @@
             #
             # New extended (more flexible, allows escaping)
             #
-            (r"""\\ttX[ \t]*\{(?P<type>[^}]+)\}[ \t]*\{""",
+            (r"""\\ttX[ \t]*\{(?P<type>[^}]*)\}[ \t]*\{""",
              op_explicit_tokentype_ex_start,
              "extended-explicit-tokentype"),