We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents e6633ff + 2f642c8 commit ab07b14Copy full SHA for ab07b14
2 files changed
Lib/idlelib/colorizer.py
@@ -42,6 +42,11 @@ def make_pat():
42
]) +
43
r"))"
44
)
45
+ lazy_softkw = (
46
+ r"^[ \t]*" + # at beginning of line + possible indentation
47
+ r"(?P<LAZY_SOFTKW>lazy)" +
48
+ r"(?=[ \t]+(?:import|from)\b)" # followed by 'import' or 'from'
49
+ )
50
builtinlist = [str(name) for name in dir(builtins)
51
if not name.startswith('_') and
52
name not in keyword.kwlist]
@@ -56,7 +61,7 @@ def make_pat():
56
61
prog = re.compile("|".join([
57
62
builtin, comment, string, kw,
58
63
match_softkw, case_default,
59
- case_softkw_and_pattern,
64
+ case_softkw_and_pattern, lazy_softkw,
60
65
any("SYNC", [r"\n"]),
66
]),
67
re.DOTALL | re.MULTILINE)
@@ -70,6 +75,7 @@ def make_pat():
70
75
"CASE_SOFTKW": "KEYWORD",
71
76
"CASE_DEFAULT_UNDERSCORE": "KEYWORD",
72
77
"CASE_SOFTKW2": "KEYWORD",
78
+ "LAZY_SOFTKW": "KEYWORD",
73
79
}
74
80
81
Lib/idlelib/idle_test/test_colorizer.py
@@ -542,6 +542,22 @@ def test_case_soft_keyword(self):
542
self._assert_highlighting('case _:', {'KEYWORD': [('1.0', '1.4'),
543
('1.5', '1.6')]})
544
545
+ def test_lazy_soft_keyword(self):
546
+ # lazy followed by import
547
+ self._assert_highlighting('lazy import foo',
548
+ {'KEYWORD': [('1.0', '1.4'), ('1.5', '1.11')]})
549
+ self._assert_highlighting(' lazy import foo',
550
+ {'KEYWORD': [('1.4', '1.8'), ('1.9', '1.15')]})
551
+
552
+ # lazy followed by from
553
+ self._assert_highlighting('lazy from foo import bar',
554
+ {'KEYWORD': [('1.0', '1.4'), ('1.5', '1.9'),
555
+ ('1.14', '1.20')]})
556
557
+ # lazy not followed by import/from (not highlighted)
558
+ self._assert_highlighting('lazy = 1', {})
559
+ self._assert_highlighting('lazy foo', {})
560
561
def test_long_multiline_string(self):
562
source = textwrap.dedent('''\
563
"""a
0 commit comments