I'm trying to fix the actual code completion plugin, but I'm facing serious design flaws. So yeah, it really needs revamping, and that should allow for more flexibility. It must know which language it is in. It actually is written for C++ only.
struct BigStruct {
struct smallStruct {
int a;
};
int b;
};
struct smallStruct mySmall;
This is only accepted in C, not in C++, as I would have to use BigStruct::smallStruct. So if I try to develop a code completion compatible with C AND C++ at the same time, I'd have to add it to both BigStruct and the global namespace (which is not even recognized by CC right now).
If it were possible to have a syntax file that we could load and it would dynamically parse the code according to this syntax, all we'd have left to do is to write those syntax files, and it would support even custom languages. It could use dynamic languages for this, such as Lua or Ruby, which both integrate well in applications.
As for the symbols manager, I'd suggest a tree-like structure, just like the actual one, where the categories are customizable. This would mean the parser token types would have to be dynamic too and defined in the syntax file, along with the categories.
-- Wolf --