blob: a4e4b849686020da8d74cd02c3703cb033141007 [file] [log] [blame]
Guido van Rossum504b0bf1999-01-02 21:28:54 +00001IDLE 0.2 - 01/01/99
Guido van Rossuma0177771998-11-16 18:34:26 +00002-------------------
3
4This is a *very* early preliminary release of IDLE, my own attempt at
Guido van Rossum504b0bf1999-01-02 21:28:54 +00005a Tkinter-based IDE for Python. It has the following features:
Guido van Rossuma0177771998-11-16 18:34:26 +00006
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 Rossum72fe08591998-11-16 18:37:42 +000010- 100% pure Python
Guido van Rossum504b0bf1999-01-02 21:28:54 +000011- works on Windows and Unix (probably works on Mac too)
Guido van Rossuma0177771998-11-16 18:34:26 +000012
Guido van Rossumf9038981999-01-04 13:05:58 +000013The main program is in the file "idle"; on Windows you can use idle.pyw
14to avoid popping up a DOS console. Any arguments passed are interpreted
15as files that will be opened for editing.
Guido van Rossum72fe08591998-11-16 18:37:42 +000016
Guido van Rossum504b0bf1999-01-02 21:28:54 +000017IDLE requires Python 1.5.2, so it is currently only usable with the
18Python 1.5.2 beta distribution (luckily, IDLE is bundled with Python
191.5.2).
Guido van Rossuma0177771998-11-16 18:34:26 +000020
21Please 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 Rossum3b4ca0d1998-10-10 18:48:31 +000027TO DO:
28
Guido van Rossum504b0bf1999-01-02 21:28:54 +000029- "GO" command
30- "Modularize" command
31- command expansion from keywords, module contents, other buffers, etc.
Guido van Rossumbaf53b41998-10-16 20:08:34 +000032- "Recent documents" menu item
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000033- more emacsisms:
Guido van Rossum504b0bf1999-01-02 21:28:54 +000034 - parentheses matching
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000035 - reindent, reformat text etc.
36 - M-[, M-] to move by paragraphs
37 - smart stuff with whitespace around Return
Guido van Rossumf035d3b1998-10-13 23:49:55 +000038 - filter region?
Guido van Rossum504b0bf1999-01-02 21:28:54 +000039 - 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 Rossum3b4ca0d1998-10-10 18:48:31 +000049- status bar?
50- better help?
Guido van Rossum504b0bf1999-01-02 21:28:54 +000051- don't open second class browser on same module
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000052
53Details:
Guido van Rossum72fe08591998-11-16 18:37:42 +000054
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000055- when there's a selection, left/right arrow should go to either
56 end of the selection
Guido van Rossum504b0bf1999-01-02 21:28:54 +000057- ^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 Rossum3b4ca0d1998-10-10 18:48:31 +000061
62Structural problems:
63
64- too much knowledge in FileList about EditorWindow (for example)
Guido van Rossumf035d3b1998-10-13 23:49:55 +000065- Several occurrences of scrollable listbox with title and certain
66 behavior; should create base class to generalize this
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000067
68======================================================================
69
70Comparison to PTUI
71------------------
72
Guido van Rossum504b0bf1999-01-02 21:28:54 +000073+ 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 Rossum3b4ca0d1998-10-10 18:48:31 +000094- 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 Rossum3b4ca0d1998-10-10 18:48:31 +0000103- PTUI's GUI is a tad ugly:
Guido van Rossum504b0bf1999-01-02 21:28:54 +0000104 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 Rossum3b4ca0d1998-10-10 18:48:31 +0000106
Guido van Rossum504b0bf1999-01-02 21:28:54 +0000107- PTUI lacks an integrated debugger
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +0000108
Guido van Rossum504b0bf1999-01-02 21:28:54 +0000109- PTUI lacks a class browser
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +0000110
Guido van Rossum504b0bf1999-01-02 21:28:54 +0000111- PTUI lacks many of IDLE's features:
112 - expand word
113 - regular expression search
114 - search files (grep)
Guido van Rossuma0177771998-11-16 18:34:26 +0000115
116======================================================================
117
118Notes after trying to run Grail
119-------------------------------
120
121- Grail does stuff to sys.path based on sys.argv[0]; you must set
Guido van Rossumf9038981999-01-04 13:05:58 +0000122sys.argv[0] to something decent first (it is normally set to the path of
123the idle script).
Guido van Rossuma0177771998-11-16 18:34:26 +0000124
125- Grail must be exec'ed in __main__ because that's imported by some
126other parts of Grail.
127
128- Grail uses a module called History and so does idle :-(
129
130======================================================================