summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/autocomplete.py
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-07-09 22:54:44 (GMT)
committerGitHub <noreply@github.com>2020-07-09 22:54:44 (GMT)
commit3d1c06e8b9eec5fc1ea2ed4dc1ea79c705da8ab8 (patch)
tree6cc9ad42f9c7189f3a363ec7ba5070a9e43345c6 /Lib/idlelib/autocomplete.py
parent0b6169e391ce6468aad711f08ffb829362293ad5 (diff)
downloadcpython-3d1c06e8b9eec5fc1ea2ed4dc1ea79c705da8ab8.zip
cpython-3d1c06e8b9eec5fc1ea2ed4dc1ea79c705da8ab8.tar.gz
cpython-3d1c06e8b9eec5fc1ea2ed4dc1ea79c705da8ab8.tar.bz2
bpo-37765: Add keywords to IDLE tab completions (GH-15138)
Keywords are present in the main module tab completion lists generated by rlcompleter, which is used by REPLs on *nix. Add all keywords to IDLE's main module name list except those already added from builtins (True, False, and None) . This list may also be used by Show Completions on the Edit menu, and its hot key. Rewrite Completions doc. Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com> (cherry picked from commit bce2eb4646021910aa4074d86f44a09b32d0b2b2) Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Diffstat (limited to 'Lib/idlelib/autocomplete.py')
-rw-r--r--Lib/idlelib/autocomplete.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/Lib/idlelib/autocomplete.py b/Lib/idlelib/autocomplete.py
index c623d45..e1e9e17 100644
--- a/Lib/idlelib/autocomplete.py
+++ b/Lib/idlelib/autocomplete.py
@@ -4,6 +4,7 @@ Either on demand or after a user-selected delay after a key character,
pop up a list of candidates.
"""
import __main__
+import keyword
import os
import string
import sys
@@ -171,10 +172,13 @@ class AutoComplete:
(what, mode), {})
else:
if mode == ATTRS:
- if what == "":
+ if what == "": # Main module names.
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.sort()
if "__all__" in bigl:
smalll = sorted(eval("__all__", namespace))