blob: 56a72a20d8f6740492ce52584b1486147d6dd24f [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
11
12It requires Python 1.5.2, so it is currently only usable for PSA
13members who have the latest 1.5.2 alpha release (a public beta release
14is due shortly).
15
16Please 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 Rossum3b4ca0d1998-10-10 18:48:31 +000022TO DO:
23
Guido van Rossumbaf53b41998-10-16 20:08:34 +000024- "Recent documents" menu item
Guido van Rossumf035d3b1998-10-13 23:49:55 +000025- use platform specific default bindings
26- title and Windows menu should have base filename first
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000027- restructure state sensitive code to avoid testing flags all the time
28- integrated debugger
Guido van Rossumf035d3b1998-10-13 23:49:55 +000029- object browser instead of current stack viewer
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000030- save some user state (e.g. window and cursor positions, bindings)
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000031- 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 Rossumf035d3b1998-10-13 23:49:55 +000041 - filter region?
42 - grep?
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000043- status bar?
44- better help?
45
46Details:
47
48- when there's a selection, left/right arrow should go to either
49 end of the selection
Guido van Rossumf035d3b1998-10-13 23:49:55 +000050- ^O should honor autoindent
Guido van Rossum3b4ca0d1998-10-10 18:48:31 +000051
52Structural problems:
53
54- too much knowledge in FileList about EditorWindow (for example)
Guido van Rossumf035d3b1998-10-13 23:49:55 +000055- 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 Rossum3b4ca0d1998-10-10 18:48:31 +000058
59======================================================================
60
61Comparison 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 Rossum3b4ca0d1998-10-10 18:48:31 +000075 (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 Rossuma0177771998-11-16 18:34:26 +0000101
102======================================================================
103
104Notes after trying to run Grail
105-------------------------------
106
107- Grail does stuff to sys.path based on sys.argv[0]; you must set
108sys.argv[0] to something decent first (it is normally set to the path
109of the idle script).
110
111- Grail must be exec'ed in __main__ because that's imported by some
112other parts of Grail.
113
114- Grail uses a module called History and so does idle :-(
115
116======================================================================