summaryrefslogtreecommitdiffstats
path: root/Tools/idle/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/idle/README.txt')
-rw-r--r--Tools/idle/README.txt130
1 files changed, 130 insertions, 0 deletions
diff --git a/Tools/idle/README.txt b/Tools/idle/README.txt
new file mode 100644
index 0000000..62b34cd
--- /dev/null
+++ b/Tools/idle/README.txt
@@ -0,0 +1,130 @@
+IDLE 0.2 - 01/01/99
+-------------------
+
+This is a *very* early preliminary release of IDLE, my own attempt at
+a Tkinter-based IDE for Python. It has the following features:
+
+- multi-window text editor with multiple undo and Python colorizing
+- Python shell (a.k.a. interactive interpreter) window subclass
+- debugger
+- 100% pure Python
+- works on Windows and Unix (probably works on Mac too)
+
+The main program is in the file "idle"; on Windows you can use
+idle.pyw to avoid popping up a DOS console. Any arguments passed are
+interpreted as files that will be opened for editing.
+
+IDLE requires Python 1.5.2, so it is currently only usable with the
+Python 1.5.2 beta distribution (luckily, IDLE is bundled with Python
+1.5.2).
+
+Please send feedback to the Python newsgroup, comp.lang.python.
+
+--Guido van Rossum (home page: http://www.python.org/~guido/)
+
+======================================================================
+
+TO DO:
+
+- "GO" command
+- "Modularize" command
+- command expansion from keywords, module contents, other buffers, etc.
+- "Recent documents" menu item
+- more emacsisms:
+ - parentheses matching
+ - reindent, reformat text etc.
+ - M-[, M-] to move by paragraphs
+ - smart stuff with whitespace around Return
+ - filter region?
+ - incremental search?
+ - ^K should cut to buffer
+ - command to fill text paragraphs
+- restructure state sensitive code to avoid testing flags all the time
+- finish debugger
+- object browser instead of current stack viewer
+- persistent user state (e.g. window and cursor positions, bindings)
+- make backups when saving
+- check file mtimes at various points
+- interface with RCS/CVS/Perforce ???
+- status bar?
+- better help?
+- don't open second class browser on same module
+
+Details:
+
+- when there's a selection, left/right arrow should go to either
+ end of the selection
+- ^O (on Unix -- open-line) should honor autoindent
+- after paste, show end of pasted text
+- on Windows, should turn short filename to long filename (not only in argv!)
+ (shouldn't this be done -- or undone -- by ntpath.normpath?)
+
+Structural problems:
+
+- too much knowledge in FileList about EditorWindow (for example)
+- Several occurrences of scrollable listbox with title and certain
+ behavior; should create base class to generalize this
+
+======================================================================
+
+Comparison to PTUI
+------------------
+
++ PTUI has a status line
+
++ PTUI's help is better (HTML!)
+
++ PTUI can attach a shell to any module
+
++ PTUI's auto indent is better
+ (understands that "if a: # blah, blah" opens a block)
+
++ IDLE requires 4x backspace to dedent a line
+
++ PTUI has more bells and whistles:
+ open multiple
+ append
+ modularize
+ examine
+ go
+
+? PTUI's fontify is faster but synchronous (and still too slow);
+ does a lousy job if editing affects lines below
+
+- PTUI's shell is worse:
+ no coloring;
+ no editing of multi-line commands;
+ ^P seems to permanently remove some text from the buffer
+
+- PTUI's undo is worse:
+ no redo;
+ one char at a time
+
+- PTUI's GUI is a tad ugly:
+ I don't like the multiple buffers in one window model;
+ I don't like the big buttons at the top of the widow
+
+- PTUI lacks an integrated debugger
+
+- PTUI lacks a class browser
+
+- PTUI lacks many of IDLE's features:
+ - expand word
+ - regular expression search
+ - search files (grep)
+
+======================================================================
+
+Notes after trying to run Grail
+-------------------------------
+
+- Grail does stuff to sys.path based on sys.argv[0]; you must set
+sys.argv[0] to something decent first (it is normally set to the path
+of the idle script).
+
+- Grail must be exec'ed in __main__ because that's imported by some
+other parts of Grail.
+
+- Grail uses a module called History and so does idle :-(
+
+======================================================================