| IDLE 0.1 - 10/16/98 |
| ------------------- |
| |
| This is a *very* early preliminary release of IDLE, my own attempt at |
| a Tkinter-based IDE for Python. It currently has the following |
| features: |
| |
| - multi-window text editor with multiple undo and Python colorizing |
| - Python shell (a.k.a. interactive interpreter) window subclass |
| - debugger |
| |
| It requires Python 1.5.2, so it is currently only usable for PSA |
| members who have the latest 1.5.2 alpha release (a public beta release |
| is due shortly). |
| |
| Please send feedback to the Python newsgroup, comp.lang.python. |
| |
| --Guido van Rossum (home page: http://www.python.org/~guido/) |
| |
| ====================================================================== |
| |
| TO DO: |
| |
| - "Recent documents" menu item |
| - use platform specific default bindings |
| - title and Windows menu should have base filename first |
| - restructure state sensitive code to avoid testing flags all the time |
| - integrated debugger |
| - object browser instead of current stack viewer |
| - save some user state (e.g. window and cursor positions, bindings) |
| - make backups when saving |
| - check file mtimes at various points |
| - interface with RCS/CVS/Perforce ??? |
| - more search options: case [in]sensitive, fwd/back, string/regex |
| - global query replace |
| - incremental search |
| - more emacsisms: |
| - reindent, reformat text etc. |
| - M-[, M-] to move by paragraphs |
| - smart stuff with whitespace around Return |
| - filter region? |
| - grep? |
| - status bar? |
| - better help? |
| |
| Details: |
| |
| - when there's a selection, left/right arrow should go to either |
| end of the selection |
| - ^O should honor autoindent |
| |
| 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 |
| - class browser could become an outline? |
| |
| ====================================================================== |
| |
| Comparison to PTUI |
| ------------------ |
| |
| - 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 framework is better: |
| status line |
| (not sure if I like the toolbar) |
| |
| - PTUI's GUI is a tad ugly: |
| I don't like the multiple buffers in one window model |
| |
| - PTUI's help is better (HTML!) |
| |
| - PTUI's search/replace is better (more features) |
| |
| - PTUI's auto indent is better |
| (understands that "if a: # blah, blah" opens a block) |
| |
| - PTUI's key bindings are a bit weird (DEL to dedent a line!?!?!?) |
| |
| - PTUI's fontify is faster but synchronous (and still too slow); |
| also doesn't do as good a job if editing affects lines far below |
| |
| - PTUI has more bells and whistles: |
| open multiple |
| append |
| zap tabs |
| fontify (you could argue it's not needed in my code) |
| comment/uncomment |
| modularize |
| examine |
| go |
| |
| ====================================================================== |
| |
| 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 :-( |
| |
| ====================================================================== |