| 
									
										
										
										
											2001-07-19 04:49:13 +00:00
										 |  |  | Original IDLE todo, much of it now outdated: | 
					
						
							|  |  |  | ============================================ | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | TO DO: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - improve debugger: | 
					
						
							|  |  |  |     - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc. | 
					
						
							|  |  |  |     - real object browser | 
					
						
							|  |  |  |     - help on how to use it (a simple help button will do wonders) | 
					
						
							|  |  |  |     - performance?  (updates of large sets of locals are slow) | 
					
						
							|  |  |  |     - better integration of "debug module" | 
					
						
							|  |  |  |     - debugger should be global resource (attached to flist, not to shell) | 
					
						
							|  |  |  |     - fix the stupid bug where you need to step twice | 
					
						
							|  |  |  |     - display class name in stack viewer entries for methods | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  |     - suppress tracing through IDLE internals (e.g. print) DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |     - add a button to suppress through a specific module or class or method | 
					
						
							| 
									
										
										
										
											2001-07-12 06:38:24 +00:00
										 |  |  |     - more object inspection to stack viewer, e.g. to view all array items | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - insert the initial current directory into sys.path DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | - default directory attribute for each window instead of only for windows | 
					
						
							|  |  |  |   that have an associated filename | 
					
						
							|  |  |  | - command expansion from keywords, module contents, other buffers, etc. | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - "Recent documents" menu item DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | - Filter region command | 
					
						
							|  |  |  | - Optional horizontal scroll bar | 
					
						
							|  |  |  | - more Emacsisms: | 
					
						
							|  |  |  |     - ^K should cut to buffer | 
					
						
							|  |  |  |     - M-[, M-] to move by paragraphs | 
					
						
							|  |  |  |     - incremental search? | 
					
						
							|  |  |  | - search should indicate wrap-around in some way | 
					
						
							|  |  |  | - restructure state sensitive code to avoid testing flags all the time | 
					
						
							|  |  |  | - persistent user state (e.g. window and cursor positions, bindings) | 
					
						
							|  |  |  | - make backups when saving | 
					
						
							|  |  |  | - check file mtimes at various points | 
					
						
							|  |  |  | - Pluggable interface with RCS/CVS/Perforce/Clearcase | 
					
						
							|  |  |  | - better help? | 
					
						
							|  |  |  | - don't open second class browser on same module (nor second path browser) | 
					
						
							|  |  |  | - unify class and path browsers | 
					
						
							|  |  |  | - Need to define a standard way whereby one can determine one is running | 
					
						
							|  |  |  |   inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP) | 
					
						
							|  |  |  | - Add more utility methods for use by extensions (a la get_selection) | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - Way to run command in totally separate interpreter (fork+os.system?) DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | - Way to find definition of fully-qualified name: | 
					
						
							|  |  |  |   In other words, select "UserDict.UserDict", hit some magic key and | 
					
						
							|  |  |  |   it loads up UserDict.py and finds the first def or class for UserDict. | 
					
						
							|  |  |  | - need a way to force colorization on/off | 
					
						
							|  |  |  | - need a way to force auto-indent on/off | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Details: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - ^O (on Unix -- open-line) should honor autoindent | 
					
						
							|  |  |  | - after paste, show end of pasted text | 
					
						
							|  |  |  | - on Windows, should turn short filename to long filename (not only in argv!) | 
					
						
							|  |  |  |   (shouldn't this be done -- or undone -- by ntpath.normpath?) | 
					
						
							|  |  |  | - new autoindent after colon even indents when the colon is in a comment! | 
					
						
							|  |  |  | - sometimes forward slashes in pathname remain | 
					
						
							|  |  |  | - sometimes star in window name remains in Windows menu | 
					
						
							|  |  |  | - With unix bindings, ESC by itself is ignored | 
					
						
							|  |  |  | - Sometimes for no apparent reason a selection from the cursor to the | 
					
						
							|  |  |  |   end of the command buffer appears, which is hard to get rid of | 
					
						
							|  |  |  |   because it stays when you are typing! | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - The Line/Col in the status bar can be wrong initially in PyShell DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Structural problems: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - too much knowledge in FileList about EditorWindow (for example) | 
					
						
							|  |  |  | - should add some primitives for accessing the selection etc. | 
					
						
							|  |  |  |   to repeat cumbersome code over and over | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ====================================================================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Jeff Bauer suggests: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Open Module doesn't appear to handle hierarchical packages. | 
					
						
							|  |  |  | - Class browser should also allow hierarchical packages. | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - Open and Open Module could benefit from a history, DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |   either command line style, or Microsoft recent-file | 
					
						
							|  |  |  |   style. | 
					
						
							|  |  |  | - Add a Smalltalk-style inspector  (i.e. Tkinspect) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The last suggestion is already a reality, but not yet | 
					
						
							|  |  |  | integrated into IDLE.  I use a module called inspector.py, | 
					
						
							|  |  |  | that used to be available from python.org(?)  It no longer | 
					
						
							|  |  |  | appears to be in the contributed section, and the source | 
					
						
							|  |  |  | has no author attribution. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In any case, the code is useful for visually navigating | 
					
						
							|  |  |  | an object's attributes, including its container hierarchy. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     >>> from inspector import Tkinspect | 
					
						
							|  |  |  |     >>> Tkinspect(None, myObject) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Tkinspect could probably be extended and refined to | 
					
						
							|  |  |  | integrate better into IDLE. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ====================================================================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Comparison to PTUI | 
					
						
							|  |  |  | ------------------ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | + PTUI's help is better (HTML!) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | + PTUI can attach a shell to any module | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | + PTUI has some more I/O commands: | 
					
						
							|  |  |  |   open multiple | 
					
						
							|  |  |  |   append | 
					
						
							|  |  |  |   examine (what's that?) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ====================================================================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Notes after trying to run Grail | 
					
						
							|  |  |  | ------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Grail does stuff to sys.path based on sys.argv[0]; you must set | 
					
						
							|  |  |  | sys.argv[0] to something decent first (it is normally set to the path of | 
					
						
							|  |  |  | the idle script). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Grail must be exec'ed in __main__ because that's imported by some | 
					
						
							|  |  |  | other parts of Grail. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Grail uses a module called History and so does idle :-( | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ====================================================================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Robin Friedrich's items: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Things I'd like to see: | 
					
						
							|  |  |  |     - I'd like support for shift-click extending the selection. There's a | 
					
						
							|  |  |  |       bug now that it doesn't work the first time you try it. | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  |     - Printing is needed. How hard can that be on Windows? FIRST CUT DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |     - The python-mode trick of autoindenting a line with <tab> is neat and | 
					
						
							|  |  |  |       very handy. | 
					
						
							|  |  |  |     - (someday) a spellchecker for docstrings and comments. | 
					
						
							|  |  |  |     - a pagedown/up command key which moves to next class/def statement (top | 
					
						
							|  |  |  |       level) | 
					
						
							|  |  |  |     - split window capability | 
					
						
							|  |  |  |     - DnD text relocation/copying | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Things I don't want to see. | 
					
						
							|  |  |  |     - line numbers...  will probably slow things down way too much. | 
					
						
							|  |  |  |     - Please use another icon for the tree browser leaf. The small snake | 
					
						
							|  |  |  |       isn't cutting it. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ---------------------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Customizable views (multi-window or multi-pane).  (Markus Gritsch) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Being able to double click (maybe double right click) on a callable | 
					
						
							|  |  |  | object in the editor which shows the source of the object, if | 
					
						
							|  |  |  | possible.  (Gerrit Holl) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Hooks into the guts, like in Emacs.  (Mike Romberg) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Sharing the editor with a remote tutor.  (Martijn Faassen) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Multiple views on the same file.  (Tony J Ibbs) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Store breakpoints in a global (per-project) database (GvR); Dirk | 
					
						
							|  |  |  | Heise adds: save some space-trimmed context and search around when | 
					
						
							|  |  |  | reopening a file that might have been edited by someone else. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Capture menu events in extensions without changing the IDLE source. | 
					
						
							|  |  |  | (Matthias Barmeier) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Use overlapping panels (a "notebook" in MFC terms I think) for info | 
					
						
							|  |  |  | that doesn't need to be accessible simultaneously (e.g. HTML source | 
					
						
							|  |  |  | and output).  Use multi-pane windows for info that does need to be | 
					
						
							|  |  |  | shown together (e.g. class browser and source).  (Albert Brandl) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - A project should invisibly track all symbols, for instant search, | 
					
						
							|  |  |  | replace and cross-ref.  Projects should be allowed to span multiple | 
					
						
							|  |  |  | directories, hosts, etc.  Project management files are placed in a | 
					
						
							|  |  |  | directory you specify.  A global mapping between project names and | 
					
						
							|  |  |  | project directories should exist [not so sure --GvR].  (Tim Peters) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Merge attr-tips and auto-expand.  (Mark Hammond, Tim Peters) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Python Shell should behave more like a "shell window" as users know | 
					
						
							|  |  |  | it -- i.e. you can only edit the current command, and the cursor can't | 
					
						
							|  |  |  | escape from the command area.  (Albert Brandl) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Set X11 class to "idle/Idle", set icon and title to something | 
					
						
							|  |  |  | beginning with "idle" -- for window manangers.  (Randall Hopper) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - Config files editable through a preferences dialog.  (me) DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Config files still editable outside the preferences dialog. | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | (Randall Hopper) DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | - When you're editing a command in PyShell, and there are only blank | 
					
						
							|  |  |  | lines below the cursor, hitting Return should ignore or delete those | 
					
						
							|  |  |  | blank lines rather than deciding you're not on the last line.  (me) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Run command (F5 c.s.) should be more like Pythonwin's Run -- a | 
					
						
							|  |  |  | dialog with options to give command line arguments, run the debugger, | 
					
						
							|  |  |  | etc.  (me) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Shouldn't be able to delete part of the prompt (or any text before | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | it) in the PyShell.  (Martijn Faassen)   DONE | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Emacs style auto-fill (also smart about comments and strings). | 
					
						
							|  |  |  | (Jeremy Hylton) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Output of Run Script should go to a separate output window, not to | 
					
						
							|  |  |  | the shell window.  Output of separate runs should all go to the same | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | window but clearly delimited.  (David Scherer) REJECT FIRST, LATTER DONE | 
					
						
							| 
									
										
										
										
											2001-07-12 06:38:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | - GUI form designer to kick VB's butt.  (Robert Geiger) THAT'S NOT IDLE | 
					
						
							| 
									
										
										
										
											2001-07-12 06:38:24 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Printing!  Possibly via generation of PDF files which the user must | 
					
						
							| 
									
										
										
										
											2003-06-01 01:11:14 +00:00
										 |  |  | then send to the printer separately.  (Dinu Gherman)  FIRST CUT |