<div dir="ltr">On Fri, May 29, 2015 at 1:25 AM, Matthew Brush <span dir="ltr"><<a href="mailto:mbrush@codebrainz.ca" target="_blank">mbrush@codebrainz.ca</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Ideally you could improve the underlying implementation of an existing one if your way is better[0] and they perform the same function. It's really confusing for users to figure out what is the "right" plugin when there's too many doing the same thing. The same thing happens with GeanyGDB, Debugger, and Scope right now.<br>
<br>
That being said, showing occurrences of the word is such a common and fairly useful feature for an IDE, I'd personally rather see the 3-4 existing plugins obsoleted by a good implementation in core Geany[1].<br>
<br>
Cheers,<br>
Matthew Brush<br>
<br></blockquote><div><br></div><div>+1 on having it directly in Geany.</div><div><br></div><div>And IMO, the simplest possible implementation should be used - i.e. using just strstr() for finding the names and highlighting the whole editor and not just the visible part and redoing this when scrolling.</div><div><br></div><div>KMP is quite an overkill in this case - it would be useful only if</div><div><br></div><div>1. The text to locate would be long (which isn't the case because function/variable names are quite short)</div><div>2. The searched text would contain many prefixes from the text to locate (again not the case - variables/functions can have common prefix but typically there will be at most one per line and not like every second character). Most of the time strstr() will find different characters at the first position and advance to the next character.</div><div><br></div><div>If you consider what we are doing when the document changes - i.e. parsing the document twice, once by scintilla lexer, once by ctags parser - and this happens on the main thread and nobody notices it, then the search part in the highlighting will be almost for free.</div><div><br></div><div>Cheers,</div><div><br></div><div>Jiri</div></div></div></div>