blob: 071a07aa1427a9c211da00232e754c87ec2e7ae2 [file] [log] [blame]
Guido van Rossum6ba219e1999-01-07 00:10:00 +00001
2TO DO:
3
Guido van Rossum5ec13c51999-02-08 22:27:18 +00004- improve debugger:
5 - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc.
6 - real object browser
Guido van Rossum5ec13c51999-02-08 22:27:18 +00007 - help on how to use it (a simple help button will do wonders)
8 - performance? (updates of large sets of locals are slow)
9 - better integration of "debug module"
Guido van Rossum4c6d0c71999-04-22 22:32:32 +000010 - debugger should be global resource (attached to flist, not to shell)
11 - fix the stupid bug where you need to step twice
Guido van Rossum2092b431999-05-21 04:45:20 +000012 - after closing and reopening PyShell, debugger no longer works :-(
Guido van Rossum7f2c9d31999-09-09 14:16:02 +000013 - display class name in stack viewer entries for methods
14 - suppress tracing through IDLE internals (e.g. print)
15 - add a button to suppress through a specific module or class or method
Guido van Rossum5ec13c51999-02-08 22:27:18 +000016- insert the initial current directory into sys.path
17- default directory attribute for each window instead of only for windows
18 that have an associated filename
Guido van Rossum6ba219e1999-01-07 00:10:00 +000019- command expansion from keywords, module contents, other buffers, etc.
20- "Recent documents" menu item
Guido van Rossum9f5362b1999-04-22 14:07:33 +000021- Filter region command
Guido van Rossum4c6d0c71999-04-22 22:32:32 +000022- Optional horizontal scroll bar
Guido van Rossum6ba219e1999-01-07 00:10:00 +000023- more emacsisms:
Guido van Rossum5ec13c51999-02-08 22:27:18 +000024 - parentheses matching
25 - M-[, M-] to move by paragraphs
Guido van Rossum5ec13c51999-02-08 22:27:18 +000026 - incremental search?
27 - ^K should cut to buffer
Guido van Rossum2092b431999-05-21 04:45:20 +000028- search should indicate wrap-around in some way
Guido van Rossum6ba219e1999-01-07 00:10:00 +000029- restructure state sensitive code to avoid testing flags all the time
Guido van Rossum6ba219e1999-01-07 00:10:00 +000030- persistent user state (e.g. window and cursor positions, bindings)
31- make backups when saving
32- check file mtimes at various points
Guido van Rossumb4b83812000-02-15 17:15:36 +000033- Pluggable interface with RCS/CVS/Perforce/Clearcase
Guido van Rossum4c6d0c71999-04-22 22:32:32 +000034- status bar???
Guido van Rossum6ba219e1999-01-07 00:10:00 +000035- better help?
Guido van Rossum9f5362b1999-04-22 14:07:33 +000036- don't open second class browser on same module (nor second path browser)
37- unify class and path browsers
38- use a tree widget instead of a smalltalk/NeXT style multicolumn browser
Guido van Rossum4c6d0c71999-04-22 22:32:32 +000039 Need to define a standard way whereby one can determine one is running
Guido van Rossum9f5362b1999-04-22 14:07:33 +000040 inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP)
Guido van Rossumaba953e1999-07-15 13:11:02 +000041- Add more utility methods for use by extensions (a la get_selection)
42- Way to run command in totally separate interpreter (fork+os.system?)
43- Way to find definition of fully-qualified name:
44 In other words, select "UserDict.UserDict", hit some magic key and
45 it loads up UserDict.py and finds the first def or class for UserDict.
Guido van Rossum7f2c9d31999-09-09 14:16:02 +000046- need a way to force colorization on/off
Guido van Rossum6ba219e1999-01-07 00:10:00 +000047
48Details:
49
50- when there's a selection, left/right arrow should go to either
51 end of the selection
52- ^O (on Unix -- open-line) should honor autoindent
53- after paste, show end of pasted text
54- on Windows, should turn short filename to long filename (not only in argv!)
55 (shouldn't this be done -- or undone -- by ntpath.normpath?)
Guido van Rossum2092b431999-05-21 04:45:20 +000056- new autoindent after colon even indents when the colon is in a comment!
57- sometimes forward slashes in pathname remain
58- sometimes star in window name remains in Windows menu
Guido van Rossum6ba219e1999-01-07 00:10:00 +000059
60Structural problems:
61
62- too much knowledge in FileList about EditorWindow (for example)
Guido van Rossum2092b431999-05-21 04:45:20 +000063- should add some primitives for accessing the selection etc.
64 to repeat cumbersome code over and over
Guido van Rossum6ba219e1999-01-07 00:10:00 +000065
66======================================================================
67
68Jeff Bauer suggests:
69
70- The editor should show the current line number.
71- Open Module doesn't appear to handle hierarchical packages.
72- Class browser should also allow hierarchical packages.
73- Open and Open Module could benefit from a history,
74 either command line style, or Microsoft recent-file
75 style.
76- Add a Smalltalk-style inspector (i.e. Tkinspect)
77
78The last suggestion is already a reality, but not yet
79integrated into IDLE. I use a module called inspector.py,
80that used to be available from python.org(?) It no longer
81appears to be in the contributed section, and the source
82has no author attribution.
83
84In any case, the code is useful for visually navigating
85an object's attributes, including its container hierarchy.
86
87 >>> from inspector import Tkinspect
88 >>> Tkinspect(None, myObject)
89
90Tkinspect could probably be extended and refined to
91integrate better into IDLE.
92
93======================================================================
94
95Comparison to PTUI
96------------------
97
98+ PTUI has a status line
99
100+ PTUI's help is better (HTML!)
101
102+ PTUI can attach a shell to any module
103
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000104+ PTUI has more bells and whistles:
105 open multiple
106 append
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000107 examine
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000108
109? PTUI's fontify is faster but synchronous (and still too slow);
110 does a lousy job if editing affects lines below
111
112- PTUI's shell is worse:
113 no coloring;
114 no editing of multi-line commands;
115 ^P seems to permanently remove some text from the buffer
116
117- PTUI's undo is worse:
118 no redo;
119 one char at a time
120
121- PTUI's GUI is a tad ugly:
122 I don't like the multiple buffers in one window model;
123 I don't like the big buttons at the top of the widow
124
125- PTUI lacks an integrated debugger
126
Guido van Rossum21ad59f1999-04-08 20:28:42 +0000127- PTUI lacks path and class browsers
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000128
129- PTUI lacks many of IDLE's features:
130 - expand word
131 - regular expression search
132 - search files (grep)
Guido van Rossumc66e8601999-01-11 14:52:40 +0000133 - (un)tabify
134 - center
135 - zoom height
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000136
137======================================================================
138
139Notes after trying to run Grail
140-------------------------------
141
142- Grail does stuff to sys.path based on sys.argv[0]; you must set
143sys.argv[0] to something decent first (it is normally set to the path of
144the idle script).
145
146- Grail must be exec'ed in __main__ because that's imported by some
147other parts of Grail.
148
149- Grail uses a module called History and so does idle :-(
150
151======================================================================