keep TM on all the time and use it for symbol tree and tag definition goto
These two things are trivial to do, and quite a bit better from plugins if using an actual language support library (libclang, libpython, libvala, etc).
I think we should be a bit realistic in what we can do and what we should do - Geany is a simple multi-language IDE and we should concentrate on keeping it that way and improving it.
Most of things wrong with it could be solved by using proper language support libraries, and if they're provided by plugins, why would anyone not using them care?
Having some super-generic symbol management system that will be half of the Geany's source code seems to be outside Geany's scope.
Uh...that's _exactly_ what TagManager/CTags is right now, and in some cases it doesn't work well at all. Moving such stuff to plugins (maybe a core plugin) would only have the effect of greatly simplifying Geany's core code, leaving it with just a few hooks and farming out language-specific support to plugins, which can do a much better job without bloating or making the core so complex.
I suspect most Geany users use it mostly for scripting languages so we now spend like one year implementing this and only a small percentage of users will use it
That doesn't make much sense, if people are using it for scripting languages, and developers can add proper support for those languages, then the largest percentage of users stand to benefit.