On 14/04/2012 01:29, Lex Trotman wrote:
Hi Nick,
Sounds like CTags/Tagmanager could just store a character number field rather than actually *replacing* tagmanager.
I think I answered your specific question, rather than the real one, "why replace tagmanager" for which these things are only part of the problem.
IIUC two main reasons:
- its inefficient, it sorts the symbol list each time it adds one.
That was ok when tag lists were small and loaded once in a blue moon, but now loading tags for some of the big libraries around today is causing startup delays (see various ML/IRC complaints) and with real-time(ish) parsing it causes interrupts to the UI for big files, and if we were to fix it to parse the insides of functions (which we really need to do to take proper advantage of your scope autocompletion) then it will be worse.
- it is difficult to maintain and to fix the above and the other
little problems. Nobody with the project properly understands tagmanager and is willing/has time to make the changes. So (putting
I agree that tagmanager/ctags could use some improvements.
Regarding performance problems with resorting global and workspace tags, I've been working yesterday on improving this significantly by merging the new tags each time instead of resorting *all* the tags. I hope to commit this in the next few days.
words in his mouth which he might spit out :) I guess Colomban chose to spend his time re-implementing it so he knows he can make the changes needed (or make them during design rather than retrofitting them) rather than spend his time hacking on code he really didn't understand and might not be able to fix.
I've just PM'd Colomban so hopefully we can discuss this further.
But I'm not sure it's really worth it - can you show a usual code sample where we actually want to show things in the symbol list that are on the same line number which have the same name?
Humans probably don't, but I was talking about XML and machine generated XML often puts multiple tags on the same line (if not the whole file :) and thats just when you *need* assistance from the symbols for structure identification. This is not to be taken as saying it is worth the effort though, as I believe that humans should neither read nor write XML as it is a tool of the devil, but occasionally it is required.
Unfortunately recording the column/position of each tag might require non-trivial changes to every parser, not just to ctags/tagmanager/geany. But Colomban may have a solution.
Regards, Nick