Commit | Line | Data |
---|---|---|
920dae64 AT |
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 |