ajaxorg/ace — pull request #2041 by jpallen (2014-07-10 12:11:59+00:00)
Title: Redraw lines and active line highlight when offscreen updates are made

The lines and active line highlight do not correctly update when line wrapping is on and text is inserted offscreen above the cursor which causes it to wrap onto a new line.

This bug is illustrated in an example here: http://jsfiddle.net/jpallen/TK7Fq/2/ You can see that the cursor moves to the correct position when text is inserted above, but the contents of the lines, and the active line highlight do not. As soon as you type anything, it triggers a full render and everything goes back to normal.

This pull request fixes this by updating the active line highlight on every document change, and redrawing the onscreen lines if the changed lines are above us. Both of these things introduce more renderer work, but I don't think either of them should be a performance problem. Happy to be pointed at a better solution though.