BUGS: - when there's a selection, typing ^X will delete the selection! (cause: ^X is a binding for cut ;-( ) TO DO: - 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