I'm reading the source code of code completion for about ten days. I think I nearly finished writing the wiki page of the current version.
Though I do not have the ability to greatly improve this plug-in, I just have some suggestions and maybe someone can quickly understand to improve.
First: Deal with macros.
The current design is that Tokenizer class use a function to check whether it specific keyword(or symbol) was meet, then it is quickly do the replacement. For example "_GLIBCXX_STD" should be replaced by "std".
I think this step should be put in the parserthread, in the DoParse() function. this will make the code runs a little faster, and maybe a "HandelMacor" function maybe add to parse these tokens. We can just learn from the CTAGS's method to treat macros.
Second:
Many code in the searchtree related code are not easy to understand because their variable names are not according with the coding style page in wiki page.

Third:
I found that the "using namespace XXX" was just skipped by the DoParse(), so, a lot of people were complaining this issue. I'm not sure how to deal with this problem, but maybe, the parser meet this keyword, the namespace should be exposed to the current scope, so that the codecompletion can search in that scope.
Any Comments are welcome, I'm just want to do something to improve Code Completion. Thanks for reading.