CodeLite won't display functions in outline tab
-
- CodeLite Enthusiast
- Posts: 24
- Joined: Wed Jan 28, 2009 7:51 pm
- Contact:
Re: CodeLite won't display functions in outline tab
Well 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.
- 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
Let me understand you:KEhrhardt wrote:Well 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
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
-
- CodeLite Enthusiast
- Posts: 24
- Joined: Wed Jan 28, 2009 7:51 pm
- Contact:
Re: CodeLite won't display functions in outline tab
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.
- 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
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:
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
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);");
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
-
- CodeLite Enthusiast
- Posts: 24
- Joined: Wed Jan 28, 2009 7:51 pm
- Contact:
Re: CodeLite won't display functions in outline tab
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? 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.eranif wrote:What you are describing is the normal mode of codelite and this is the way I expected it to behave.