Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Visual Assist
 Technical Support
 1540: Alt-G often does not find implementation ...

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
kai Posted - Oct 30 2006 : 06:35:03 AM
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
12   L A T E S T    R E P L I E S    (Newest First)
sean Posted - Dec 19 2006 : 9:30:16 PM
case=971 is fixed in build 1543
feline Posted - Dec 18 2006 : 12:10:06 PM
This has been fixed in the next build, which I am hoping will be posted in the next few days.
mertkew Posted - Dec 18 2006 : 08:27:13 AM
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.
feline Posted - Oct 31 2006 : 12:06:23 PM
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.
kai Posted - Oct 31 2006 : 12:01:08 PM
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?
feline Posted - Oct 31 2006 : 10:33:29 AM
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.
kai Posted - Oct 31 2006 : 04:46:47 AM
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 ...
kai Posted - Oct 31 2006 : 04:40:53 AM
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;
}

kai Posted - Oct 31 2006 : 03:36:22 AM
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:

feline Posted - Oct 30 2006 : 12:55:59 PM
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?
kai Posted - Oct 30 2006 : 07:53:25 AM
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.
endgame Posted - Oct 30 2006 : 07:22:14 AM
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

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