1. A method of providing undo operation support in an edit buffer represented as a sequence of lexical tokens, the method comprising: representing the edit buffer as a doubly-linked list of nodes, each node corresponding to a respective one of the lexical tokens; and maintaining, as a side-effect of operations that modify contents of the list, an ordered set of undo objects that identify at least respective opposing-end nodes of respective sublists of one or more lexical tokens corresponding to respective substrings inserted into the list by respective insert-type operations.