I've just upgraded to CB 10.05, but I found code complete did not work as expect. Here is the example code:
typedef struct {
char *md5;
} plugin_data;
#define INIT_FUNC(x) \
static void * x(server *srv)
INIT_FUNC(mod_foo_init) {
plugin_data *p;
p-> /* not work here */
}
Hope the patch releases soon. Thanks
Does it work if you replace:
INIT_FUNC(mod_foo_init) {
with:
static void * mod_foo_init(server *srv) {
The current CC, doesn't do preprocessor replacements, but there is patch in the special branch for the CC improvements that should work.
You can try that branch if you have time and courage :-P
I just test the code below using the latest cc_branch
typedef struct {
char *md5;
} plugin_data;
void mod_foo_init(server *srv) {
plugin_data *ppppp;
ppppp->;
};
Here is the log output(enable the smart cc AI log)
AI() AI enter, actual_search: " ppppp->"
AI() =========================================================
AI() Doing AI for ' ppppp->':
FindCurrentFunctionStart() Looking for tokens in 'F:\cb\testCode\namespacetest\main.cpp'
FindCurrentFunctionStart() Found 0 results
FindCurrentFunctionStart() Can't determine current function...
BreakUpComponents() Breaking up ' ppppp->'
BreakUpComponents() Found component: 'ppppp' (Class)
BreakUpComponents() Adding component: 'ppppp'.
BreakUpComponents() Found component: '' (SearchText)
BreakUpComponents() Adding component: ''.
ResolveExpression() search scope is 1 result.
search scope: -1
ResolveExpression() Looping 0 result.
AI() AI leave, returned 0 results
0 results
Reparsing while typing for editor F:\cb\testCode\namespacetest\main.cpp
It seems there are some bugs. I'll check it.
Quote from: oBFusCATed on May 31, 2010, 01:25:51 PM
Does it work if you replace:
INIT_FUNC(mod_foo_init) {
with:
static void * mod_foo_init(server *srv) {
It works.
ollydbg: you're testing in the CC_branch right?
Quote from: oBFusCATed on May 31, 2010, 03:19:10 PM
ollydbg: you're testing in the CC_branch right?
Yes, I'm using (testing) cc_branch these days.
By the way, I just do the same these code at home(latest cc_branch), it works as expect. see the screenshot.
We only partially handles preprocessors such as "#if " like conditional preprocessor, and user defined replacement rules.
[attachment deleted by admin]
Quote from: ollydbg on May 31, 2010, 04:08:32 PM
By the way, I just do the same these code at home(latest cc_branch), it works as expect. see the screenshot.
We only partially handles preprocessors such as "#if " like conditional preprocessor, and user defined replacement rules.
I want to try the latest cc_branch as you mentioned. Where do I get it?
Thanks :)
See here: http://www.codeblocks.org/downloads/7
And here: http://svn.berlios.de/wsvn/codeblocks/branches/codecompletion_refactoring/?rev=6298#_branches_codecompletion_refactoring_
Beware that you should compile C::B from source!