views:

465

answers:

2

I admit...I am posting this question because I still don't have an answer to my other question and thought I would take a different tact.

Can someone explain to me WHERE the values for intellisense and namespace/class/member completion works. I figured if I can drill into where/how it is deriving that data I can try to reconfigure my project so that it will resolve my namespaces correctly.

Seth

+1  A: 

The name space and intellisense information, for the CLR, comes from a database hidden inside the VS install.

The information for the working project, is scanned and archived (I think in a file) when you open the project. It then periodically updates it as you work.

If you want the exact path, I doubt that Microsoft publishes that information.

After looking at your other question, I wanted to add that it is possible (somehow) to have Visual Studio rebuild the index information for a given project. It eludes me on how to do this right now. Have you tried this and did you end up with the same results?

Update in regards to comments:

Refreshing the cache is easy but not necessarily obvious. There are two ways to refresh the cache: 1) Go to Edit -> IntelliSense -> Refresh Local Cache and 2) Hit Ctrl+Shift+R

Source: Dan's Blog - Refreshing the IntelliSense Cache

Frank V
It actually gets it from the documentation XML that you can generate, as well. This is where it gets it from for SDK installations like Silverlight, too.
Jeff Yates
I have not tried to rebuild the index because I do not know how to do this.I HAVE tried rebuild all of course AFTER doing Clean Solution. I have even deleted BIN and OBJ directories to no avail. How would I "rebuild the index information". Any ideas anyone?Seth
Seth Spearman
PS...thanks for your help all.Seth
Seth Spearman
@Seth, if you were thanking me, you are welcome. I glad it was helpful...
Frank V
A: 

I don't know how it's done in Visual Studio, but here is the general approach:

Collect all the public members and methods. This is done, in case of managed libraries like those produced by VB.NET, by reflection. The documentation comes from xml files related to those libs. That's the approach for Referenced libraries. For the project you are currently working on, it just constantly parses the source files where the documentation is combined with the code.

How the namespace resolving is done depends on the language offcourse, but that is answered in your other question.

Dykam