CodeLite won't display functions in outline tab

CodeLite installation/troubleshooting forum
KEhrhardt
CodeLite Enthusiast
Posts: 24
Joined: Wed Jan 28, 2009 7:51 pm
Contact:

Re: CodeLite won't display functions in outline tab

Post by KEhrhardt »

Well :roll: now the problem is back again. I'm not sure what the solution is, but I'd be interested if anyone else has seen this issue.
User avatar
eranif
CodeLite Plugin
Posts: 6375
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: CodeLite won't display functions in outline tab

Post by eranif »

KEhrhardt wrote:Well :roll: now the problem is back again. I'm not sure what the solution is, but I'd be interested if anyone else has seen this issue
Let me understand you:
You have the same file with the same symbols under 2 different paths - codelite will only keep symbols from *one* file. It does not allow keeping the same symbols twice.

I dont understand how it worked for you earlier

Eran
Make sure you have read the HOW TO POST thread
KEhrhardt
CodeLite Enthusiast
Posts: 24
Joined: Wed Jan 28, 2009 7:51 pm
Contact:

Re: CodeLite won't display functions in outline tab

Post by KEhrhardt »

I have two identical files (compared at the binary level using Beyond Compare) that are included in two separate projects under the same workspace. One project displays the Global Functions and Variables correctly in the workspace view, the other does not. This problem seems to come and go with the one problematic project. I have forced a full retag of the workspace multiple times, tried retagging at the project level and tried retagging the file. Nothing seems to work once it gets into this mode. Last time I had to create a new project and rebuild all my project settings in order for CodeLite to display the Functions and Variables properly. This caused me some grief as it is not a standard compiler supported by CodeLite, I must do substantial setup to run a Custom Build to build the code base. I am just surprised that others have not seen this issue.
User avatar
eranif
CodeLite Plugin
Posts: 6375
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: CodeLite won't display functions in outline tab

Post by eranif »

What you are describing is the normal mode of codelite and this is the way I expected it to behave.

The tags table in the database (which holds all the information regarding your symbols)
has a unique constraint:

Code: Select all

sql = wxT("CREATE UNIQUE INDEX IF NOT EXISTS TAGS_UNIQ on tags(kind, path, signature);");
Where:
kind = is the type of the symbol (e.g. function, prototype, class, struct etc.)
path = the symbol path. Do not confuse this with file path. for example, if you have class MyClass with a function 'foo' the path for 'foo' is set to: 'MyClass::foo'
signature = the function signature (if any)

So as you can see, codelite can only store one entry per symbol (where symbol uniqueness is defined by the combination of the above three properties)

Eran
Make sure you have read the HOW TO POST thread
KEhrhardt
CodeLite Enthusiast
Posts: 24
Joined: Wed Jan 28, 2009 7:51 pm
Contact:

Re: CodeLite won't display functions in outline tab

Post by KEhrhardt »

eranif wrote:What you are describing is the normal mode of codelite and this is the way I expected it to behave.
Hrmm.. so you are telling me that if two projects have an identical file (in this case a .c source file), one project can display the Global Functions and Variables in the workspace view and the other cannot, this is by design? :shock: I would think each project should be independent of the other as far as parsing the functions and variables. You could have two projects using the same source code but compiled for different targets using different toolchains (in fact this is what I am doing, unit testing the embedded code on the PC to test logic). I see "tagging" a project as an implementation detail that should be hidden from the user in order to provide them with additional functionality to navigate around the code. Maybe I am misunderstanding something here.
Post Reply