Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Visual Assist
 Technical Support
 Find references fails to find all references

You must be registered to post a reply.
Click here to register.

Screensize:
UserName:
Password:
Format: BoldItalicizeUnderlineStrikethrough Align leftCenterAlign right Insert horizontal ruleUpload and insert imageInsert hyperlinkInsert email addressInsert codeInsert quoted textInsert listInsert Emoji
   
Message:

Forum code is on.
Html is off.

 
Check to subscribe to this topic.
   

T O P I C    R E V I E W
mnieber Posted - Apr 24 2008 : 04:11:59 AM
In my project, we place the implementation of templated classes in .txx files.

I followed the steps of topic 5481 to add .txx to the files that are parsed by Visual Assist, except for step 1 (I did not add .txx as a C++ extension in Visual Studio, because it is not a C++ file extension).

If I now do "Find References" on a symbol (called GetCurrentTimeStep) in the .txx file, I get three hits (which are correct). However, if I do "Find References" on the same symbol in the .h file (where it is declared), I only get two hits (in the .h and .cpp file); the occurrence in the .txx file is missing.

If I cannot trust the outcome of "Find References", I cannot use it of course (which would be a real pity!).

Some details: I am looking for the member function called GetCurrentTimeStep of a class called Plugin. The declaration and definition are in Plugin.h and Plugin.cpp resp, and in Test.txx I am calling this member function.
7   L A T E S T    R E P L I E S    (Newest First)
feline Posted - Dec 09 2010 : 9:45:49 PM
I assumed you were using Find References, but good to check these assumptions

If you move this test function into the namespace you are using, is it still found correctly?

The namespaces, or possibly some other symbols with duplicate names might be the problem here.
hfrmobile Posted - Dec 09 2010 : 07:59:42 AM
quote:

Find References and "L" first, I have just tested this here, and Find References is not finding a function called "L" for me in this situation, when triggered from a string. But it is correctly finding the function when triggered within my test logging class. Perhaps something is confusing our parser.



I agree to the last sentence ;-)
See also http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=9873
I do the following: select L from L"text" and use "Find References". It will find L function within the same project only.

quote:

Find References is designed to search across multiple projects in the same solution, assuming that VA is aware of all of the files / projects in the solution.


Good to know. Indeed there is something strange in the solution I work for at the moment which needs some investigation ...

quote:

How are you triggering Find References?



Of course I used "Find References". There seems to be problems with overloads but this is a known issue.

Have created a TestVAFindAcrossProjects() function/method and referenced it in other projects and it worked! So there is something strange with the existing source code ...
feline Posted - Dec 08 2010 : 10:45:39 PM
Apologies for the slow reply to this.

Find References and "L" first, I have just tested this here, and Find References is not finding a function called "L" for me in this situation, when triggered from a string. But it is correctly finding the function when triggered within my test logging class. Perhaps something is confusing our parser.

Find References is designed to search across multiple projects in the same solution, assuming that VA is aware of all of the files / projects in the solution.

How are you triggering Find References?

Obviously the command:

VAssistX -> Find References in File

is not expected to search for references in other files, or other projects, but the "Find References" command should, and does for me.

Are the code files from the various solutions being listed in VA's Open File dialog?

If you add a simple dummy function to one of the projects, outside of any namespaces, e.g.

void TestVAFindAcrossProjects() { }

and then call this from another project, wait for VA to colour all calls as functions, and then run Find References, what results do you get? Do you get different results if you trigger the Find References from the declaration or from one of the calls?
hfrmobile Posted - Dec 07 2010 : 10:05:54 AM
Just tried to use "Find References" on L:

SomeMethod(L"text");


It shouldn't find any references since L is no method etc. But it finds some references in my case since in my current project I work for defines a log class which defines a method named L ;-) (e.g. Log::L(string))

It seems to me that the "Find References" feature not really parses C++ code. It seems that it is just a kind of "text find".
hfrmobile Posted - Dec 01 2010 : 08:22:00 AM
It seems that I have a similar issue: VA does not find all references even all files are part of the solution. To be correct: VS seems to look for references only in the project where I use the "Find References" menu.

My solution looks as follows

solution
  exeprj
  baselib
  lib1
  lib2
  libN


e.g. I search for references in lib1 VA only finds references in lib1 even lib2 has references to what I am searching for.

Is VA able to search for references within a project only or is it able to search in the entire solution?

Project dependencies are correctly set of course, the project compiles and runs of course.

Only using common file extensions (.h, .cpp). the lib project containing classes within namespaces:


namespace foo
{
  class Bar
  {
  };
}

// usage
class foo::Bar ...
feline Posted - Apr 24 2008 : 07:39:49 AM
You will need to add the files to the solution, otherwise VA does not know about them, so will not reliably search them when you run Find References.
mnieber Posted - Apr 24 2008 : 04:37:48 AM
Okay, I think I found the solution. The txx file was not present in the visual studio solution. When I added the txx to the solution, the symbol in the .txx file was found correctly with "Find References" on the symbol in the .h file.

© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000