I'd prefer the ctags format because, as you say, it's the standard format and probably less error prone than the custom tagmanager format.
OK, it probably makes sense to use the python script also because of all the additional problems you mentioned.
Classes found by ctags have no signature (the one of the corrsponding __init__ method) while the ones of my script have
Curious about this one - how does it behave when there are multiple corresponding `__init__` functions with a different signature? Will it pick just one of them for calltip? I'm asking because we now have this code
https://github.com/geany/geany/blob/8f35d3342df724145ee9a6873e4ed3a18446211d...
which can look up all `__init__` functions for a class and display a multi-calltip (with arrows on the side to scroll among the found calltips) containing all the constructors.
One more thing - wouldn't it make sense to factor-out the tag writing code to a separate file so it can be reused by other tag writing scripts? For instance, there's also `create_php_tags.py` which I think could reuse this code too. And maybe this tag-writing code could be configurable to either output the ctags format or the tag manager format - I can imagine that having the tagmanager format could be useful for debugging. What do you think?