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 |
| 7 | - slidable panel separators |
| 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 | - insert the initial current directory into sys.path |
| 12 | - default directory attribute for each window instead of only for windows |
| 13 | that have an associated filename |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 14 | - "GO" command |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 15 | - command expansion from keywords, module contents, other buffers, etc. |
| 16 | - "Recent documents" menu item |
| 17 | - more emacsisms: |
Guido van Rossum | 5ec13c5 | 1999-02-08 22:27:18 +0000 | [diff] [blame] | 18 | - parentheses matching |
| 19 | - M-[, M-] to move by paragraphs |
| 20 | - smart stuff with whitespace around Return |
| 21 | - filter region? |
| 22 | - incremental search? |
| 23 | - ^K should cut to buffer |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 24 | - restructure state sensitive code to avoid testing flags all the time |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 25 | - persistent user state (e.g. window and cursor positions, bindings) |
| 26 | - make backups when saving |
| 27 | - check file mtimes at various points |
| 28 | - interface with RCS/CVS/Perforce ??? |
| 29 | - status bar? |
| 30 | - better help? |
| 31 | - don't open second class browser on same module |
| 32 | |
| 33 | Details: |
| 34 | |
| 35 | - when there's a selection, left/right arrow should go to either |
| 36 | end of the selection |
| 37 | - ^O (on Unix -- open-line) should honor autoindent |
| 38 | - after paste, show end of pasted text |
| 39 | - on Windows, should turn short filename to long filename (not only in argv!) |
| 40 | (shouldn't this be done -- or undone -- by ntpath.normpath?) |
| 41 | |
| 42 | Structural problems: |
| 43 | |
| 44 | - too much knowledge in FileList about EditorWindow (for example) |
| 45 | - Several occurrences of scrollable listbox with title and certain |
| 46 | behavior; should create base class to generalize this |
| 47 | |
| 48 | ====================================================================== |
| 49 | |
| 50 | Jeff Bauer suggests: |
| 51 | |
| 52 | - The editor should show the current line number. |
| 53 | - Open Module doesn't appear to handle hierarchical packages. |
| 54 | - Class browser should also allow hierarchical packages. |
| 55 | - Open and Open Module could benefit from a history, |
| 56 | either command line style, or Microsoft recent-file |
| 57 | style. |
| 58 | - Add a Smalltalk-style inspector (i.e. Tkinspect) |
| 59 | |
| 60 | The last suggestion is already a reality, but not yet |
| 61 | integrated into IDLE. I use a module called inspector.py, |
| 62 | that used to be available from python.org(?) It no longer |
| 63 | appears to be in the contributed section, and the source |
| 64 | has no author attribution. |
| 65 | |
| 66 | In any case, the code is useful for visually navigating |
| 67 | an object's attributes, including its container hierarchy. |
| 68 | |
| 69 | >>> from inspector import Tkinspect |
| 70 | >>> Tkinspect(None, myObject) |
| 71 | |
| 72 | Tkinspect could probably be extended and refined to |
| 73 | integrate better into IDLE. |
| 74 | |
| 75 | ====================================================================== |
| 76 | |
| 77 | Comparison to PTUI |
| 78 | ------------------ |
| 79 | |
| 80 | + PTUI has a status line |
| 81 | |
| 82 | + PTUI's help is better (HTML!) |
| 83 | |
| 84 | + PTUI can attach a shell to any module |
| 85 | |
| 86 | + PTUI's auto indent is better |
| 87 | (understands that "if a: # blah, blah" opens a block) |
| 88 | |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 89 | + PTUI has more bells and whistles: |
| 90 | open multiple |
| 91 | append |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 92 | examine |
| 93 | go |
| 94 | |
| 95 | ? PTUI's fontify is faster but synchronous (and still too slow); |
| 96 | does a lousy job if editing affects lines below |
| 97 | |
| 98 | - PTUI's shell is worse: |
| 99 | no coloring; |
| 100 | no editing of multi-line commands; |
| 101 | ^P seems to permanently remove some text from the buffer |
| 102 | |
| 103 | - PTUI's undo is worse: |
| 104 | no redo; |
| 105 | one char at a time |
| 106 | |
| 107 | - PTUI's GUI is a tad ugly: |
| 108 | I don't like the multiple buffers in one window model; |
| 109 | I don't like the big buttons at the top of the widow |
| 110 | |
| 111 | - PTUI lacks an integrated debugger |
| 112 | |
| 113 | - PTUI lacks a class browser |
| 114 | |
| 115 | - PTUI lacks many of IDLE's features: |
| 116 | - expand word |
| 117 | - regular expression search |
| 118 | - search files (grep) |
Guido van Rossum | c66e860 | 1999-01-11 14:52:40 +0000 | [diff] [blame] | 119 | - (un)tabify |
| 120 | - center |
| 121 | - zoom height |
Guido van Rossum | 6ba219e | 1999-01-07 00:10:00 +0000 | [diff] [blame] | 122 | |
| 123 | ====================================================================== |
| 124 | |
| 125 | Notes after trying to run Grail |
| 126 | ------------------------------- |
| 127 | |
| 128 | - Grail does stuff to sys.path based on sys.argv[0]; you must set |
| 129 | sys.argv[0] to something decent first (it is normally set to the path of |
| 130 | the idle script). |
| 131 | |
| 132 | - Grail must be exec'ed in __main__ because that's imported by some |
| 133 | other parts of Grail. |
| 134 | |
| 135 | - Grail uses a module called History and so does idle :-( |
| 136 | |
| 137 | ====================================================================== |