fast path: rapid insertion of single characters at the position of the gap (for example at the end of the buffer). Make sure not to shuffle marks around unnecessarily. sort marks: end marks first, then beginning marks. KEEP SORTED AS MARK POSITION IS BEING UPDATED. Allow the cursor to be between the beginning and the end mark, EVEN IF there is no space between. This can be used to open subviews (single procedures) of files. make sure that the caret is not outside of the current view area? If not, hide the cursor because otherwise it looks stupid to just select whatever position we happen to be at. Status bar: print "brace" level (not only braces but also #ifdef etc, anything that has block structure) [also note the color[s] to use] reset window title when exiting editor. line numbers! disambiguation for Mode Detector. Just use a normal DFA automaton for parsing and hilighting. Runs from end state to end state could serve as to-be-highlighted passages. The end state itself can have the color associated. test block comment within line comment. test line comment within a block comment that goes over multiple lines.