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
 Troubleshooting refactoring
 New Topic  Reply to Topic
 Printer Friendly
Previous Page
Author Previous Topic Topic Next Topic
Page: of 2

feline
Whole Tomato Software

United Kingdom
19004 Posts

Posted - Dec 05 2014 :  9:51:34 PM  Show Profile  Reply with Quote
You are right, that VA should parse included header files, but if VA cannot understand any #include lines, cannot find any of the header files, then it won't be able to parse them, since finding them comes first. It's a theory, just not a brilliant one.


Macros is a wild guess, to be honest. If somehow a macro was used to redefine " or #include then this might explain the problem you are seeing. No idea why someone would do that though.

A common complex macro that can confuse is a macro for the class keyword, so a macro that is used to create a class, or just part of a class. But in these cases the problem is normally limited to just the macro created classes, not all code.

A more reasonable guess is something like this in one of your main header files:

#if 0
{
    {
#endif

which will confuse our parser, and all code following this is also likely to be confused. The problem is that any code before the problem #include is not going to be effected, so the very first #include in a file should work at least some of the time, unless macros are used before even the first #include.

Another thought, are #include <> lines effected? I know you have said "every" #include, but your screen shot shows a #include "" line.

Have you used the setting to tell VA to parse macros calling macros? This is explained here:

http://docs.wholetomato.com/default.asp?W363

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

Edited by - feline on Dec 05 2014 9:53:11 PM
Go to Top of Page

Nox Metus
Senior Member

43 Posts

Posted - Dec 06 2014 :  12:45:41 AM  Show Profile  Reply with Quote
Well, a macro redefining #include is indeed too much of a stretch.

But! We do have quite some macros for class creation.

Yes, <> are also affected. If I press Alt+G on #include <vector>, VA will suggest to jump to (among some other options) vector::vector(_Myt&& _Right, const _Alloc& _Al) definition instead of just open the header file.

Let me try �to tell VA to parse macros calling macros�.
Go to Top of Page

Nox Metus
Senior Member

43 Posts

Posted - Dec 06 2014 :  12:56:07 AM  Show Profile  Reply with Quote
Can you comment on the instruction, since it is ambiguous:
quote:
You may find that Visual Assist has problems parsing the code. You can tell Visual Assist to evaluate macros more deeply by creating the following string registry key:

HKCU\\Software\\Whole Tomato\\Visual Assist X\\LimitMacro = "NoDepthLimit"


What is a �string registry key�? It doesn't make sense, since a key doesn't have a type. It's a value that has a type. What I should create: (i) a key that has a default value "NoDepthLimit", or (ii) a value LimitMacro in Visual Assist X key of type string that is equal "NoDepthLimit"?

Edited by - Nox Metus on Dec 06 2014 01:23:31 AM
Go to Top of Page

Nox Metus
Senior Member

43 Posts

Posted - Dec 06 2014 :  12:58:37 PM  Show Profile  Reply with Quote
Ok, I experimented and created a key LimitMacro with a default value "NoDepthLimit". Also I set LimitMacroParsing to 0. It helped.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19004 Posts

Posted - Dec 06 2014 :  2:02:21 PM  Show Profile  Reply with Quote
Interesting, thank you for the update. I am sorry the instructions were not as clear as they could have been.

How much has this helped? Which problems are you still seeing?

This clearly indicates some of the problems are caused by macros that VA is having problems with. If you are able to find any macros that are confusing our parser I may be able to help you work around these problems, by making sure our parser uses a simpler version of the macro.

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

Nox Metus
Senior Member

43 Posts

Posted - Dec 08 2014 :  1:15:55 PM  Show Profile  Reply with Quote
I would like to thank you for help.

Regarding searching for a particular macro that caused the problem, it would be interesting, but I'm not sure I have enough stamina to invest more time in this issue.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19004 Posts

Posted - Dec 08 2014 :  7:21:59 PM  Show Profile  Reply with Quote
I am glad I was finally able to help, and sorry that it took so long to get here. I still have no idea how a macro could be causing the problems you are seeing here, but as you say, its probably not worth the time and effort to try and find the problem macro.

Hopefully VA is now working reliably for you. If you have any further problems please let me know and I will do what I can to help.

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