Since the prompts moved to the sidebar, sys.ps1 ends with a newline
and prompt_last_line is empty, so HyperParser and newline_and_indent
took the editor path in the Shell and parsed previous output. Use an
explicit is_shell attribute instead.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two kind of mistakes:
1. Missed space. After concatenating there is no space between words.
2. Missed comma. Causes unintentional concatenating in a list of strings.
This follows the previous patch that changed idlelib file names.
Class names that matched old module names are not changed.
Change idlelib imports in turtledemo.__main__.
Exception: config-extensions.def. Previously, extension section
names, file names, and class names had to match. Changing section
names would create cross-version conflicts in config-extensions.cfg
(user customizations). Instead map old names to new file names
at point of import in editor.EditorWindow.load_extension.
Patch extensively tested with test_idle, idle_test.htest.py, a custom
import-all test, running IDLE in a console to catch messages,
and testing each menu item. Based on a patch by Al Sweigart.