From 3147b784754f38c393dc6eb7643d9219e6ae8872 Mon Sep 17 00:00:00 2001 From: Locked-chess-official <13140752715@163.com> Date: Fri, 19 Jun 2026 16:14:55 +0800 Subject: [PATCH] gh151471-colorizer the `type` when it start a statement The `news` will be added soon. I put `type_softkw` before `builtin` because of the afraid that `builtin` may cover the `type_softkw` in re. Now there is no test. --- Lib/idlelib/colorizer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Lib/idlelib/colorizer.py b/Lib/idlelib/colorizer.py index 6db38de3aa6cb9..b5e1992b32456d 100644 --- a/Lib/idlelib/colorizer.py +++ b/Lib/idlelib/colorizer.py @@ -42,6 +42,11 @@ def make_pat(): ]) + r"))" ) + type_softkw = ( + r"^[ \t]*" + # at beginning of line + possible indentation + r"(?Ptype)" + + r"(?=[ \t]+[A-Za-z_])" + ) lazy_softkw = ( r"^[ \t]*" + # at beginning of line + possible indentation r"(?Plazy)" + @@ -59,7 +64,7 @@ def make_pat(): dq3string = stringprefix + r'"""[^"\\]*((\\.|"(?!""))[^"\\]*)*(""")?' string = any("STRING", [sq3string, dq3string, sqstring, dqstring]) prog = re.compile("|".join([ - builtin, comment, string, kw, + type_softkw, builtin, comment, string, kw, match_softkw, case_default, case_softkw_and_pattern, lazy_softkw, any("SYNC", [r"\n"]), @@ -75,6 +80,7 @@ def make_pat(): "CASE_SOFTKW": "KEYWORD", "CASE_DEFAULT_UNDERSCORE": "KEYWORD", "CASE_SOFTKW2": "KEYWORD", + "TYPE_SOFTKW": "KEYWORD", "LAZY_SOFTKW": "KEYWORD", }