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