Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Feature Requests
 Support multiple symbol databases
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

rhinology
Junior Member

10 Posts

Posted - Dec 15 2008 :  8:48:13 PM  Show Profile  Reply with Quote
Currently all projects share the same symbol database. For example, if I'm writing two application using two frameworks, I can add include directories to "VC++ Directories". But I'll see symbols from framework B when I'm actually working with project A.

I can add/delete include directories when switching projects, but that's a pain when switching is frequent. Also, each time I switch the project, I have to restart Visual Studio and VA will re-parse again.

It would be greate if VA can support multiple symbol database and make swithcing between them really easy (e.g. associate project with symbol database so it is autamatically selected when I change project).

Lio
Senior Member

25 Posts

Posted - Dec 16 2008 :  01:56:20 AM  Show Profile  Reply with Quote
Does this thread sound like what you are after?
http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=8377
Go to Top of Page

rhinology
Junior Member

10 Posts

Posted - Dec 16 2008 :  1:21:09 PM  Show Profile  Reply with Quote
quote:
Originally posted by Lio

Does this thread sound like what you are after?
http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=8377



Similar, but not exactly the same.

Symbol database usually doesn't require re-parse. It is not a solution, it is more like "VC++ Directories".

Say I'm writing a game for both NDS and PSP. The game only includes 1 file (mygame.cpp) that needs re-parse each time I open the project. The DS version also references DS SDK which is huge but doesn't change. The PSP version references PSP SDK which is also huge but doesn't change.

When I open DS game project, mygame.cpp is parsed. DS SDK has been parsed previously (once) and associated with this project so I can use all symbols in DS SDK.

When I close DS game project and open PSP game project, PSP version of mygame.cpp is parsed and PSP SDK symbols can be used. DS SDK symbols should become unavailable to avoid any confusion.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Dec 16 2008 :  9:38:23 PM  Show Profile  Reply with Quote
We understand the problem with our current implementation and will be looking into this in 2009. case=21844

In the meantime, if you are interested in a very hacky workaround that might make life a little more bearable, here we go.

The VA db directory is typically located at (for Vista):
%UserProfile%\\AppData\\Local\\VisualAssist

Each running instance of the IDE gets its own directory within the VisualAssist dir. If you have two instances of vs2008 running, you will see these directories:
%UserProfile%\\AppData\\Local\\VisualAssist\\vs9_1
%UserProfile%\\AppData\\Local\\VisualAssist\\vs9_2
(The %UserProfile%\\AppData\\Local\\VisualAssist\\vs9 dir is shared among the instances)

In the vs9_x directory is a file named version.dat. At startup, if the file is missing or if the contents of the file do not match the installed version of VA, the db is purged (and rebuilt when a solution is opened). Changing platforms in the VA Options dialog causes the file to be deleted and causes the db dirs to be purged at shutdown.

Within the vs9_x directory is a CPP directory. After the IDE has exited, you could make a copy of that directory and save it as something like CPP.ds, CPP.psp or CPP.win32.

The Platform that VA uses is recorded in the registry at:
HKCU\\Software\\Whole Tomato\\Visual Assist X\\VANet9 (for VS2008)
value name: Platform
where the value is one of the semi-colon delimited strings in the Platforms value.
The Platform defines what set of include directories VA looks in to locate #include <>s.
Platform is most likely Custom and defined using the VA Options dialog.
The settings for Custom are stored at:
HKCU\\Software\\Whole Tomato\\Visual Assist X\\VANet9\\Custom

So...

You could conceivably change the Custom Platform settings using a reg script (as long as no IDE instance is running).
Then you could rename the CPP directories. For example to switch from DS to PSP:
CPP -> CPP.ds
CPP.psp -> CPP

You would then be able to change your platform settings without requiring a rebuild - you would still need to restart the IDE though. Do not change the platform using the VA Options dialog - otherwise the db is purged at shutdown. Don't save a copy of the CPP dir while the IDE is running because some changes may not have been committed.

Running multiple instances of the IDE simultaneously complicates the CPP renaming only in that it needs to happen for each vs9_x dir. But you should not attempt to run one instance using different platform settings than any other running instance.

And to repeat, this is simply a very hacky workaround given in the chance that it might work but note that changes in future releases may render it useless.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000