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