M Bindings.py
M PyShell.py
M config-keys.def
M configHandler.py

1. Clear any un-entered characters from input line before printing the
   restart boundary.
2. Restore the Debug menu: There are now both Shell and Debug menus.
3. Add Control-F6 keybinding to Restart Shell.
4. Clarify PyShell.cancel_check() comment.
5. Update doc string for Bindings.py and re-format the file slightly.
diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
index abce56b..16113ab 100644
--- a/Lib/idlelib/Bindings.py
+++ b/Lib/idlelib/Bindings.py
@@ -1,10 +1,13 @@
-# This file defines the menu contents and key bindings.  Note that
-# there is additional configuration information in the EditorWindow
-# class (and subclasses): the menus are created there based on the
-# menu_specs (class) variable, and menus not created are silently
-# skipped by the code here.  This makes it possible to define the
-# Debug menu here, which is only present in the PythonShell window.
+"""Define the menu contents, hotkeys, and event bindings.
 
+There is additional configuration information in the EditorWindow class (and
+subclasses): the menus are created there based on the menu_specs (class)
+variable, and menus not created are silently skipped in the code here.  This
+makes it possible, for example, to define a Debug menu which is only present in
+the PythonShell window, and a Format menu which is only present in the Editor
+windows.
+
+"""
 import sys
 from configHandler import idleConf
 
@@ -43,39 +46,40 @@
    ('Go to _Line', '<<goto-line>>'),
   ]),
 ('format', [
-    ('_Indent Region', '<<indent-region>>'),
-    ('_Dedent Region', '<<dedent-region>>'),
-    ('Comment _Out Region', '<<comment-region>>'),
-    ('U_ncomment Region', '<<uncomment-region>>'),
-    ('Tabify Region', '<<tabify-region>>'),
-    ('Untabify Region', '<<untabify-region>>'),
-    ('Toggle Tabs', '<<toggle-tabs>>'),
-    ('New Indent Width', '<<change-indentwidth>>'),
-]),
- ('run',[
+   ('_Indent Region', '<<indent-region>>'),
+   ('_Dedent Region', '<<dedent-region>>'),
+   ('Comment _Out Region', '<<comment-region>>'),
+   ('U_ncomment Region', '<<uncomment-region>>'),
+   ('Tabify Region', '<<tabify-region>>'),
+   ('Untabify Region', '<<untabify-region>>'),
+   ('Toggle Tabs', '<<toggle-tabs>>'),
+   ('New Indent Width', '<<change-indentwidth>>'),
+   ]),
+ ('run', [
    ('Python Shell', '<<open-python-shell>>'),
- ]),
+   ]),
  ('shell', [
    ('_View Last Restart', '<<view-restart>>'),
    ('_Restart Shell', '<<restart-shell>>'),
-   None,
+   ]),
+ ('debug', [
    ('_Go to File/Line', '<<goto-file-line>>'),
    ('!_Debugger', '<<toggle-debugger>>'),
    ('_Stack Viewer', '<<open-stack-viewer>>'),
-   ('!_Auto-open Stack Viewer', '<<toggle-jit-stack-viewer>>' ),
-  ]),
+   ('!_Auto-open Stack Viewer', '<<toggle-jit-stack-viewer>>'),
+   ]),
  ('options', [
    ('_Configure IDLE...', '<<open-config-dialog>>'),
    None,
    ('Revert to _Default Settings', '<<revert-all-settings>>'),
-  ]),
+   ]),
  ('help', [
    ('_About IDLE', '<<about-idle>>'),
    ('IDLE _Readme', '<<view-readme>>'),   
    None,
    ('_IDLE Help', '<<help>>'),
    ('Python _Docs', '<<python-docs>>'),
-  ]),
+   ]),
 ]
 
 default_keydefs = idleConf.GetCurrentKeySet()
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index 77e4cf1..9c51526 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -368,6 +368,7 @@
         self.transfer_path()
         # annotate restart in shell window and mark it
         console = self.tkconsole
+        console.text.delete("iomark", "end-1c")
         halfbar = ((int(console.width) - 16) // 2) * '='
         console.write(halfbar + ' RESTART ' + halfbar)
         console.text.mark_set("restart", "end-1c")
@@ -659,6 +660,7 @@
         ("file", "_File"),
         ("edit", "_Edit"),
         ("shell", "_Shell"),
+        ("debug", "_Debug"),
         ("options", "_Options"),
         ("windows", "_Windows"),
         ("help", "_Help"),
@@ -1007,8 +1009,8 @@
         # Hack -- use the debugger hooks to be able to handle events
         # and interrupt execution at any time.
         # This slows execution down quite a bit, so you may want to
-        # disable this (by not calling settrace() in runcode() above)
-        # for full-bore (uninterruptable) speed.
+        # disable this (by not calling settrace() in beginexecuting() and
+        # endexecuting() for full-bore (uninterruptable) speed.)
         # XXX This should become a user option.
         if self.canceled:
             return
diff --git a/Lib/idlelib/config-keys.def b/Lib/idlelib/config-keys.def
index 3e03ad7..4f2be59 100644
--- a/Lib/idlelib/config-keys.def
+++ b/Lib/idlelib/config-keys.def
@@ -23,6 +23,7 @@
 history-previous=<Alt-Key-p> <Meta-Key-p>
 interrupt-execution=<Control-Key-c>
 view-restart=<Key-F6>
+restart-shell=<Control-Key-F6>
 open-class-browser=<Alt-Key-c> <Meta-Key-c>
 open-module=<Alt-Key-m> <Meta-Key-m>
 open-new-window=<Control-Key-n>
@@ -69,6 +70,7 @@
 history-previous=<Alt-Key-p> <Meta-Key-p>
 interrupt-execution=<Control-Key-c>
 view-restart=<Key-F6>
+restart-shell=<Control-Key-F6>
 open-class-browser=<Control-Key-x><Control-Key-b>
 open-module=<Control-Key-x><Control-Key-m>
 open-new-window=<Control-Key-x><Control-Key-n>
@@ -119,6 +121,7 @@
 history-previous=<Control-Key-p>
 interrupt-execution=<Control-Key-c>
 view-restart=<Key-F6>
+restart-shell=<Control-Key-F6>
 open-class-browser=<Command-Key-b>
 open-module=<Command-Key-m>
 open-new-window=<Command-Key-n>
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index 22e83a6..dac9d10 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -522,6 +522,7 @@
             '<<history-previous>>': ['<Alt-p>'],
             '<<interrupt-execution>>': ['<Control-c>'],
             '<<view-restart>>': ['<F6>'],
+            '<<restart-shell>>': ['<Control-F6>'],
             '<<open-class-browser>>': ['<Alt-c>'],
             '<<open-module>>': ['<Alt-m>'],
             '<<open-new-window>>': ['<Control-n>'],