This is ideal but I would like to focus on the interface between Geany.
I don't have enough skill to design and maintain a new library API. 3 ~ 5 years ago, I declined to make ctags a library in the above reason. However, libctags is already there. I don't have to design an API. I think I can do keeping the interface. The benefit of moving the library to u-ctags project is that I, an active ctags developer, can take care of keeping the interface working.
Totally agree, I think uctags shouldn't go crazy about making it a library - it's primarily a command-line program and with Geany being the only application (mis)using it as a library, there's no need to spend much effort on it. For us it's not really a problem if some internal interface changes - we can fix the code in Geany easily as long as the core required functionality is accessible to us in some way. The main purpose of the ctags-api.c/h file (which I moved back to tag manager in the latest version) is to isolate Geany from the rest of ctags so this is the only file we'd have to update if something changes.
YES! It is what we need. Let's give an impressive name the dummy client. This client drives us.
My idea is 'minigeany' or 'microgeany'. The client is at uctags side so we can add test cases on it.
Good, I guess I'll do it now. The weather is beautiful outside and it would be really stupid not to sit inside and code ;-). I've made some more changes in #2132 to improve how we interface with ctags and creating such a client should be really easy now. I'll open a pull request in uctags when I'm done.