techee commented on this pull request.
- if (includeExtensionFlags ()
+ && isXtagEnabled (XTAG_QUALIFIED_TAGS) + && doesInputLanguageRequestAutomaticFQTag ()) + buildFqTagCache (tag); + +#ifdef CTAGS_LIB + getTagScopeInformation((tagEntryInfo *)tag, NULL, NULL); + + if (TagEntryFunction != NULL) + { + ctagsTag t; + + initCtagsTag(&t, tag); + length = TagEntryFunction(&t, TagEntryUserData); + } +#else
This is something I was considering too. We could "write" tags into Geany's structures in the callback of the writer and use normal way of ctags initialization and parsing.
What however worries me is the MIO (TagFile.mio from entry.c) into which a writer is supposed to write - right now it's automatically opened/closed by ctags for any writer and that's not something we want. If we somehow avoid it and decide to keep it NULL, we have to be very careful that nothing from entry.c that refers it. That would be quite a big change and would make the diff bigger against uctags (and more fragile when something upstream changes).
I agree this is probably the right way it should be done and this is also the way it should probably be introduced into uctags. But I think having this shortcut in Geany which makes sure nothing with unexpected side-effects from ctags is called is better for now.