Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame^] | 1 | IDLE 0.1 - 10/16/98 |
| 2 | ------------------- |
| 3 | |
| 4 | This is a *very* early preliminary release of IDLE, my own attempt at |
| 5 | a Tkinter-based IDE for Python. It currently has the following |
| 6 | features: |
| 7 | |
| 8 | - multi-window text editor with multiple undo and Python colorizing |
| 9 | - Python shell (a.k.a. interactive interpreter) window subclass |
| 10 | - debugger |
| 11 | |
| 12 | It requires Python 1.5.2, so it is currently only usable for PSA |
| 13 | members who have the latest 1.5.2 alpha release (a public beta release |
| 14 | is due shortly). |
| 15 | |
| 16 | Please send feedback to the Python newsgroup, comp.lang.python. |
| 17 | |
| 18 | --Guido van Rossum (home page: http://www.python.org/~guido/) |
| 19 | |
| 20 | ====================================================================== |
| 21 | |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 22 | TO DO: |
| 23 | |
Guido van Rossum | baf53b4 | 1998-10-16 20:08:34 +0000 | [diff] [blame] | 24 | - "Recent documents" menu item |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 25 | - use platform specific default bindings |
| 26 | - title and Windows menu should have base filename first |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 27 | - restructure state sensitive code to avoid testing flags all the time |
| 28 | - integrated debugger |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 29 | - object browser instead of current stack viewer |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 30 | - save some user state (e.g. window and cursor positions, bindings) |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 31 | - make backups when saving |
| 32 | - check file mtimes at various points |
| 33 | - interface with RCS/CVS/Perforce ??? |
| 34 | - more search options: case [in]sensitive, fwd/back, string/regex |
| 35 | - global query replace |
| 36 | - incremental search |
| 37 | - more emacsisms: |
| 38 | - reindent, reformat text etc. |
| 39 | - M-[, M-] to move by paragraphs |
| 40 | - smart stuff with whitespace around Return |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 41 | - filter region? |
| 42 | - grep? |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 43 | - status bar? |
| 44 | - better help? |
| 45 | |
| 46 | Details: |
| 47 | |
| 48 | - when there's a selection, left/right arrow should go to either |
| 49 | end of the selection |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 50 | - ^O should honor autoindent |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 51 | |
| 52 | Structural problems: |
| 53 | |
| 54 | - too much knowledge in FileList about EditorWindow (for example) |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 55 | - Several occurrences of scrollable listbox with title and certain |
| 56 | behavior; should create base class to generalize this |
| 57 | - class browser could become an outline? |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 58 | |
| 59 | ====================================================================== |
| 60 | |
| 61 | Comparison to PTUI |
| 62 | ------------------ |
| 63 | |
| 64 | - PTUI's shell is worse: |
| 65 | no coloring; |
| 66 | no editing of multi-line commands; |
| 67 | ^P seems to permanently remove some text from the buffer |
| 68 | |
| 69 | - PTUI's undo is worse: |
| 70 | no redo; |
| 71 | one char at a time |
| 72 | |
| 73 | - PTUI's framework is better: |
| 74 | status line |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 75 | (not sure if I like the toolbar) |
| 76 | |
| 77 | - PTUI's GUI is a tad ugly: |
| 78 | I don't like the multiple buffers in one window model |
| 79 | |
| 80 | - PTUI's help is better (HTML!) |
| 81 | |
| 82 | - PTUI's search/replace is better (more features) |
| 83 | |
| 84 | - PTUI's auto indent is better |
| 85 | (understands that "if a: # blah, blah" opens a block) |
| 86 | |
| 87 | - PTUI's key bindings are a bit weird (DEL to dedent a line!?!?!?) |
| 88 | |
| 89 | - PTUI's fontify is faster but synchronous (and still too slow); |
| 90 | also doesn't do as good a job if editing affects lines far below |
| 91 | |
| 92 | - PTUI has more bells and whistles: |
| 93 | open multiple |
| 94 | append |
| 95 | zap tabs |
| 96 | fontify (you could argue it's not needed in my code) |
| 97 | comment/uncomment |
| 98 | modularize |
| 99 | examine |
| 100 | go |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame^] | 101 | |
| 102 | ====================================================================== |
| 103 | |
| 104 | Notes after trying to run Grail |
| 105 | ------------------------------- |
| 106 | |
| 107 | - Grail does stuff to sys.path based on sys.argv[0]; you must set |
| 108 | sys.argv[0] to something decent first (it is normally set to the path |
| 109 | of the idle script). |
| 110 | |
| 111 | - Grail must be exec'ed in __main__ because that's imported by some |
| 112 | other parts of Grail. |
| 113 | |
| 114 | - Grail uses a module called History and so does idle :-( |
| 115 | |
| 116 | ====================================================================== |