extend the lexer <-> framework's color:text api
to let lexers say "call me again before you change the buffer"

also, use this in the 2d lexer