Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 1 | IDLE 0.2 - 01/01/99 |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame] | 2 | ------------------- |
| 3 | |
| 4 | This is a *very* early preliminary release of IDLE, my own attempt at |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 5 | a Tkinter-based IDE for Python. It has the following features: |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame] | 6 | |
| 7 | - multi-window text editor with multiple undo and Python colorizing |
| 8 | - Python shell (a.k.a. interactive interpreter) window subclass |
| 9 | - debugger |
Guido van Rossum | 72fe0859 | 1998-11-16 18:37:42 +0000 | [diff] [blame] | 10 | - 100% pure Python |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 11 | - works on Windows and Unix (probably works on Mac too) |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame] | 12 | |
Guido van Rossum | f903898 | 1999-01-04 13:05:58 +0000 | [diff] [blame^] | 13 | The main program is in the file "idle"; on Windows you can use idle.pyw |
| 14 | to avoid popping up a DOS console. Any arguments passed are interpreted |
| 15 | as files that will be opened for editing. |
Guido van Rossum | 72fe0859 | 1998-11-16 18:37:42 +0000 | [diff] [blame] | 16 | |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 17 | IDLE requires Python 1.5.2, so it is currently only usable with the |
| 18 | Python 1.5.2 beta distribution (luckily, IDLE is bundled with Python |
| 19 | 1.5.2). |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame] | 20 | |
| 21 | Please send feedback to the Python newsgroup, comp.lang.python. |
| 22 | |
| 23 | --Guido van Rossum (home page: http://www.python.org/~guido/) |
| 24 | |
| 25 | ====================================================================== |
| 26 | |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 27 | TO DO: |
| 28 | |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 29 | - "GO" command |
| 30 | - "Modularize" command |
| 31 | - command expansion from keywords, module contents, other buffers, etc. |
Guido van Rossum | baf53b4 | 1998-10-16 20:08:34 +0000 | [diff] [blame] | 32 | - "Recent documents" menu item |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 33 | - more emacsisms: |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 34 | - parentheses matching |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 35 | - reindent, reformat text etc. |
| 36 | - M-[, M-] to move by paragraphs |
| 37 | - smart stuff with whitespace around Return |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 38 | - filter region? |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 39 | - incremental search? |
| 40 | - ^K should cut to buffer |
| 41 | - command to fill text paragraphs |
| 42 | - restructure state sensitive code to avoid testing flags all the time |
| 43 | - finish debugger |
| 44 | - object browser instead of current stack viewer |
| 45 | - persistent user state (e.g. window and cursor positions, bindings) |
| 46 | - make backups when saving |
| 47 | - check file mtimes at various points |
| 48 | - interface with RCS/CVS/Perforce ??? |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 49 | - status bar? |
| 50 | - better help? |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 51 | - don't open second class browser on same module |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 52 | |
| 53 | Details: |
Guido van Rossum | 72fe0859 | 1998-11-16 18:37:42 +0000 | [diff] [blame] | 54 | |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 55 | - when there's a selection, left/right arrow should go to either |
| 56 | end of the selection |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 57 | - ^O (on Unix -- open-line) should honor autoindent |
| 58 | - after paste, show end of pasted text |
| 59 | - on Windows, should turn short filename to long filename (not only in argv!) |
| 60 | (shouldn't this be done -- or undone -- by ntpath.normpath?) |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 61 | |
| 62 | Structural problems: |
| 63 | |
| 64 | - too much knowledge in FileList about EditorWindow (for example) |
Guido van Rossum | f035d3b | 1998-10-13 23:49:55 +0000 | [diff] [blame] | 65 | - Several occurrences of scrollable listbox with title and certain |
| 66 | behavior; should create base class to generalize this |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 67 | |
| 68 | ====================================================================== |
| 69 | |
| 70 | Comparison to PTUI |
| 71 | ------------------ |
| 72 | |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 73 | + PTUI has a status line |
| 74 | |
| 75 | + PTUI's help is better (HTML!) |
| 76 | |
| 77 | + PTUI can attach a shell to any module |
| 78 | |
| 79 | + PTUI's auto indent is better |
| 80 | (understands that "if a: # blah, blah" opens a block) |
| 81 | |
| 82 | + IDLE requires 4x backspace to dedent a line |
| 83 | |
| 84 | + PTUI has more bells and whistles: |
| 85 | open multiple |
| 86 | append |
| 87 | modularize |
| 88 | examine |
| 89 | go |
| 90 | |
| 91 | ? PTUI's fontify is faster but synchronous (and still too slow); |
| 92 | does a lousy job if editing affects lines below |
| 93 | |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 94 | - PTUI's shell is worse: |
| 95 | no coloring; |
| 96 | no editing of multi-line commands; |
| 97 | ^P seems to permanently remove some text from the buffer |
| 98 | |
| 99 | - PTUI's undo is worse: |
| 100 | no redo; |
| 101 | one char at a time |
| 102 | |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 103 | - PTUI's GUI is a tad ugly: |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 104 | I don't like the multiple buffers in one window model; |
| 105 | I don't like the big buttons at the top of the widow |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 106 | |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 107 | - PTUI lacks an integrated debugger |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 108 | |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 109 | - PTUI lacks a class browser |
Guido van Rossum | 3b4ca0d | 1998-10-10 18:48:31 +0000 | [diff] [blame] | 110 | |
Guido van Rossum | 504b0bf | 1999-01-02 21:28:54 +0000 | [diff] [blame] | 111 | - PTUI lacks many of IDLE's features: |
| 112 | - expand word |
| 113 | - regular expression search |
| 114 | - search files (grep) |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame] | 115 | |
| 116 | ====================================================================== |
| 117 | |
| 118 | Notes after trying to run Grail |
| 119 | ------------------------------- |
| 120 | |
| 121 | - Grail does stuff to sys.path based on sys.argv[0]; you must set |
Guido van Rossum | f903898 | 1999-01-04 13:05:58 +0000 | [diff] [blame^] | 122 | sys.argv[0] to something decent first (it is normally set to the path of |
| 123 | the idle script). |
Guido van Rossum | a017777 | 1998-11-16 18:34:26 +0000 | [diff] [blame] | 124 | |
| 125 | - Grail must be exec'ed in __main__ because that's imported by some |
| 126 | other parts of Grail. |
| 127 | |
| 128 | - Grail uses a module called History and so does idle :-( |
| 129 | |
| 130 | ====================================================================== |