But it seems that codelite can not parse template and do macro replacement too.
You are partially correct about the macro replacement, codelite has a limited capability in this area (similar to codeblocks I believe, it can only perform simple replacements of macros, but it can NOT evaluate if a macro is defined or not)
However, regarding the template, well you are wrong here. codelite can handle templates up to a certain degree.
I dont use templates much, since I think that templates are evil. But codelite *can* handle them (at least it can handle the ones I have wrote).
For example, codelite can not handle the STL templates, but it can handle the boost templates pretty well, plus some support for operator overloading (especially -> operator), for example:
Eran