use setTextInBufferRange instead of a bunch of text edits