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
 Autocomplete doesn't work with new version.
 New Topic  Topic Locked
 Printer Friendly
Author Previous Topic Topic Next Topic  

turkeypotpie
Junior Member

15 Posts

Posted - Aug 04 2005 :  9:45:48 PM  Show Profile
Autocomplete works fine for me in build 1301, but fails in the most recent build (1418)

In particular:
1. Classes within a namespace aren't detected, unless the namespace is explicitly used.
2. Method autocomplete doesn't work. It instead provides a list of global symbols (???) rather than anything relevant.

I tried rebuilding vAssist's index, which didn't fix it.

Additional info:
-- Our project is straight c++
-- 'Auto list members' is checked in Visual Studio's option dialog.

turkeypotpie
Junior Member

15 Posts

Posted - Aug 04 2005 :  9:50:27 PM  Show Profile
More goob:

VA_X.dll file version 10.1.1301.0
Licensed to:
VA X: [email protected] (1-user license) Support ends 2006.03.18
VA.NET 7.1:
VAOpsWin.dll version 1.2.0.4
DevEnv.exe version 7.10.3077.0
msenv.dll version 7.10.3077.0
Font: Courier New 13(Pixels)
Comctl32.dll version 6.0.2900.2180
WindowsNT 5.1 Build 2600 Service Pack 2
2 processors

Platform: Custom
Stable Includes:
c:\\program files\\microsoft visual studio .net 2003\\vc7\\include;
C:\\Program Files\\Microsoft DirectX 9.0 SDK (October 2004)\\Include;
c:\\program files\\microsoft visual studio .net 2003\\vc7\\atlmfc\\include;
c:\\program files\\microsoft visual studio .net 2003\\vc7\\PlatformSDK\\include\\prerelease;
c:\\program files\\microsoft visual studio .net 2003\\vc7\\PlatformSDK\\include;
c:\\program files\\microsoft visual studio .net 2003\\sdk\\v1.1\\include;

Library Includes:
c:\\program files\\microsoft visual studio .net 2003\\vc7\\atlmfc\\src\\mfc;
c:\\program files\\microsoft visual studio .net 2003\\vc7\\atlmfc\\src\\atl;
c:\\program files\\microsoft visual studio .net 2003\\vc7\\crt\\src;

Other Includes:

Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19014 Posts

Posted - Aug 06 2005 :  3:40:26 PM  Show Profile
using VS 2003 and VAX 1418 with a C++ project i have the namespace and class:

namespace feline_class
{
    class feline_test_2
    {
    public:
        int function(int first, int second);
    };
}


defined in a header file. when typing in the matching cpp file if i type "feline_t" VAX quite happily suggests "feline_test_2". do you mean that for you this test would fail?

i am not sure what you mean by method autocomplete does not work. do you mean that if you have:

std::string strName;
    strName.|


you do not get sensible suggestions if you now press CTRL-SPACE? this is working fine for me.

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

turkeypotpie
Junior Member

15 Posts

Posted - Aug 08 2005 :  6:52:42 PM  Show Profile
quote:

using VS 2003 and VAX 1418 with a C++ project i have the namespace and class:

namespace feline_class
{
class feline_test_2
{
public:
int function(int first, int second);
};
}

defined in a header file. when typing in the matching cpp file if i type "feline_t" VAX quite happily suggests "feline_test_2". do you mean that for you this test would fail?


After some further investigation, I found that if you are typing _within_ the "namespace feline_class" braces, the lookup will be performed correctly. However, if you're outside of the braces, and including it with a:

using namespace feline_class;

... then the lookup will not be performed. Though in a previous version of vassistx, it was being looked up.

quote:

i am not sure what you mean by method autocomplete does not work. do you mean that if you have:

std::string strName;
strName.|



you do not get sensible suggestions if you now press CTRL-SPACE? this is working fine for me.


Yes, this is what I meant. But after some investigation, I found the problem only happens with classes from a single, albeit important, third party library. The library's project is included within our solution, and the behaviour was correct in a previous version of vassistx.
Strangely enough, after explicitly typing in the method name and an open paren, the method info tooltip shows correctly.
Also strange: the autocomplete works correctly if I type within a namespace block that the third party's class is in.


Edited by - turkeypotpie on Aug 08 2005 10:37:58 PM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19014 Posts

Posted - Aug 09 2005 :  3:27:27 PM  Show Profile
is the namespace lookup problem global, or is it also specific to this 3rd party library? it is almost as if VAX is not properly identifying the source code for this 3rd party library.

do you have the full source, or only headers and a dll (or some such) to link to? the first test would be to see if any of the files from this library are present in VAX OFIW dialog, ALT_SHIFT_O

if i am reading your post correctly you have a VS project holding the full source for the library, which is part of the solution, so VAX should be finding, parsing and listing all of the files.

it is possible there is something about this libraries code that is confusing VAX's parser.

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

turkeypotpie
Junior Member

15 Posts

Posted - Aug 09 2005 :  6:16:18 PM  Show Profile
quote:

is the namespace lookup problem global, or is it also specific to this 3rd party library? it is almost as if VAX is not properly identifying the source code for this 3rd party library.



The namespace problem does not depend on the third party library. To reproduce, try:

1. use va 1418 and vc 7.1
2. Start a new c++ project ... say ... Win32 Console Project
3. Add a new header file with the following:

namespace TestNamespace
{
    class TestClass
    {
        void testMethod(){}
    };
}

4. Include the header in your main cpp, and try autocompleting:
TestNamespace::TestClass
(this should work fine)
5. Now try just autocompleting:
TestClass
(this does not work)

The whole kicker is that this will compile just fine if a:

using namespace TestNamespace;

is placed anywhere before the declaration.




quote:

if i am reading your post correctly you have a VS project holding the full source for the library, which is part of the solution, so VAX should be finding, parsing and listing all of the files.


After doing some more investigation, I found that the problem was not with using the third party library itself, but because we are doing typedefs against it.

So, continuing from the last example, try this:
6. Take out the 'using namespace TestNamespace;'
and add:

namespace TestNamespace2
{
    typedef TestNamespace::TestClass TestClass;
    void foo()
    {
        TestClass testObj;
        testObj. [method autocomplete does not work here]
        TestNamespace::TestClass testObj2;
        testObj2. [does not work here either]

    }
}



Edited by - turkeypotpie on Aug 09 2005 6:30:00 PM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19014 Posts

Posted - Aug 10 2005 :  5:43:00 PM  Show Profile
for your first point i have just tried this, and i am seeing the same thing. however press CTRL_SPACE after typing "Test" and for me "TestClass" is produced as part of the complete listbox.

also take your test one step further, and use the code:


static void testTooltip()
{
    TestClass fred;
    fred.|
}


for me VAX is producing the correct member list.

i am seeing the same problem for your second point. for what it is worth i get slightly better results if i change the typedef line to:


typedef TestNamespace::TestClass ShortTestClass;

so that the names no longer look the same. however this is not an ideal solution, and may not be possible for you.

i have confirmed that this works with VAX 1301. thank you for the good example of how to reproduce this.

case=710

zen is the art of being at one with the two'ness
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Topic Locked
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000