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
 Technical Support
 1540: Alt-G often does not find implementation ...
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

kai
Junior Member

11 Posts

Posted - Oct 30 2006 :  06:35:03 AM  Show Profile  Reply with Quote
Hello,

in my current project (C++, VS8, intellisense disabled due to performance issues) i often have the problem that Alt-G finds the definition of symbols in a header file (e.g. member functions) but does not seem to see the implementation. Very often i find myself switching manually (Alt-O) from HPP to CPP files and then do a local search for the implementation.

This happened also in earlier versions, it's not a new 'feature' of the 1540 release.

Let me know if you need further info.

/Kai

endgame
Junior Member

21 Posts

Posted - Oct 30 2006 :  07:22:14 AM  Show Profile  Reply with Quote
Are the problematic files part of your open workspace or not?
If not, you can see http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=5426
Go to Top of Page

kai
Junior Member

11 Posts

Posted - Oct 30 2006 :  07:53:25 AM  Show Profile  Reply with Quote
No, all files are part of my workspace. In addition, even if i manually reparse the file which contains the implementation Alt-G still does not find anything. The solution i'm working on is quite big (~8000 files). This seems to be a similarity with endgame's problem.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Oct 30 2006 :  12:55:59 PM  Show Profile  Reply with Quote
Is there any particular pattern to which functions alt-g does not work with?

e.g. if you are using Qt and signals and slots then you will have code that looks like:

class felineTest : public QDialog
{
public slots:
    void slotOne();
    void slotTwo();
};


Since Qt uses macro's to fix the "slots" word this compiles, but it is not standard C++ syntax, and can confuse VA.

If you look in FSIW do you see these functions listed?
If you look in OFIW are the cpp files listed?

zen is the art of being at one with the two'ness
Go to Top of Page

kai
Junior Member

11 Posts

Posted - Oct 31 2006 :  03:36:22 AM  Show Profile  Reply with Quote
We actually do have a lot of macros in a framework we're using. However, for some of the files which are 'infected' with these framework definitions Alt-G works fine. On the other hand, i just tried Alt-G with a member function of a class which is really just plain C++. The files (hpp/cpp) are listed in the FSIW dialog. And in OFIW i see two entries for the function. One of the entries gets me to the definition, the other to the implementation - fine! But even though VAssistX seems to be aware of the implementation, pressing Alt-G in the header (or in another solution file) still only jumps to the definition in the header file.

It's strange, for some files it works, for others it doesn't - i've yet to find a pattern behind this.


Here the infos from the About dialog:

VA_X.dll file version 10.3.1540.0 built 2006.10.27
Licensed to:
VA X: xxxxxx (1-user license) Support ends 2007.08.12
VAOpsWin.dll version 1.3.3.7
VATE.dll version 1.0.5.9
DevEnv.exe version 8.0.50727.363
msenv.dll version 8.0.50727.363
Font: Courier New 13(Pixels)
Comctl32.dll version 5.81.4968.2500
Windows 2000 5.0 Build 2195 Service Pack 4
Single processor

Platform: Win32
Stable Includes:
C:\\Programme\\MicrosoftVisualStudio8\\VC\\include;
C:\\Programme\\MicrosoftVisualStudio8\\VC\\atlmfc\\include;
C:\\Programme\\MicrosoftVisualStudio8\\VC\\PlatformSDK\\include;
C:\\Programme\\MicrosoftVisualStudio8\\SDK\\v2.0\\include;

Library Includes:
C:\\Programme\\MicrosoftVisualStudio8\\VC\\atlmfc\\src\\mfc;
C:\\Programme\\MicrosoftVisualStudio8\\VC\\atlmfc\\src\\mfcm;
C:\\Programme\\MicrosoftVisualStudio8\\VC\\atlmfc\\src\\atl;
C:\\Programme\\MicrosoftVisualStudio8\\VC\\crt\\src;

Other Includes:

Go to Top of Page

kai
Junior Member

11 Posts

Posted - Oct 31 2006 :  04:40:53 AM  Show Profile  Reply with Quote
I've tried to narrow this down a bit and now have a project consisting of just one simple class AltGTest which is defined in AltGTest.h and has an implementation in AltGTest.cpp. Still Alt-G on getStream() in the header does not get me to the implementation ...

AltGTest.h:

#ifndef _ALT_G_TEST_H_
#define _ALT_G_TEST_H_
typedef unsigned char uint8_t;
namespace altg
{
  class AltGTest
  {
  public:
    AltGTest();
    virtual const uint8_t * getStream() const;
  };
}
#endif


AltGTest.cpp:

#include "AltGTest.h"

using namespace altg;
AltGTest::AltGTest() 
{
}
const uint8_t * AltGTest::getStream() const
{
  return 0;
}


Edited by - kai on Oct 31 2006 2:05:10 PM
Go to Top of Page

kai
Junior Member

11 Posts

Posted - Oct 31 2006 :  04:46:47 AM  Show Profile  Reply with Quote
If someone is interested i can also provide a zip file with the complete project. I just could not attach it to my prior post ...
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Oct 31 2006 :  10:33:29 AM  Show Profile  Reply with Quote
Thank you for the clear example, I get the same problem here. Unfortunately this is a known bug.

case=971

VA does not understand the "using namespace" line properly. If you wrap the function implementation in the namespace, or place altg:: in front of the class name then alt-g will work correctly.

Do all of your problem classes uses this namespace method? If so then it would explain things. If not then you could be running into more than one bug.

zen is the art of being at one with the two'ness
Go to Top of Page

kai
Junior Member

11 Posts

Posted - Oct 31 2006 :  12:01:08 PM  Show Profile  Reply with Quote
Thanks feline, i think this could explain most (if not all) of the problems. The 'using namespace xxx;' gets used a lot in our project. Any chance that this gets fixed in one of the next releases?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Oct 31 2006 :  12:06:23 PM  Show Profile  Reply with Quote
This is flagged as a fairly urgent bug, but unfortunately I have no idea when it will be done. I suspect it could be a slightly tricky fix.

zen is the art of being at one with the two'ness
Go to Top of Page

mertkew
New Member

Germany
8 Posts

Posted - Dec 18 2006 :  08:27:13 AM  Show Profile  Reply with Quote
How is your progress on this issue?
Almost all my .cpp files have the 'using namespace xxx' directive and it's quite annyoing "Goto Implementation" doesn't work with them.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Dec 18 2006 :  12:10:06 PM  Show Profile  Reply with Quote
This has been fixed in the next build, which I am hoping will be posted in the next few days.

zen is the art of being at one with the two'ness

Edited by - feline on Dec 18 2006 2:36:15 PM
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Dec 19 2006 :  9:30:16 PM  Show Profile  Reply with Quote
case=971 is fixed in build 1543
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