Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 1 | |
| 2 | TO DO: |
| 3 | |
Guido van Rossum | 5ec13c5 | 1999-02-08 22:27:18 +0000 | [diff] [blame] | 4 | - improve debugger: |
| 5 | - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc. |
| 6 | - real object browser |
Guido van Rossum | 5ec13c5 | 1999-02-08 22:27:18 +0000 | [diff] [blame] | 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" |
Guido van Rossum | 4c6d0c7 | 1999-04-22 22:32:32 +0000 | [diff] [blame] | 10 | - debugger should be global resource (attached to flist, not to shell) |
| 11 | - fix the stupid bug where you need to step twice |
Guido van Rossum | 7f2c9d3 | 1999-09-09 14:16:02 +0000 | [diff] [blame] | 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 |
Guido van Rossum | e752baa | 2000-10-25 21:18:12 +0000 | [diff] [blame] | 15 | - more object inspection to stack viewer, e.g. to view all array items |
Guido van Rossum | 5ec13c5 | 1999-02-08 22:27:18 +0000 | [diff] [blame] | 16 | - 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 Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 19 | - command expansion from keywords, module contents, other buffers, etc. |
| 20 | - "Recent documents" menu item |
Guido van Rossum | 9f5362b | 1999-04-22 14:07:33 +0000 | [diff] [blame] | 21 | - Filter region command |
Guido van Rossum | 4c6d0c7 | 1999-04-22 22:32:32 +0000 | [diff] [blame] | 22 | - Optional horizontal scroll bar |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 23 | - more Emacsisms: |
| 24 | - ^K should cut to buffer |
Guido van Rossum | 5ec13c5 | 1999-02-08 22:27:18 +0000 | [diff] [blame] | 25 | - M-[, M-] to move by paragraphs |
Guido van Rossum | 5ec13c5 | 1999-02-08 22:27:18 +0000 | [diff] [blame] | 26 | - incremental search? |
Guido van Rossum | 2092b43 | 1999-05-21 04:45:20 +0000 | [diff] [blame] | 27 | - search should indicate wrap-around in some way |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 28 | - restructure state sensitive code to avoid testing flags all the time |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 29 | - persistent user state (e.g. window and cursor positions, bindings) |
| 30 | - make backups when saving |
| 31 | - check file mtimes at various points |
Guido van Rossum | b4b8381 | 2000-02-15 17:15:36 +0000 | [diff] [blame] | 32 | - Pluggable interface with RCS/CVS/Perforce/Clearcase |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 33 | - better help? |
Guido van Rossum | 9f5362b | 1999-04-22 14:07:33 +0000 | [diff] [blame] | 34 | - don't open second class browser on same module (nor second path browser) |
| 35 | - unify class and path browsers |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 36 | - Need to define a standard way whereby one can determine one is running |
Guido van Rossum | 9f5362b | 1999-04-22 14:07:33 +0000 | [diff] [blame] | 37 | inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP) |
Guido van Rossum | aba953e | 1999-07-15 13:11:02 +0000 | [diff] [blame] | 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. |
Guido van Rossum | 7f2c9d3 | 1999-09-09 14:16:02 +0000 | [diff] [blame] | 43 | - need a way to force colorization on/off |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 44 | - need a way to force auto-indent on/off |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 45 | |
| 46 | Details: |
| 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?) |
Guido van Rossum | 2092b43 | 1999-05-21 04:45:20 +0000 | [diff] [blame] | 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 |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 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 |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 62 | |
| 63 | Structural problems: |
| 64 | |
| 65 | - too much knowledge in FileList about EditorWindow (for example) |
Guido van Rossum | 2092b43 | 1999-05-21 04:45:20 +0000 | [diff] [blame] | 66 | - should add some primitives for accessing the selection etc. |
| 67 | to repeat cumbersome code over and over |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 68 | |
| 69 | ====================================================================== |
| 70 | |
| 71 | Jeff Bauer suggests: |
| 72 | |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 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 | |
| 80 | The last suggestion is already a reality, but not yet |
| 81 | integrated into IDLE. I use a module called inspector.py, |
| 82 | that used to be available from python.org(?) It no longer |
| 83 | appears to be in the contributed section, and the source |
| 84 | has no author attribution. |
| 85 | |
| 86 | In any case, the code is useful for visually navigating |
| 87 | an object's attributes, including its container hierarchy. |
| 88 | |
| 89 | >>> from inspector import Tkinspect |
| 90 | >>> Tkinspect(None, myObject) |
| 91 | |
| 92 | Tkinspect could probably be extended and refined to |
| 93 | integrate better into IDLE. |
| 94 | |
| 95 | ====================================================================== |
| 96 | |
| 97 | Comparison to PTUI |
| 98 | ------------------ |
| 99 | |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 100 | + PTUI's help is better (HTML!) |
| 101 | |
| 102 | + PTUI can attach a shell to any module |
| 103 | |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 104 | + PTUI has some more I/O commands: |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 105 | open multiple |
| 106 | append |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 107 | examine (what's that?) |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 108 | |
| 109 | ====================================================================== |
| 110 | |
| 111 | Notes after trying to run Grail |
| 112 | ------------------------------- |
| 113 | |
| 114 | - Grail does stuff to sys.path based on sys.argv[0]; you must set |
| 115 | sys.argv[0] to something decent first (it is normally set to the path of |
| 116 | the idle script). |
| 117 | |
| 118 | - Grail must be exec'ed in __main__ because that's imported by some |
| 119 | other parts of Grail. |
| 120 | |
| 121 | - Grail uses a module called History and so does idle :-( |
| 122 | |
| 123 | ====================================================================== |
Guido van Rossum | 801296c | 2000-03-07 15:17:53 +0000 | [diff] [blame] | 124 | |
| 125 | Robin Friedrich's items: |
| 126 | |
| 127 | Things 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 | |
| 139 | Things 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 |
| 149 | object in the editor which shows the source of the object, if |
| 150 | possible. (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 |
| 159 | Heise adds: save some space-trimmed context and search around when |
| 160 | reopening 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 |
| 166 | that doesn't need to be accessible simultaneously (e.g. HTML source |
| 167 | and output). Use multi-pane windows for info that does need to be |
| 168 | shown together (e.g. class browser and source). (Albert Brandl) |
| 169 | |
| 170 | - A project should invisibly track all symbols, for instant search, |
| 171 | replace and cross-ref. Projects should be allowed to span multiple |
| 172 | directories, hosts, etc. Project management files are placed in a |
| 173 | directory you specify. A global mapping between project names and |
| 174 | project 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 |
| 179 | it -- i.e. you can only edit the current command, and the cursor can't |
| 180 | escape from the command area. (Albert Brandl) |
| 181 | |
| 182 | - Set X11 class to "idle/Idle", set icon and title to something |
| 183 | beginning 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 |
| 191 | lines below the cursor, hitting Return should ignore or delete those |
| 192 | blank 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 |
| 195 | dialog with options to give command line arguments, run the debugger, |
| 196 | etc. (me) |
| 197 | |
| 198 | - Shouldn't be able to delete part of the prompt (or any text before |
| 199 | it) 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 |
| 205 | the shell window. Output of separate runs should all go to the same |
| 206 | window but clearly delimited. (David Scherer) |
Guido van Rossum | e39a88f | 2000-04-11 15:30:19 +0000 | [diff] [blame] | 207 | |
| 208 | - GUI form designer to kick VB's butt. (Robert Geiger) |
| 209 | |
| 210 | - Printing! Possibly via generation of PDF files which the user must |
| 211 | then send to the printer separately. (Dinu Gherman) |