mirror of
				https://github.com/python/cpython.git
				synced 2025-10-27 03:34:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			210 lines
		
	
	
	
		
			8.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			210 lines
		
	
	
	
		
			8.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Original IDLE todo, much of it now outdated:
 | |
| ============================================
 | |
| 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
 | |
|     - suppress tracing through IDLE internals (e.g. print) DONE
 | |
|     - add a button to suppress through a specific module or class or method
 | |
|     - more object inspection to stack viewer, e.g. to view all array items
 | |
| - insert the initial current directory into sys.path DONE
 | |
| - 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.
 | |
| - "Recent documents" menu item DONE
 | |
| - 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)
 | |
| - Way to run command in totally separate interpreter (fork+os.system?) DONE
 | |
| - 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!
 | |
| - The Line/Col in the status bar can be wrong initially in PyShell DONE
 | |
| 
 | |
| 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.
 | |
| - Open and Open Module could benefit from a history, DONE
 | |
|   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.
 | |
|     - Printing is needed. How hard can that be on Windows? FIRST CUT DONE
 | |
|     - 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)
 | |
| 
 | |
| - Config files editable through a preferences dialog.  (me) DONE
 | |
| 
 | |
| - Config files still editable outside the preferences dialog.
 | |
| (Randall Hopper) DONE
 | |
| 
 | |
| - 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
 | |
| it) in the PyShell.  (Martijn Faassen)   DONE
 | |
| 
 | |
| - 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
 | |
| window but clearly delimited.  (David Scherer) REJECT FIRST, LATTER DONE
 | |
| 
 | |
| - GUI form designer to kick VB's butt.  (Robert Geiger) THAT'S NOT IDLE
 | |
| 
 | |
| - Printing!  Possibly via generation of PDF files which the user must
 | |
| then send to the printer separately.  (Dinu Gherman)  FIRST CUT
 | 
