summaryrefslogtreecommitdiff
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2021-10-20 20:55:46 -0700
committerGitHub <noreply@github.com>2021-10-20 20:55:46 -0700
commitc52338fc42353e8d0c6214e4c22427807439dfd5 (patch)
tree6da4bf5da5eb739aa48eab1850218d5726c45b10 /Lib/idlelib
parent8f05ffb0534c2343fc45ad0e1d91ae1dc2d92b64 (diff)
parent2a9ab75af32b1ee9f210ae2a0718990687d0f79d (diff)
downloadcpython-git-enum-private-310.tar.gz
Merge branch '3.10' into enum-private-310enum-private-310
Diffstat (limited to 'Lib/idlelib')
-rw-r--r--Lib/idlelib/autocomplete.py10
-rw-r--r--Lib/idlelib/idle_test/test_autocomplete.py5
2 files changed, 12 insertions, 3 deletions
diff --git a/Lib/idlelib/autocomplete.py b/Lib/idlelib/autocomplete.py
index bb7ee035c4..032d312253 100644
--- a/Lib/idlelib/autocomplete.py
+++ b/Lib/idlelib/autocomplete.py
@@ -9,6 +9,12 @@ import os
import string
import sys
+# Modified keyword list is used in fetch_completions.
+completion_kwds = [s for s in keyword.kwlist
+ if s not in {'True', 'False', 'None'}] # In builtins.
+completion_kwds.extend(('match', 'case')) # Context keywords.
+completion_kwds.sort()
+
# Two types of completions; defined here for autocomplete_w import below.
ATTRS, FILES = 0, 1
from idlelib import autocomplete_w
@@ -177,9 +183,7 @@ class AutoComplete:
namespace = {**__main__.__builtins__.__dict__,
**__main__.__dict__}
bigl = eval("dir()", namespace)
- kwds = (s for s in keyword.kwlist
- if s not in {'True', 'False', 'None'})
- bigl.extend(kwds)
+ bigl.extend(completion_kwds)
bigl.sort()
if "__all__" in bigl:
smalll = sorted(eval("__all__", namespace))
diff --git a/Lib/idlelib/idle_test/test_autocomplete.py b/Lib/idlelib/idle_test/test_autocomplete.py
index 642bb5db64..a811363c18 100644
--- a/Lib/idlelib/idle_test/test_autocomplete.py
+++ b/Lib/idlelib/idle_test/test_autocomplete.py
@@ -218,6 +218,11 @@ class AutoCompleteTest(unittest.TestCase):
self.assertTrue(acp.open_completions(ac.TAB))
self.text.delete('1.0', 'end')
+ def test_completion_kwds(self):
+ self.assertIn('and', ac.completion_kwds)
+ self.assertIn('case', ac.completion_kwds)
+ self.assertNotIn('None', ac.completion_kwds)
+
def test_fetch_completions(self):
# Test that fetch_completions returns 2 lists:
# For attribute completion, a large list containing all variables, and