summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/TODO.txt
diff options
context:
space:
mode:
authorDavid Scherer <dscherer@cmu.edu>2000-08-15 01:13:23 (GMT)
committerDavid Scherer <dscherer@cmu.edu>2000-08-15 01:13:23 (GMT)
commit7aced17437a6b05bc4b0b5ff93aa6a5d3a374d68 (patch)
treece0576a16111fd86ac5f56ff4ec1500f29c4f8db /Lib/idlelib/TODO.txt
parent33a6da9971a923ceaaee1406d0feaa64b8d1759a (diff)
downloadcpython-7aced17437a6b05bc4b0b5ff93aa6a5d3a374d68.zip
cpython-7aced17437a6b05bc4b0b5ff93aa6a5d3a374d68.tar.gz
cpython-7aced17437a6b05bc4b0b5ff93aa6a5d3a374d68.tar.bz2
Initial revision
Diffstat (limited to 'Lib/idlelib/TODO.txt')
-rw-r--r--Lib/idlelib/TODO.txt205
1 files changed, 205 insertions, 0 deletions
diff --git a/Lib/idlelib/TODO.txt b/Lib/idlelib/TODO.txt
new file mode 100644
index 0000000..9701a87
--- /dev/null
+++ b/Lib/idlelib/TODO.txt
@@ -0,0 +1,205 @@
+
+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)
+ - add a button to suppress through a specific module or class or method
+- insert the initial current directory into sys.path
+- 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
+- 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?)
+- 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:
+
+- when there's a selection, left/right arrow should go to either
+ end of the selection
+- ^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
+
+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,
+ 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?
+ - 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)
+
+- Config files still editable outside the preferences dialog.
+(Randall Hopper)
+
+- 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)
+
+- 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)