1 | Original IDLE todo, much of it now outdated:
|
---|
2 | ============================================
|
---|
3 | TO DO:
|
---|
4 |
|
---|
5 | - improve debugger:
|
---|
6 | - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc.
|
---|
7 | - real object browser
|
---|
8 | - help on how to use it (a simple help button will do wonders)
|
---|
9 | - performance? (updates of large sets of locals are slow)
|
---|
10 | - better integration of "debug module"
|
---|
11 | - debugger should be global resource (attached to flist, not to shell)
|
---|
12 | - fix the stupid bug where you need to step twice
|
---|
13 | - display class name in stack viewer entries for methods
|
---|
14 | - suppress tracing through IDLE internals (e.g. print) DONE
|
---|
15 | - add a button to suppress through a specific module or class or method
|
---|
16 | - more object inspection to stack viewer, e.g. to view all array items
|
---|
17 | - insert the initial current directory into sys.path DONE
|
---|
18 | - default directory attribute for each window instead of only for windows
|
---|
19 | that have an associated filename
|
---|
20 | - command expansion from keywords, module contents, other buffers, etc.
|
---|
21 | - "Recent documents" menu item DONE
|
---|
22 | - Filter region command
|
---|
23 | - Optional horizontal scroll bar
|
---|
24 | - more Emacsisms:
|
---|
25 | - ^K should cut to buffer
|
---|
26 | - M-[, M-] to move by paragraphs
|
---|
27 | - incremental search?
|
---|
28 | - search should indicate wrap-around in some way
|
---|
29 | - restructure state sensitive code to avoid testing flags all the time
|
---|
30 | - persistent user state (e.g. window and cursor positions, bindings)
|
---|
31 | - make backups when saving
|
---|
32 | - check file mtimes at various points
|
---|
33 | - Pluggable interface with RCS/CVS/Perforce/Clearcase
|
---|
34 | - better help?
|
---|
35 | - don't open second class browser on same module (nor second path browser)
|
---|
36 | - unify class and path browsers
|
---|
37 | - Need to define a standard way whereby one can determine one is running
|
---|
38 | inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP)
|
---|
39 | - Add more utility methods for use by extensions (a la get_selection)
|
---|
40 | - Way to run command in totally separate interpreter (fork+os.system?) DONE
|
---|
41 | - Way to find definition of fully-qualified name:
|
---|
42 | In other words, select "UserDict.UserDict", hit some magic key and
|
---|
43 | it loads up UserDict.py and finds the first def or class for UserDict.
|
---|
44 | - need a way to force colorization on/off
|
---|
45 | - need a way to force auto-indent on/off
|
---|
46 |
|
---|
47 | Details:
|
---|
48 |
|
---|
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?)
|
---|
53 | - 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
|
---|
56 | - 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 DONE
|
---|
61 |
|
---|
62 | Structural problems:
|
---|
63 |
|
---|
64 | - too much knowledge in FileList about EditorWindow (for example)
|
---|
65 | - should add some primitives for accessing the selection etc.
|
---|
66 | to repeat cumbersome code over and over
|
---|
67 |
|
---|
68 | ======================================================================
|
---|
69 |
|
---|
70 | Jeff Bauer suggests:
|
---|
71 |
|
---|
72 | - 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, DONE
|
---|
75 | either command line style, or Microsoft recent-file
|
---|
76 | style.
|
---|
77 | - Add a Smalltalk-style inspector (i.e. Tkinspect)
|
---|
78 |
|
---|
79 | The last suggestion is already a reality, but not yet
|
---|
80 | integrated into IDLE. I use a module called inspector.py,
|
---|
81 | that used to be available from python.org(?) It no longer
|
---|
82 | appears to be in the contributed section, and the source
|
---|
83 | has no author attribution.
|
---|
84 |
|
---|
85 | In any case, the code is useful for visually navigating
|
---|
86 | an object's attributes, including its container hierarchy.
|
---|
87 |
|
---|
88 | >>> from inspector import Tkinspect
|
---|
89 | >>> Tkinspect(None, myObject)
|
---|
90 |
|
---|
91 | Tkinspect could probably be extended and refined to
|
---|
92 | integrate better into IDLE.
|
---|
93 |
|
---|
94 | ======================================================================
|
---|
95 |
|
---|
96 | Comparison to PTUI
|
---|
97 | ------------------
|
---|
98 |
|
---|
99 | + PTUI's help is better (HTML!)
|
---|
100 |
|
---|
101 | + PTUI can attach a shell to any module
|
---|
102 |
|
---|
103 | + PTUI has some more I/O commands:
|
---|
104 | open multiple
|
---|
105 | append
|
---|
106 | examine (what's that?)
|
---|
107 |
|
---|
108 | ======================================================================
|
---|
109 |
|
---|
110 | Notes after trying to run Grail
|
---|
111 | -------------------------------
|
---|
112 |
|
---|
113 | - Grail does stuff to sys.path based on sys.argv[0]; you must set
|
---|
114 | sys.argv[0] to something decent first (it is normally set to the path of
|
---|
115 | the idle script).
|
---|
116 |
|
---|
117 | - Grail must be exec'ed in __main__ because that's imported by some
|
---|
118 | other parts of Grail.
|
---|
119 |
|
---|
120 | - Grail uses a module called History and so does idle :-(
|
---|
121 |
|
---|
122 | ======================================================================
|
---|
123 |
|
---|
124 | Robin Friedrich's items:
|
---|
125 |
|
---|
126 | Things 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? FIRST CUT DONE
|
---|
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 |
|
---|
138 | Things 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
|
---|
148 | object in the editor which shows the source of the object, if
|
---|
149 | possible. (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
|
---|
158 | Heise adds: save some space-trimmed context and search around when
|
---|
159 | reopening 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
|
---|
165 | that doesn't need to be accessible simultaneously (e.g. HTML source
|
---|
166 | and output). Use multi-pane windows for info that does need to be
|
---|
167 | shown together (e.g. class browser and source). (Albert Brandl)
|
---|
168 |
|
---|
169 | - A project should invisibly track all symbols, for instant search,
|
---|
170 | replace and cross-ref. Projects should be allowed to span multiple
|
---|
171 | directories, hosts, etc. Project management files are placed in a
|
---|
172 | directory you specify. A global mapping between project names and
|
---|
173 | project 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
|
---|
178 | it -- i.e. you can only edit the current command, and the cursor can't
|
---|
179 | escape from the command area. (Albert Brandl)
|
---|
180 |
|
---|
181 | - Set X11 class to "idle/Idle", set icon and title to something
|
---|
182 | beginning with "idle" -- for window manangers. (Randall Hopper)
|
---|
183 |
|
---|
184 | - Config files editable through a preferences dialog. (me) DONE
|
---|
185 |
|
---|
186 | - Config files still editable outside the preferences dialog.
|
---|
187 | (Randall Hopper) DONE
|
---|
188 |
|
---|
189 | - When you're editing a command in PyShell, and there are only blank
|
---|
190 | lines below the cursor, hitting Return should ignore or delete those
|
---|
191 | blank 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
|
---|
194 | dialog with options to give command line arguments, run the debugger,
|
---|
195 | etc. (me)
|
---|
196 |
|
---|
197 | - Shouldn't be able to delete part of the prompt (or any text before
|
---|
198 | it) in the PyShell. (Martijn Faassen) DONE
|
---|
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
|
---|
204 | the shell window. Output of separate runs should all go to the same
|
---|
205 | window but clearly delimited. (David Scherer) REJECT FIRST, LATTER DONE
|
---|
206 |
|
---|
207 | - GUI form designer to kick VB's butt. (Robert Geiger) THAT'S NOT IDLE
|
---|
208 |
|
---|
209 | - Printing! Possibly via generation of PDF files which the user must
|
---|
210 | then send to the printer separately. (Dinu Gherman) FIRST CUT
|
---|