blob: f400d1e78345f6dfb56bf47f308adbf1589fc3d5 [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 Rossum7f2c9d31999-09-09 14:16:02 +000012 - display class name in stack viewer entries for methods
13 - suppress tracing through IDLE internals (e.g. print)
14 - add a button to suppress through a specific module or class or method
Guido van Rossum5ec13c51999-02-08 22:27:18 +000015- insert the initial current directory into sys.path
16- default directory attribute for each window instead of only for windows
17 that have an associated filename
Guido van Rossum6ba219e1999-01-07 00:10:00 +000018- command expansion from keywords, module contents, other buffers, etc.
19- "Recent documents" menu item
Guido van Rossum9f5362b1999-04-22 14:07:33 +000020- Filter region command
Guido van Rossum4c6d0c71999-04-22 22:32:32 +000021- Optional horizontal scroll bar
Guido van Rossum801296c2000-03-07 15:17:53 +000022- more Emacsisms:
23 - ^K should cut to buffer
Guido van Rossum5ec13c51999-02-08 22:27:18 +000024 - M-[, M-] to move by paragraphs
Guido van Rossum5ec13c51999-02-08 22:27:18 +000025 - incremental search?
Guido van Rossum2092b431999-05-21 04:45:20 +000026- search should indicate wrap-around in some way
Guido van Rossum6ba219e1999-01-07 00:10:00 +000027- restructure state sensitive code to avoid testing flags all the time
Guido van Rossum6ba219e1999-01-07 00:10:00 +000028- persistent user state (e.g. window and cursor positions, bindings)
29- make backups when saving
30- check file mtimes at various points
Guido van Rossumb4b83812000-02-15 17:15:36 +000031- Pluggable interface with RCS/CVS/Perforce/Clearcase
Guido van Rossum6ba219e1999-01-07 00:10:00 +000032- better help?
Guido van Rossum9f5362b1999-04-22 14:07:33 +000033- don't open second class browser on same module (nor second path browser)
34- unify class and path browsers
Guido van Rossum801296c2000-03-07 15:17:53 +000035- Need to define a standard way whereby one can determine one is running
Guido van Rossum9f5362b1999-04-22 14:07:33 +000036 inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP)
Guido van Rossumaba953e1999-07-15 13:11:02 +000037- Add more utility methods for use by extensions (a la get_selection)
38- Way to run command in totally separate interpreter (fork+os.system?)
39- Way to find definition of fully-qualified name:
40 In other words, select "UserDict.UserDict", hit some magic key and
41 it loads up UserDict.py and finds the first def or class for UserDict.
Guido van Rossum7f2c9d31999-09-09 14:16:02 +000042- need a way to force colorization on/off
Guido van Rossum801296c2000-03-07 15:17:53 +000043- need a way to force auto-indent on/off
Guido van Rossum6ba219e1999-01-07 00:10:00 +000044
45Details:
46
47- when there's a selection, left/right arrow should go to either
48 end of the selection
49- ^O (on Unix -- open-line) should honor autoindent
50- after paste, show end of pasted text
51- on Windows, should turn short filename to long filename (not only in argv!)
52 (shouldn't this be done -- or undone -- by ntpath.normpath?)
Guido van Rossum2092b431999-05-21 04:45:20 +000053- new autoindent after colon even indents when the colon is in a comment!
54- sometimes forward slashes in pathname remain
55- sometimes star in window name remains in Windows menu
Guido van Rossum801296c2000-03-07 15:17:53 +000056- With unix bindings, ESC by itself is ignored
57- Sometimes for no apparent reason a selection from the cursor to the
58 end of the command buffer appears, which is hard to get rid of
59 because it stays when you are typing!
60- The Line/Col in the status bar can be wrong initially in PyShell
Guido van Rossum6ba219e1999-01-07 00:10:00 +000061
62Structural problems:
63
64- too much knowledge in FileList about EditorWindow (for example)
Guido van Rossum2092b431999-05-21 04:45:20 +000065- should add some primitives for accessing the selection etc.
66 to repeat cumbersome code over and over
Guido van Rossum6ba219e1999-01-07 00:10:00 +000067
68======================================================================
69
70Jeff Bauer suggests:
71
Guido van Rossum6ba219e1999-01-07 00:10:00 +000072- Open Module doesn't appear to handle hierarchical packages.
73- Class browser should also allow hierarchical packages.
74- Open and Open Module could benefit from a history,
75 either command line style, or Microsoft recent-file
76 style.
77- Add a Smalltalk-style inspector (i.e. Tkinspect)
78
79The last suggestion is already a reality, but not yet
80integrated into IDLE. I use a module called inspector.py,
81that used to be available from python.org(?) It no longer
82appears to be in the contributed section, and the source
83has no author attribution.
84
85In any case, the code is useful for visually navigating
86an object's attributes, including its container hierarchy.
87
88 >>> from inspector import Tkinspect
89 >>> Tkinspect(None, myObject)
90
91Tkinspect could probably be extended and refined to
92integrate better into IDLE.
93
94======================================================================
95
96Comparison to PTUI
97------------------
98
Guido van Rossum6ba219e1999-01-07 00:10:00 +000099+ PTUI's help is better (HTML!)
100
101+ PTUI can attach a shell to any module
102
Guido van Rossum801296c2000-03-07 15:17:53 +0000103+ PTUI has some more I/O commands:
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000104 open multiple
105 append
Guido van Rossum801296c2000-03-07 15:17:53 +0000106 examine (what's that?)
Guido van Rossum6ba219e1999-01-07 00:10:00 +0000107
108======================================================================
109
110Notes after trying to run Grail
111-------------------------------
112
113- Grail does stuff to sys.path based on sys.argv[0]; you must set
114sys.argv[0] to something decent first (it is normally set to the path of
115the idle script).
116
117- Grail must be exec'ed in __main__ because that's imported by some
118other parts of Grail.
119
120- Grail uses a module called History and so does idle :-(
121
122======================================================================
Guido van Rossum801296c2000-03-07 15:17:53 +0000123
124Robin Friedrich's items:
125
126Things I'd like to see:
127 - I'd like support for shift-click extending the selection. There's a
128 bug now that it doesn't work the first time you try it.
129 - Printing is needed. How hard can that be on Windows?
130 - The python-mode trick of autoindenting a line with <tab> is neat and
131 very handy.
132 - (someday) a spellchecker for docstrings and comments.
133 - a pagedown/up command key which moves to next class/def statement (top
134 level)
135 - split window capability
136 - DnD text relocation/copying
137
138Things I don't want to see.
139 - line numbers... will probably slow things down way too much.
140 - Please use another icon for the tree browser leaf. The small snake
141 isn't cutting it.
142
143----------------------------------------------------------------------
144
145- Customizable views (multi-window or multi-pane). (Markus Gritsch)
146
147- Being able to double click (maybe double right click) on a callable
148object in the editor which shows the source of the object, if
149possible. (Gerrit Holl)
150
151- Hooks into the guts, like in Emacs. (Mike Romberg)
152
153- Sharing the editor with a remote tutor. (Martijn Faassen)
154
155- Multiple views on the same file. (Tony J Ibbs)
156
157- Store breakpoints in a global (per-project) database (GvR); Dirk
158Heise adds: save some space-trimmed context and search around when
159reopening a file that might have been edited by someone else.
160
161- Capture menu events in extensions without changing the IDLE source.
162(Matthias Barmeier)
163
164- Use overlapping panels (a "notebook" in MFC terms I think) for info
165that doesn't need to be accessible simultaneously (e.g. HTML source
166and output). Use multi-pane windows for info that does need to be
167shown together (e.g. class browser and source). (Albert Brandl)
168
169- A project should invisibly track all symbols, for instant search,
170replace and cross-ref. Projects should be allowed to span multiple
171directories, hosts, etc. Project management files are placed in a
172directory you specify. A global mapping between project names and
173project directories should exist [not so sure --GvR]. (Tim Peters)
174
175- Merge attr-tips and auto-expand. (Mark Hammond, Tim Peters)
176
177- Python Shell should behave more like a "shell window" as users know
178it -- i.e. you can only edit the current command, and the cursor can't
179escape from the command area. (Albert Brandl)
180
181- Set X11 class to "idle/Idle", set icon and title to something
182beginning with "idle" -- for window manangers. (Randall Hopper)
183
184- Config files editable through a preferences dialog. (me)
185
186- Config files still editable outside the preferences dialog.
187(Randall Hopper)
188
189- When you're editing a command in PyShell, and there are only blank
190lines below the cursor, hitting Return should ignore or delete those
191blank lines rather than deciding you're not on the last line. (me)
192
193- Run command (F5 c.s.) should be more like Pythonwin's Run -- a
194dialog with options to give command line arguments, run the debugger,
195etc. (me)
196
197- Shouldn't be able to delete part of the prompt (or any text before
198it) in the PyShell. (Martijn Faassen)
199
200- Emacs style auto-fill (also smart about comments and strings).
201(Jeremy Hylton)
202
203- Output of Run Script should go to a separate output window, not to
204the shell window. Output of separate runs should all go to the same
205window but clearly delimited. (David Scherer)
Guido van Rossume39a88f2000-04-11 15:30:19 +0000206
207- GUI form designer to kick VB's butt. (Robert Geiger)
208
209- Printing! Possibly via generation of PDF files which the user must
210then send to the printer separately. (Dinu Gherman)