On 2016-08-30 06:38 AM, Colomban Wendling wrote:
Le 29/08/2016 à 10:04, Jiří Techet a écrit :
[…]
Which brings me to a question - do you plan to generate TMTag(s) and feed them to the tag manager instead of the ctags ones? It shouldn't be that hard and if you do this, you could have the sidebar symbols updated for free.
I don't know if plugins should fill the TagManager with extra tags, but I agree that plugins should probably use the TMTag structure to pass Tag-like data to Geany. For example, for symbols tree, autocompletion suggestions and calltips: instead of providing a list of strings, provide a list of TMTags. As I see it, a TMTag structure contains everything useful for the current feature set (and could be extended), and are a fairly canonical representation of it. A plugin could create temporary TMTags just to give to Geany, or maintain its own list (or feed TagManager, if we wanted), but anyway just pass the ones it want to the various APIs.
TMTags contain name, scope (useful for symbol tree and currently calltips), type (useful for icons at least), signature, etc. All we need in various places. And a plugin could leave many fields empty if it doesn't care about them, not many fields are actually required.
I feel like it would be easier to provide a small API to fill the tree (and even provide this - surprisingly to me - complicated code to make the treeview do what it's main purpose is), and that filling in TM tags might be tedious API-wise, but I admittedly don't know enough about TM and the sidebar code to make this judgment with full confidence.
It seems like you, Jiří and Thomas all agree (to varying degrees) that it makes sense to re-use TM for some stuff like this, so it's fine with me. When I update the Github tracker issue with the results of these discussions, I will include this usage of TM tags (at least).
Cheers, Matthew Brush