]> granicus.if.org Git - python/commitdiff
M AutoExpand.py
authorKurt B. Kaiser <kbk@shore.net>
Sat, 4 Jan 2003 01:43:53 +0000 (01:43 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Sat, 4 Jan 2003 01:43:53 +0000 (01:43 +0000)
M Bindings.py
M EditorWindow.py
M PyShell.py
M config-keys.def
M configHandler.py
M help.txt

1. Annotate the shell window with last restart boundary upon restart.
2. Provide a shell menu entry and hot key (F6) to jump to the last
   restart boundary.
3. Add a new shell menu feature to restart the shell.
4. Update the help menu to add these features.
5. Update the help menu to put text in same order as the menus.
6. Correct a capitalization inconsistency on the Edit menu: Expand Word
7. Rename the "Debug" menu to be "Shell": it's doing more now.
8. Rearrange the "Shell" menu to make the StackViewer entries adjacent.
9. Add a get_geometry method to EditorWindow, which may be of use in
   making window positions persisent.
10. Make <ctrl-v> the "Classic Windows" paste key.
11. Restore decorum on the Help menu by removing "Advice".  As Guido said,
    things will never be the same.  Thanks, David!

Lib/idlelib/AutoExpand.py
Lib/idlelib/Bindings.py
Lib/idlelib/EditorWindow.py
Lib/idlelib/PyShell.py
Lib/idlelib/config-keys.def
Lib/idlelib/configHandler.py
Lib/idlelib/help.txt

index 88018305fc2ecb4a68569f65bdca57c6765e3634..9e93d57d65206daa1fb0ada2a5e1e6a0e4b27bd5 100644 (file)
@@ -9,7 +9,7 @@ class AutoExpand:
 
     menudefs = [
         ('edit', [
-            ('E_xpand word', '<<expand-word>>'),
+            ('E_xpand Word', '<<expand-word>>'),
          ]),
     ]
 
index ee81bac7fb8c0fba45f22b762019c32ce6879b80..b177a5ed45118a9daae46d55991aeb121e8c4b47 100644 (file)
@@ -55,13 +55,16 @@ menudefs = [
  ('run',[
    ('Python Shell', '<<open-python-shell>>'),
  ]),
- ('debug', [
+ ('shell', [
+   ('_View Last Restart', '<<view-restart>>'),
+   ('_Restart Shell', '<<restart-shell>>'),
+   None,
    ('_Go to File/Line', '<<goto-file-line>>'),
-   ('_Stack Viewer', '<<open-stack-viewer>>'),
    ('!_Debugger', '<<toggle-debugger>>'),
+   ('_Stack Viewer', '<<open-stack-viewer>>'),
    ('!_Auto-open Stack Viewer', '<<toggle-jit-stack-viewer>>' ),
   ]),
- ('settings', [
+ ('options', [
    ('_Configure Idle...', '<<open-config-dialog>>'),
    None,
    ('Revert to _Default Settings', '<<revert-all-settings>>'),
@@ -69,7 +72,6 @@ menudefs = [
  ('help', [
    ('_IDLE Help...', '<<help>>'),
    ('Python _Documentation...', '<<python-docs>>'),
-   ('_Advice...', '<<good-advice>>'),
    ('View IDLE _Readme...', '<<view-readme>>'),
    None,
    ('_About IDLE...', '<<about-idle>>'),
index 96a894a4b55a334e25f2afd570e24f7f2ad73850..47256dc6280cea982f2236edeabb3d14c1968d59 100644 (file)
@@ -60,6 +60,7 @@ class EditorWindow:
                 'recent-files.lst')
         self.vbar = vbar = Scrollbar(top, name='vbar')
         self.text_frame = text_frame = Frame(top)
+        self.width = idleConf.GetOption('main','EditorWindow','width')
         self.text = text = Text(text_frame, name='text', padx=5, wrap='none',
                 foreground=idleConf.GetHighlight(currentTheme,
                         'normal',fgBg='fg'),
@@ -71,7 +72,7 @@ class EditorWindow:
                         'hilite',fgBg='bg'),
                 insertbackground=idleConf.GetHighlight(currentTheme,
                         'cursor',fgBg='fg'),
-                width=idleConf.GetOption('main','EditorWindow','width'),
+                width=self.width,
                 height=idleConf.GetOption('main','EditorWindow','height') )
 
         self.createmenubar()
@@ -84,7 +85,6 @@ class EditorWindow:
         text.bind("<<paste>>", self.paste)
         text.bind("<<center-insert>>", self.center_insert_event)
         text.bind("<<help>>", self.help_dialog)
-        text.bind("<<good-advice>>", self.good_advice)
         text.bind("<<view-readme>>", self.view_readme)
         text.bind("<<python-docs>>", self.python_docs)
         text.bind("<<about-idle>>", self.about_dialog)
@@ -213,7 +213,7 @@ class EditorWindow:
         ("edit", "_Edit"),
         ("format", "F_ormat"),
         ("run", "_Run"),
-        ("settings", "_Settings"),
+        ("options", "_Options"),
         ("windows", "_Windows"),
         ("help", "_Help"),
     ]
@@ -277,9 +277,6 @@ class EditorWindow:
     def config_dialog(self, event=None):
         configDialog.ConfigDialog(self.top,'Settings')
 
-    def good_advice(self, event=None):
-        tkMessageBox.showinfo('Advice', "Don't Panic!", master=self.text)
-
     def view_readme(self, event=None):
         fn=os.path.join(os.path.abspath(os.path.dirname(__file__)),'README.txt')
         textView.TextViewer(self.top,'IDLEfork - README',fn)
@@ -666,6 +663,13 @@ class EditorWindow:
         text = self.text
         return int(float(text.index(mark)))
 
+    def get_geometry(self):
+        "Return (width, height, x, y)"
+        geom = self.top.wm_geometry()
+        m = re.match(r"(\d+)x(\d+)\+(-?\d+)\+(-?\d+)", geom)
+        tuple = (map(int, m.groups()))
+        return tuple
+
     def close_event(self, event):
         self.close()
 
index 61143594fb3481cd3bfdc65b853110888504dd84..77e4cf1e01c66152d717893508f9bf4bad48cac5 100644 (file)
@@ -366,6 +366,12 @@ class ModifiedInterpreter(InteractiveInterpreter):
         self.spawn_subprocess()
         self.rpcclt.accept()
         self.transfer_path()
+        # annotate restart in shell window and mark it
+        console = self.tkconsole
+        halfbar = ((int(console.width) - 16) // 2) * '='
+        console.write(halfbar + ' RESTART ' + halfbar)
+        console.text.mark_set("restart", "end-1c")
+        console.text.mark_gravity("restart", "left")
         # restart remote debugger
         if debug:
             gui = RemoteDebugger.restart_subprocess_debugger(self.rpcclt)
@@ -652,8 +658,8 @@ class PyShell(OutputWindow):
     menu_specs = [
         ("file", "_File"),
         ("edit", "_Edit"),
-        ("debug", "_Debug"),
-        ("settings", "_Settings"),
+        ("shell", "_Shell"),
+        ("options", "_Options"),
         ("windows", "_Windows"),
         ("help", "_Help"),
     ]
@@ -687,6 +693,8 @@ class PyShell(OutputWindow):
         text.bind("<<toggle-debugger>>", self.toggle_debugger)
         text.bind("<<open-python-shell>>", self.flist.open_shell)
         text.bind("<<toggle-jit-stack-viewer>>", self.toggle_jit_stack_viewer)
+        text.bind("<<view-restart>>", self.view_restart_mark)
+        text.bind("<<restart-shell>>", self.restart_shell)
         #
         self.save_stdout = sys.stdout
         self.save_stderr = sys.stderr
@@ -727,7 +735,7 @@ class PyShell(OutputWindow):
         db = self.interp.getdebugger()
         self.setvar("<<toggle-debugger>>", not not db)
 
-    def toggle_jit_stack_viewer( self, event=None):
+    def toggle_jit_stack_viewer(self, event=None):
         pass # All we need is the variable
 
     def close_debugger(self):
@@ -1024,6 +1032,14 @@ class PyShell(OutputWindow):
         from StackViewer import StackBrowser
         sv = StackBrowser(self.root, self.flist)
 
+    def view_restart_mark(self, event=None):
+        self.text.see("iomark")
+        self.text.see("restart")
+
+    def restart_shell(self, event=None):
+        self.interp.restart_subprocess()
+        self.showprompt()
+
     def showprompt(self):
         self.resetoutput()
         try:
index 821ee12018248349aacb5fe3cb51570e545cac98..ff4debc809c57f0e2180eee4f0fabd72178fda9a 100644 (file)
@@ -10,7 +10,7 @@
 [IDLE Classic Windows]
 copy=<Control-Key-c>
 cut=<Control-Key-x>
-paste=<Control-Key-m>
+paste=<Control-Key-v>
 beginning-of-line= <Key-Home>
 center-insert=<Control-Key-l>
 close-all-windows=<Control-Key-q>
@@ -22,6 +22,7 @@ python-context-help=<Shift-Key-F1>
 history-next=<Alt-Key-n>
 history-previous=<Alt-Key-p>
 interrupt-execution=<Control-Key-c>
+view-restart=<Key-F6>
 open-class-browser=<Alt-Key-c>
 open-module=<Alt-Key-m>
 open-new-window=<Control-Key-n>
@@ -67,6 +68,7 @@ end-of-file=<Control-Key-d>
 history-next=<Alt-Key-n> <Meta-Key-n>
 history-previous=<Alt-Key-p> <Meta-Key-p>
 interrupt-execution=<Control-Key-c>
+view-restart=<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>
@@ -116,6 +118,7 @@ python-context-help=<Shift-Key-F1>
 history-next=<Control-Key-n>
 history-previous=<Control-Key-p>
 interrupt-execution=<Control-Key-c>
+view-restart=<Key-F6>
 open-class-browser=<Command-Key-b>
 open-module=<Command-Key-m>
 open-new-window=<Command-Key-n>
index 71558a8f6d5b9c743999cfd152990414520312e3..cf2b6dbc82653acff9587c0be6047aff8ad77f15 100644 (file)
@@ -508,6 +508,7 @@ class IdleConf:
             '<<history-next>>': ['<Alt-n>'],
             '<<history-previous>>': ['<Alt-p>'],
             '<<interrupt-execution>>': ['<Control-c>'],
+            '<<view-restart>>': ['<F6>'],
             '<<open-class-browser>>': ['<Alt-c>'],
             '<<open-module>>': ['<Alt-m>'],
             '<<open-new-window>>': ['<Control-n>'],
index dfba6c0caf20b6a40ce4688f442ebe4fa5297de0..5d4acd0f8880a7376915aa0fb9e92a4de45cd127 100644 (file)
@@ -1,4 +1,4 @@
-[See end for ** TIPS ]
+[See end for ** TIPS on using IDLE]
 
 Click on the dotted line at the top of a menu to "tear it off": a
 separate window containing the menu is created.
@@ -11,7 +11,7 @@ File Menu:
        Open Module... -- open an existing module (searches sys.path)
        Class Browser -- show classes and methods in current file
        Path Browser -- show sys.path directories, modules, classes
-                       and methods
+                       and methods
        ---
        Save -- save current window to the associated file (unsaved
                windows have a * before and after the window title)
@@ -64,7 +64,18 @@ Run Menu (only in Edit window):
        Check Module -- Run a syntax check on the module
        Run Script -- Execute the current file in the __main__ namespace
 
-Settings Menu:
+Shell Menu (only in Shell window):
+
+       View Last Restart -- Scroll the shell window to the last restart
+       Restart Shell -- Restart the interpreter with a fresh environment
+        ---
+       Go to File/Line -- look around the insert point for a filename
+                          and linenumber, open the file, and show the line
+       Debugger (toggle) -- Run commands in the shell under the debugger
+       Stack Viewer -- show the stack traceback of the last exception
+       Auto-open Stack Viewer (toggle) -- Open stack viewer on traceback
+
+Options Menu:
 
        Configure IDLE -- Open a configuration dialog.  Fonts, indentation,
                          keybindings, and color themes may be altered.
@@ -81,20 +92,11 @@ Windows Menu:
        select one to bring it to the foreground (deiconifying it if
        necessary).
 
-Debug Menu (in the Python Shell window only):
-
-       Go to File/Line -- look around the insert point for a filename
-                          and linenumber, open the file, and show the line
-       Stack Viewer -- show the stack traceback of the last exception
-       Debugger (toggle) -- Run commands in the shell under the debugger
-       Auto-open Stack Viewer (toggle) -- Open stack viewer on traceback
-
 Help Menu:
 
         IDLE Help -- Display this file
        Python Documentation -- Access local Python documentation, if
                                 installed.  Otherwise access python.org.
-       Advice -- Emergency Only!
        IDLE Readme -- Background discussion and change details
        ---
        About IDLE --- Version, copyright, license, credits