Hello,

I have now done most of what I wanted on the rowpainter2 branch. When I decided a few month ago that it would be a good JMarc Week of Code project I thought that 2.2 would be near enough then and that this work would be 2.3 material. Now I guess it makes more sense to land it for 2.2. Actually, there is less code involved that I thought there would be.

What is done:

* the RowPainter code relies directly on Row tokenization,except for labels, endlabels and stuff like that. This could be added, but I am not sure it is worth the hassle.

* full ranges of text are now painted directly, instead of doing it word-by-word. This gives a nice speed up.

* Chinese text should be shown correctly on screen.


What remains to do:

* there are some situations where the text is broken at inset boundary and breaking at a space would have been better. I have to tweak the shortenIfNeeded method.

* since we compute metrics for full sentences instead of words, the width cache, which is a plain map, does not really make sense. The cache hit rate cannot be good, and after long editing sessions I suspect that the memory use will be horrible. The solution is either to get rid of it or to replace it with a LRU cache container. Does anyone know of a good simple one with appropriate license ? Or shall I write it myself?


What will (probably) not be done:

* I gave up on my plan to get rid of Bidi completely. The last user is Cursor::getSurroundingPos, and one needs to replace unpleasant code by some other unpleasant code. I will be neither worse nor better, but it will not rely on Bidi. Since it is peripheral to the main effort, I did not do it.



Basically, I'd appreciate if some people could test it so that we can see what's right and what's wrong. Since leave on thursday for vacation, the choice is between landing it now or landing it in late August when I come back. But I have more time now to fix bugs than I will have in August.

What shall I do?

JMarc

Reply via email to