It appears that the template is correctly parsed, but there is no check as to whether a given template actually is a partial instantiation of a previously defined one - in this case, the class name suffices, of course. A good approach would be to store information on class templates in a relational way. (i.e., allowing to nest partial instantiations with the same class name under the most generic template).
Templates handling was added in beta7, so this makes it a new feature ;)
I guess that what you 're asking can be done, with a parsing-time penalty since more lookups will have to be made. Although, there is still room for improving the parsing time...
This would mean that the associated parser would need to keep track of template parameters - not evident at all, I know, but I'm willing to try to implement this myself.
Woot! It seems that I 'll get help with this plugin :lol:
If you want to take a peek, the actual parsing code is in plugins/codecompletion/parser/parserthread.cpp (ignore the ParseBufferForFunctions() function which just recognizes functions in .c/.cpp files and is used only by "View->Go to function").
I know it's not well-documented. I 'll try to document it better, after the next release. Until then, ask anything you need about it.
Another thing I would like to know whether it is feasible, is to also list typedefs or show any aliases for a namespace next to its name.
Typedefs are not implemented yet.
As for namespaces, aliases are not supported either because they are using an equal "=" sign which is discarded by the tokenizer.
I.e.
namespace MyNamespace // namespace definition
{
int a_member;
};
namespace alias_name = MyNamespace; // namespace alias
The tokenizer rejects everything after the equal sign. This means it should be hacked to support it only for namespaces...
Yiannis.