|
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 |
|
|