Am 29.05.2015 um 01:25 schrieb Matthew Brush:
On 2015-05-28 02:03 PM, marius buzea wrote:
Hello,
I have read the source code of automark [ https://github.com/geany/geany-plugins/blob/master/automark/src/automark.c ]. Functionally, automark and GeanyHighlightSelectedWord are alike, I think. There are differences between automark and HighlighSelectedWord.
Automark is concise: it uses the SCI_FINDTEXT messages to scintilla for finding occurrences of selected text. Automark uses a timeout callback for matching text.
GeanyHighlightSelectedText is more 'low-level': it does not use scintilla's SCI_FINDTEXT functionality, instead it uses the KMP algorithm to find all occurrences of selected text in visible text. GeanyHighlightSelectedText does not use timeout callback for matching text.
While the functionality may be the same, there were different decisions in the design of these two plugins. Let's have both automark and GeanyHighlightSelectedText included in Geany Plugins.
Hi,
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.
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].
+1
--verbose: (It's a general view, not related to this plugin) I wouldn't merge a new plugin like this unless there are real good reasons. Sad for the efforts the author did, but having three plugins doing the very same in just a different way on the one hand and increasing efforts to maintain the whole bundle just don't fit in my eyes. As mentioned by Matthew, we had this with the all the gdb-plugins as well as some features of project extending plugins. Of course some of the plugins are lagging active development, maybe because they are feature complete, maybe the author is not having time/mood/* anymore. But even in such cases adding a new plugin doesn't guarantee a change as it might become also unsupported next month. So I prefer to adopt an plugin and improve it in such a case.
And having it inside core seems to be a logical step based upon reasons mentioned. ;)
Cheers, Frank