Developer forums (C::B DEVELOPMENT STRICTLY!) > CodeCompletion redesign

Class browser reengineering (stage 1)

(1/1)

rickg22:
If you want to test my experimental version of Code::Blocks, with a class browser revamp, here's the subversion url:


https://svn.berlios.de/svnroot/repos/codeblocks/branches/rick_s_playground/src/

Today's revision changed the ClassBrowserBuilderThread with a ClassBrowserBuilder object running in the main thread.  It runs in the background with the power of wxTimer ;-). It works, but it's not completed yet, I need to handle the addition of nodes (right now it runs in a single step, stalling C::B for around 3 seconds). However, you can notice that when you switch in the symbols tab from "Project Files" to "Current File", the removal of nodes in the tree is nearly instantaneous :)

Feel free to post your comments.

mariocup:
Hi Rickg,

I tried the plugin under windows and switching to the different views in the symbol browser is quite fast. I will test the system within the next days.

Which version of gcc do you use under windows. I have problems building the system with linux and gcc 4.0.2 issues an error (line 34) when building the classbrowser.cpp. I removed the dir sources under linux, so I do not remember the exact error message (Sorry).

Codeblocks does not support parsing of typedef structs and unions


--- Code: ---typedef struct
{
   int Temp;
} Data_t;

Data_t Data;

--- End code ---

Will the parsing be supported with the new class browser (final stage)  :)

Bye,

Mario

rickg22:
I'm using gcc 3.4.5.  Anyway, please try compiling again, I'd like to see that error code.


--- Quote ---Will the parsing be supported with the new class browser (final stage)  Smile
--- End quote ---

Hey, hey... take it easy. I'm just redesigning a MINOR PART of code completion.

After that, I'll revamp the memory handling and the parserthread model to separate the parsing from the token handling. Then i may switch to a database model, and FINALLY... I'll revamp the parser - if i can :P - . One possibility is using CTAGS, but that's long-term.

mariocup:
Hi Rickg,

I get the following error under linux and gcc 4.0.2. I modified the original Makefile.am after a configure and include classbrowser.cpp,h instead of classbrowserthread.* and statemachinehelper.h.
The gcc issuses the following error:

classbrowserbuilder.cpp:34: error: explicit specialization of 'void StateMachineData<ClassBrowserBuilderAuxData>::CopyFrom(const ClassBrowserBuilderAuxData&)' must be introduced by 'template <>'
classbrowserbuilder.cpp:34: error: template-id 'CopyFrom<>' for 'void StateMachineData<ClassBrowserBuilderAuxData>::CopyFrom(const ClassBrowserBuilderAuxData&)' does not match any template declaration
classbrowserbuilder.cpp:34: error: invalid function declaration
classbrowserbuilder.cpp:43: error: explicit specialization of 'void StateMachineData<ClassBrowserBuilderAuxData>::CopyTo(ClassBrowserBuilderAuxData&)' must be introduced by 'template <>'
classbrowserbuilder.cpp:43: error: template-id 'CopyTo<>' for 'void StateMachineData<ClassBrowserBuilderAuxData>::CopyTo(ClassBrowserBuilderAuxData&)' does not match any template declaration
classbrowserbuilder.cpp:43: error: invalid function declaration

Regards,

Mario

rickg22:
Mario: It seems this is an issue with GCC 4. Anyway, you can help me here. Try to add "template<>" before those function declarations and tell me if it compiles. If it does, I'll try modifying the code with my version.

Navigation

[0] Message Index

Go to full version