menudefs = [
('edit', [
- ('E_xpand word', '<<expand-word>>'),
+ ('E_xpand Word', '<<expand-word>>'),
]),
]
('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>>'),
('help', [
('_IDLE Help...', '<<help>>'),
('Python _Documentation...', '<<python-docs>>'),
- ('_Advice...', '<<good-advice>>'),
('View IDLE _Readme...', '<<view-readme>>'),
None,
('_About IDLE...', '<<about-idle>>'),
'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'),
'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()
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)
("edit", "_Edit"),
("format", "F_ormat"),
("run", "_Run"),
- ("settings", "_Settings"),
+ ("options", "_Options"),
("windows", "_Windows"),
("help", "_Help"),
]
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)
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()
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)
menu_specs = [
("file", "_File"),
("edit", "_Edit"),
- ("debug", "_Debug"),
- ("settings", "_Settings"),
+ ("shell", "_Shell"),
+ ("options", "_Options"),
("windows", "_Windows"),
("help", "_Help"),
]
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
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):
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:
[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>
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>
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>
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>
'<<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>'],
-[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.
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)
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.
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