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