[Geany-Devel] PairTagHighlighter / Not auto clear previous highlight when click other tag
Colomban Wendling
lists.ban at xxxxx
Mon Mar 9 16:19:16 UTC 2015
Hi,
tl;dr: I found the issue in the end, which is in a call from the plugin.
Here below is my train of responses because they still are of some
interest, but you can skip directly to the last paragraph.
Le 09/03/2015 14:48, Volodymyr Kononenko a écrit :
> A search with git bisect has shown, that the bug was introduced with
> updating Scintilla to 3.3.2:
>
> […]
>
> Similar issue <http://sourceforge.net/p/scintilla/bugs/1604/> I've found
> on Scintilla bug tracker was fixed only for win32 - here is the patch
> <http://sourceforge.net/p/scintilla/code/ci/23f89aef53c7ab73bdd45ae1302b97698682e3cd>.
I highly doubt it's anything like the same issue, because the one
described here is a redraw issue, which should get fixed when triggering
another redraw, like e.g. scrolling the offending part offscreen and
back, while the issues I see with pairtaghighlighter persist after
redraws (which means the indicators themselves are still here).
Moreover, clearing the indicators on the whole buffer:
> scintilla_send_message(sci, SCI_INDICATORCLEARRANGE, 0, sci_get_length(sci));
instead of only the range passed to the function fixes the issue for me,
so I would really bet on inappropriate clear range.
Which is indeed kind of weird because it really does work with 1.23 and
not 1.24, even with the very same plugin .so.
> I tried to detect the first Scintilla commit, which introduced the
> issue, but I see that merging Scintilla to Geany sources is non-trivial.
> Build failed after the first attempt.
>
> Folks, what do you think about it? Is it enough information that it is
> Scintilla issue and we need to report it or something was not taken into
> account during upgrading to 3.3.2?
Actually it's the plugin's SCI_INDICATORCLEARRANGE
<http://www.scintilla.org/ScintillaDoc.html#SCI_INDICATORCLEARRANGE>
that is incorrect: the second parameter should be the *length* to clear,
not the end position. Apparently earlier Scintilla versions were
forgiving on the range, but new ones aren't and do nothing with invalid
ranges.
I made you a PR fixing the issue:
https://github.com/geany/geany-plugins/pull/200
Regards,
Colomban
More information about the Devel
mailing list