Author |
Topic |
|
hwatson
Junior Member
23 Posts |
Posted - Oct 19 2004 : 5:32:00 PM
|
In all of the beta builds I've tried (1272 and later), the Goto Implementation command doesn't work when the implementation is in a subdirectory of the main code folder. This works for me in build 1246.
The code in the subdirectories is getting parsed. I see it going through the subdirectories when opening the project, and the syntax coloring is correct. I've also tried manually parsing some of the files to see if that helps. It does not.
Goto Implementation appears to work fine otherwise. It finds code in the main folder and in external headers declared in the project settings, in both matched and mismatched .h/.cpp pairs.
I am using VS .NET 7.1 on Windows XP SP1. Except for SP2, all critical updates have been applied.
Has anyone else encountered this problem? Is there a workaround available? |
|
support
Whole Tomato Software
5566 Posts |
|
hwatson
Junior Member
23 Posts |
Posted - Oct 20 2004 : 2:27:29 PM
|
I checked the page you suggested, but there was nothing there that resolved the problem of Goto not working for code in subdirectories.
Goto: Clicking on the Goto button doesn't do anything. Occasionally there is a pause before the IDE becomes responsive again (perhaps while looking for implementations?), but usually it's as if the button simply has no behavior. The menu of locations does not appear.
Locating Implementations: I added the subfolders to both the Visual Studio project directories and the Visual Assist directories and rebuilt the symbol database. The Goto command still did not work. I should note that it is not just implementations that can't be found. It does not find declarations in header files either.
IDE Commands: I tried "Go To Definition" and "Go To Declaration" in the main project I'm working with, and a new test project I created to look into this problem. They did not work with my main project, but they did work with the new test project. Visual Assist's Goto command did not work for either project.
Key Binding: Key bindings for the Goto feature do not work either.
Options: Both the context and definition fields are visible and displaying the correct information.
To clarify, the Goto feature only fails to work when the declaration/implementation is in a subfolder of the main code folder. Goto works fine for code in other locations (the project directory or external folders specified in the IDE or Visual Assist's directory settings), and other Visual Assist features work with code in subdirectories. Syntax coloring, auto-complete, and auto-suggest work, and the context and definition fields are displaying info as expected. And once again, Goto does work for me in build 1246 when code is in subdirectories. |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Oct 21 2004 : 1:45:33 PM
|
quote: Clicking on the Goto button doesn't do anything.
This is expected behavior when a declaration cannot be found.
quote: Occasionally there is a pause...
VA X builds a cache for this and the next searches.
quote: I should note that it is not just implementations that can't be found. It does not find declarations in header files either.
We should note that adding locations for implementations does not help if VA X cannot find a declaration.
Are your headers and cpp files in the same subfolders? If different, what are the names of the subfolders?
Can you describe how your header is #included in your project? |
|
|
hwatson
Junior Member
23 Posts |
Posted - Oct 21 2004 : 5:21:55 PM
|
I've tracked down the problem. The headers are being included as follows:
#include ".\\subfolder\\header.h"
(When .cpp files exist, they match the name of the .h file, and are in the same subfolder)
However, header.h is not actually included in the Visual Studio project. If header.h is added to the project, Goto Implementation works as expected.
So now I guess the question is, did previous versions of Visual Assist not need header.h added to the project by design, or by emergent behavior? If not by design, where do I submit feature requests?
Thanks for your help! |
|
|
mspa
Senior Member
Netherlands
44 Posts |
Posted - Oct 22 2004 : 08:17:07 AM
|
I have a similar problem with the goto functionality. When I use goto on i.e. a function, normally (with build 1246) I received multiple hits for the implementation and header file, this way I could choose to go to the implementation of the funtion or to the declaration. Now with the newest build (1272 - 1278) I only get hits in the header file and not the implementation file.
However my implementation and header files are located in different directories (source and include directory), This did work in build 1246. |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Oct 30 2004 : 7:31:19 PM
|
We are unable to reproduce the problem with headers.
Can someone create a small, sample project that demonstrates a problem? |
|
|
mspa
Senior Member
Netherlands
44 Posts |
Posted - Nov 01 2004 : 04:38:05 AM
|
I have a sample program ready which reproduces my problem, where can I send it to? because I can't supply an attachment with a post. |
|
|
WannabeeDeveloper
Tomato Guru
Germany
775 Posts |
Posted - Nov 01 2004 : 04:46:51 AM
|
mail it to [email protected] with the Topic-ID (that's 3091 in this case) |
|
|
|
hwatson
Junior Member
23 Posts |
Posted - Nov 01 2004 : 1:12:11 PM
|
Since mspa's problem sounds slightly different from mine, I will also send in a sample project. In the meantime, I have some more information about the problem. It appears that Goto will work for files that are not in the project, as long as a file that is in the project resides in the same subfolder.
// Assume this is in the .vcproj file #include "subfolder1\\header1.h" // Goto works
// Same subfolder, but not in .vcproj file #include "subfolder1\\header2.h" // Goto also works
// Different subfolder, not in .vcproj file #include "subfolder2\\header3.h" // Goto does not work
Thanks for your continued help. |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Nov 01 2004 : 6:31:52 PM
|
We broke something. VA X no longer finds implementations in ../Source, relative to the location of the header.
case=199 |
|
|
hwatson
Junior Member
23 Posts |
Posted - Nov 03 2004 : 1:19:55 PM
|
This has been fixed in 1283. Thanks! |
|
|
|
Topic |
|