Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => CodeCompletion redesign => Topic started by: jack on May 31, 2010, 12:27:46 pm

Title: code complete parse problem
Post by: jack on May 31, 2010, 12:27:46 pm
I've just upgraded to CB 10.05, but I found code complete did not work as expect. Here is the example code:

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
Title: Re: code complete parse problem
Post by: 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) {

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
Title: Re: code complete parse problem
Post by: ollydbg on May 31, 2010, 01:51:51 pm
I just test the code below using the latest cc_branch

Code
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)

Code
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.
Title: Re: code complete parse problem
Post by: jack on May 31, 2010, 02:13:03 pm
Does it work if you replace:
 INIT_FUNC(mod_foo_init) {
with:
static void * mod_foo_init(server *srv) {


It works.
Title: Re: code complete parse problem
Post by: oBFusCATed on May 31, 2010, 03:19:10 pm
ollydbg: you're testing in the CC_branch right?
Title: Re: code complete parse problem
Post by: ollydbg on May 31, 2010, 03:38:03 pm
ollydbg: you're testing in the CC_branch right?

Yes, I'm using (testing) cc_branch these days.
Title: Re: code complete parse problem
Post by: 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.


[attachment deleted by admin]
Title: Re: code complete parse problem
Post by: jack on May 31, 2010, 05:56:27 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 :)
Title: Re: code complete parse problem
Post by: oBFusCATed on May 31, 2010, 05:58:54 pm
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!