Working on a larger file (10MB, half million lines) in Scintilla with word wrap enabled on Windows platform is almost impossible. If you try to write something at the beginning of the file, there will be a considerable lag between typing and actual modification being shown on screen. At first I thought that this is a general Scintilla limitation considering the size of file, however I tested the same file in Scintilla running on Linux under virtual machine and general experience was much better to the point that you could actually work on the file in question.
That made me look at the source code and while comparing how idle processing is implemented on different platforms, it became clear that on Windows it is simply too aggressive. On GTK and OSX, Editor::Idle() is being called only once on regular intervals, while on Windows once idling has started, it won't stop until finishing completely as message queue will get quickly saturated with idle messages. I did not look far back if there is an actual reason why idle messages are constantly being resent on Windows implementation instead of triggering only once on set timer intervals. As a result, I simply changed the timing values so that idle processing is more similar to the two other platforms and so it doesn't hog the message loop. Besides making word wrap actually usable on larger files the patch will approximately halve the CPU utilization, at the expense of needing more time to process everything obviously, but still processing everything faster than other two platforms due to repeated idle messages. You can try it for yourself on a larger file (10MB+) and see the difference in response time when typing before and after the patch (also compare word wrap between platforms to see the difference). The patch also fixes Editor::MovePositionTo() so it works properly on a line that has not yet been processed by wrapping.