User forums > Nightly builds
The 07 November 2010 build (6840) is out.
killerbot:
--- Quote from: SotM on November 11, 2010, 12:17:19 pm ---I think I found a bug.
Let's say I have a workspace and it is opened, there are 2 projects (regular C). Names are: Project1, MyLibrary.
Project1 uses some functions from MyLibrary.
I opened a C file from Project1, then right clicked on a function (which can be found within Project1), and select 'Find implementation...', and it jumps right to the implementation of that particular function.
BUT, if I do the same (right click and select 'Find impl..') on a function which can be found in MyLibrary it says "Not found <function name>".
And if I jump to project MyLibrary and try to "Find" that function within this project then everything will be fine. But, again, if I try to find a function "outside" this project then I get a message "Not found ... " :(
If I do the same procedures with 'Find declaration ...' then everything is just fine.
It did work fine with other CodeBlocks builds, but last 2 or 3 beta builds don't work fine.
Or maybe I'm wrong and I need to turn on some special features.
Ideas/comments?
--- End quote ---
I have noticed this too, indeed this is a nasty problem.
I think this showed up during all the code completion refactorings. Let's hope our CC gurus put their brains too it.
Loaden:
--- Quote from: killerbot on November 11, 2010, 07:55:58 pm ---
--- Quote from: SotM on November 11, 2010, 12:17:19 pm ---I think I found a bug.
Let's say I have a workspace and it is opened, there are 2 projects (regular C). Names are: Project1, MyLibrary.
Project1 uses some functions from MyLibrary.
I opened a C file from Project1, then right clicked on a function (which can be found within Project1), and select 'Find implementation...', and it jumps right to the implementation of that particular function.
BUT, if I do the same (right click and select 'Find impl..') on a function which can be found in MyLibrary it says "Not found <function name>".
And if I jump to project MyLibrary and try to "Find" that function within this project then everything will be fine. But, again, if I try to find a function "outside" this project then I get a message "Not found ... " :(
If I do the same procedures with 'Find declaration ...' then everything is just fine.
It did work fine with other CodeBlocks builds, but last 2 or 3 beta builds don't work fine.
Or maybe I'm wrong and I need to turn on some special features.
Ideas/comments?
--- End quote ---
I have noticed this too, indeed this is a nasty problem.
I think this showed up during all the code completion refactorings. Let's hope our CC gurus put their brains too it.
--- End quote ---
You should use two targets, but not two projects.
Because now a project per a parser.
SotM:
--- Quote from: Loaden on November 12, 2010, 06:38:33 am ---You should use two targets, but not two projects.
Because now a project per a parser.
--- End quote ---
Can you explain more? What should I do?
killerbot:
It means where in the past most probably there was a parser that parsed all projects in the workspace, and as such had the information of everything available, now there is only 1 parser per project. And it seems the information stays ONLY within that project.
As in your example :
project 1 --> library
project 2 --> executable
Depending on the project that is active, only 1 set of information is available [there are always ripple through because of the header files].
If you would change your setup of your project(s) to only 1 project which then has 2 targets : the library and the executable; then again all the information is available for the code completion.
However, I don't agree to this, I think we should look for a secondary mechanism, to also check the other projects in the workspace. If there are a lot of projects in the workspace such a search might slow down things.
But this limited search has been a pain in the *** ;-)
In all the years that I used CB, or VS for that matter, and all the places I worked at, the typical approachwas : 1 project per library. And this library can be used by many many applications.
So while I am working on application 1, I have a workspace with the code of that executable, together with all the libraries it is using.
Someone else is working on application 2, similar setup. So that means that a library will end up as a project in several workspaces.
If it was a target it could not be shared, unless everything is constantly duplicated, or everything is put into 1 project, but different applications should not end up in the same project. They have nothing to do with one another, even ignoring the fact of the amount of stuff that needs to be parsed in such a case.
So my suggestion, let's have a mechanism that all projects are parsed in the workspace (starting with the active one, the other can be parsed in the background). In case this might however be too high a penalty on performance load, make it a setting so the user can choose to do it this way or not. And in future we can continue to work on speeding things up if needed. Other IDE can also parse this way, so it is possible ;-)
To me this reduced functionality has been troublesome ;-) , but don't forget we did get a lot of improvements on the code completion side in return. So please, pretty please, can we take this one 1 step further on the ladder of improved completion ?
Loaden:
Maybe, we can make it configurable, but perhaps exist more issue about one workspace per one parser.
I will trying it if i find some time.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version