Another problem:
I have this Perl code:
=================
#line1
@ & $x++;
#xx
# is it all getting squiggled?
# comment
=================
There are two different errors both on line 2, which resolve to
start = 8, length 8
If I try to display both decorators (where both are decorator 15, set to a red
quiggle), the rest of the buffer is decorated. As a workaround I'm only
displaying the first decorator at each starting position.
- Eric
Neil Hodgson wrote:
Eric Promislow:
I've narrowed down the problem to RunStyles::SplitRun. If posRun and
position both
== 0, then no insertion is made. Back in DecorationList::FillRange(),
the test
current->Empty() succeeds because the current indicator isn't
associated with more
than one segment (run range), so the indicator is deleted.
The problem was that FillRange was assuming that if it called
SplitRun then a new run would be created but that isn't the case if
there is already a run start at that position as there is at position
0. So changed the code to only call SplitRun and increment runEnd if
there is a need. This appears to have fixed the problem. Committed to
CVS. Diff looks like this:
} else {
- runStart = SplitRun(position);
- runEnd++;
+ if (starts->PositionFromPartition(runStart) < position) {
+ runStart = SplitRun(position);
+ runEnd++;
+ }
}
Neil
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest