Author |
Topic |
|
danpetitt
Senior Member
28 Posts |
Posted - Dec 29 2006 : 3:02:10 PM
|
It would be much better if you could select not to reparse stable files when opening a workspace.
For example, a lot of our projects include many 'component' projects. We need to have the "Reparse when opening project" option as the project itself will have changed, but we dont want or need the 'stable' includes to be re-parsed. There does not appear to be a way to stop this reparsing and it can slow my really fast machine down to a useless level while its reparsing these stable projects.
Also, could we not have a command to reparse an entire 'selected' project ... so we could always reparse the other projects as and when required.
I hope this sounds okay and not confusing. |
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Dec 30 2006 : 4:32:53 PM
|
Which IDE are you using? More specifically are you using VS2005 with C++? This has known performance problems on its own.
On its own VA does not normally bring a machine to its knee's, but it is possible. The stable include directories are only reparsed occasionally by VA, certainly not every time the solution is opened.
What are you doing that means you need to reparse a specific project? You should not have this problem, since VA should detect that it has to reparse the files on its own. |
zen is the art of being at one with the two'ness |
|
|
danpetitt
Senior Member
28 Posts |
Posted - Dec 30 2006 : 4:46:34 PM
|
Ah, so I dont need to have the "Parse all files when opening a project" option enabled?
I am using VC6 C++.
I have a workspace that has lots of projects within it ... these are dependant components (libraries and dlls). When I open this workspace, VA starts parsing all the files in every project (probably because of the option above that i have enabled).
I thought I needed this option to reparse the main project whose files do change frequently, but it is also reparsing all the component projects which reside in the stable includes folder.
So what is the full purpose of the option "Parse all files when opening a project"? Can I disable it, if i do will it still reparse the files that have changed in my project?
If thats the case, then how do i get to reparse the 'stable includes' when needed .... it would be good if i could right-click the project and choose "Reparse This Project". |
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Dec 30 2006 : 7:21:01 PM
|
"Parse all files when opening a project" is good if you are working in a group / team, and using source control, so that a lot of files may have changed outside the IDE when you first load it at the start of the day. VA should detect all of the edits you make yourself while working, and reparse as it goes along.
Normally I keep this turned on, and do not run into any serious slow downs with VA. However this will depend on the size of the project, and the speed of your machine.
Another, related, option is:
VA Options -> Text Editor -> C/C++ -> watch for externally modified files and reparse when necessary
Having files in stable include directories included in your project is a little unexpected. The stable include directories are intended for things like system headers and 3rd party libraries that hardly ever change, hence the name "stable"
http://www.wholetomato.com/products/features/directories.asp
Currently the only way to tell VA to reparse its stable includes is to use the button:
VA Options -> Performance -> General -> Rebuild symbol databases
since this is only expected every few months, if ever. |
zen is the art of being at one with the two'ness |
|
|
danpetitt
Senior Member
28 Posts |
Posted - Dec 31 2006 : 02:22:56 AM
|
Oh, so I am buggered then. I cant include any component library and DLL projects in my workspace as they will get reparsed even if they are stated as being 'stable'.
quote: Having files in stable include directories included in your project is a little unexpected.
That may be so, but it does happen.
Hence the additional options I stated at the top ... I would like all files 'except' projects with stable includes reparsed, and I want a command/toolbar button somewhere to 'reparse all files in the active project' so I can decide to do it as and when even on stable includes.
"Rebuilding all symbols" is a bit excessive when only one project may have changed, it means every project I open is going to rebuild and take an age before I can use it.
Please consider these additional options, I dont see they remove any functionality or complicate any functionality already there. |
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Jan 02 2007 : 09:37:19 AM
|
I am a little confused as to why you have set projects that are being changed (the component libraries and DLL projects) as stable.
Have you tried turning off "Parse all files when opening a project" to see how well this works for you?
Reparsing just the current project is virtually the same as another current feature request, so I have put a note on there about this:
case=667 |
zen is the art of being at one with the two'ness |
|
|
danpetitt
Senior Member
28 Posts |
Posted - Jan 02 2007 : 1:21:43 PM
|
The component libraries dont change (much) but they are linked into the projects we work on so need to be part of the workspace. Therefore everything gets reparsed whether they are stable or not ... this seems to be a design flaw to me (its either stable or not) if its stable then it should not get reparsed unless i specifically tell it to but then there is no way for me to do that either. |
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Jan 02 2007 : 2:31:23 PM
|
What I normally do when using a component library is set the IDE's additional include directories to point at the header files for the library, and to simply link my project against the dll that is produced from the library source.
Since the component library is one of the IDE's include directories it is picked up as a stable directory by VA. Since VA knows about the include files it knows about the classes, functions, etc so Intellisense works. Since I am linking against the dll everything compiles quite happily.
This is the "mental model" that is behind VA's handling of stable directories. When viewed this way, the way VA parses things makes sense.
You tell VA to reparse the stable includes by rebuilding the symbol database. You can argue that this is overkill, but if you assume that the stable code that has changed (e.g. a large 3rd party library) represents 1/3 of your stable source code, then reparsing everything starts to make sense.
This system is not as flexible as it could be, but normally it is enough.
Given this mental model I am still finding your particular situation "odd". |
zen is the art of being at one with the two'ness |
|
|
danpetitt
Senior Member
28 Posts |
Posted - Jan 02 2007 : 3:41:17 PM
|
I would agree with the way you work, but to save adding additional include and link directories to every single project, we just insert the component project into the workspace and that is all thats needed ... its quick, easy and works on different hard disk layouts that each developer uses. (I am the only one using Visual Assist, they need to insert the projects to get Intellisense to work on VS6 that we use.)
I would disagree about the rebuild, reparsing the entire symbol database is very overkill considering that one project of a few files but is stable, but needs rebuilding means that you have to rebuild all the Microsoft sdks, mfc, toolkits (like codejock) and anything else. This is hugely different ... its certainly not a third and I would very much doubt it ever is ... mfc and sdks would represent a *huge* percentage of nearly all projects.
So I would agree and disagree with your points ... if you see what i mean ;-)
I cant change the way we work due to a tool I use, but adding some additional options would make VA much more usable, not just for me, but for anyone who doesnt work the 'perfect' way.
I aslo dont think adding my options would detriment the product, but would make it much more flexible and usable: * Change "Reparse all files when opening project" to "Reparse all non-stable files when opening project" * Add a toolbar button to "Force reparse active project"
This means it wont reparse all our projects even if they are stable, but also if we want to reparse some component then we can open it and force it to reparse.
I hope you understand my situation better now. Thanks. |
|
|
sl@sh
Tomato Guru
Switzerland
204 Posts |
Posted - Jan 03 2007 : 04:13:33 AM
|
I agree on many points issued here. In the project I'm working in everything's fine as long as we stick to our 'functionality workspace', since it doesn't include any third party includes (except for a few files that are going to be kicked out as soon as we can resolve all the dependencies). Fortunately (for us) we have outsourced the GUI development, and as a result we have a different workspace for that. When we open this workspace however, reparsing becomes a pain, since indeed it is full of third party souce code, including all of those named above and a few others.
For us there's no need for any changes unless we have to spend more time on the GUI workspace, but I can see that the suggestion posted above would be a huge improvement to our partners and anyone else actively working on workspaces including GUI. |
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Jan 03 2007 : 08:10:42 AM
|
*ah* now I understand what is happening. Apologies for being so difficult about this, but we cannot simply accept every suggestion, VA would "explode" if we tried to do that, even assuming we had the resources to implement them.
as an aside, the figure of 1/3 is one I made up, but some people have 10, 15, 20 additional stable include directories added to the IDE, and some of these are large 3rd party libraries, so the total amount of code can get very large for some people.
I have put in a request to ignore any code in stable include directories when reparsing the project headers on load.
case=4337
reparsing just the current project should be covered by
case=667 |
zen is the art of being at one with the two'ness |
|
|
danpetitt
Senior Member
28 Posts |
Posted - Jan 03 2007 : 1:20:44 PM
|
Thank you very much, I understand what you mean about feature requests from our own product range. Sorry I had difficulty explaining.
As for the cases, is there any way we can view them and any others in your lists? |
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Jan 04 2007 : 01:58:14 AM
|
I've missed why the project directories are listed in the stable list in the first place. Are you using the VA Custom platform and have added them there? If so, why? Or are the project directories listed in your system include path (and therefore are listed as part of the Win32 platform include dirs)?
The "Parse all files when opening a project" setting should be enabled normally (especially if you want the alt+g feature to work). And it shouldn't normally cause all the files to be parsed at workspace/solution load. Only files that have changed since the workspace/solution was last closed are supposed to be parsed (a true full parse occurs the first time it is opened or after a symbol table rebuild).
If you are seeing a full workspace reparse everytime you open the workspace, then there is some sort of problem. Permissions on the va data directory are not allowing file writes? Or maybe it is getting confused by having workspace dirs listed in the stable list?
|
|
|
|
Topic |
|