Neil Hodgson wrote:

Robert Roessler:


Cool... I think. If I have this right, it is a "Scintilla drawing
bug" - that leads LexCaml into evil ways?


   No. That should have been a BTW. When trying to debug your problem,
I built a debug version and ran it within the debugger and noticed the
assertion. The bad indicator occurs for other lexers.

All right - I have fixed both of these. :)

The LexCaml was trivial - and AFAICT, a "harmless" bug that I may have picked up from looking at other lexers - but, fixed.

The indicator problem was not that bad - basically, I replaced the whole loop at the end of Editor::DrawLine for displaying indicators with simpler code that I believe still does what is required - you, of course, will decide if this is true. ;)

This was made easier by the fact that the code before this (in particular the layout stuff) works fine, so the "inputs" were already good. But besides being "broken" (WRT the drawing bug that started this), the indicator display stuff seemed to be more complicated than required... so replacing it seemed easier than fixing it.

One question: the "end" x coord for a given indicator rect is the same as the x coord of the "start" of the next char pos - this style works with Windows GDI (but not "Plus")... is this convention used by Scintilla and any required adjustments made by platform-specific code?

For your (and anybody else's) perusal:

http://www.rftp.com/lazyrocamlindic.zip

Since I now have FOUR pending Scintilla patches ("lazy" or whatever Undo/Redo, RO notification for Undo/Redo, LexCaml fix, and indicator drawing fix), this contains FOUR .cxx plus Scintilla.h - this latest fix for the indicator prob is all at the end of Editor::DrawLine in... yup, Editor.cxx. :)

Robert Roessler
[EMAIL PROTECTED]
http://www.rftp.com
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest

Reply via email to