Author |
Topic |
feline
Whole Tomato Software
United Kingdom
19004 Posts |
Posted - Dec 05 2014 : 9:51:34 PM
|
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 |
|
|
Nox Metus
Senior Member
43 Posts |
Posted - Dec 06 2014 : 12:45:41 AM
|
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�. |
|
|
Nox Metus
Senior Member
43 Posts |
Posted - Dec 06 2014 : 12:56:07 AM
|
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 |
|
|
Nox Metus
Senior Member
43 Posts |
Posted - Dec 06 2014 : 12:58:37 PM
|
Ok, I experimented and created a key LimitMacro with a default value "NoDepthLimit". Also I set LimitMacroParsing to 0. It helped. |
|
|
feline
Whole Tomato Software
United Kingdom
19004 Posts |
Posted - Dec 06 2014 : 2:02:21 PM
|
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 |
|
|
Nox Metus
Senior Member
43 Posts |
Posted - Dec 08 2014 : 1:15:55 PM
|
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. |
|
|
feline
Whole Tomato Software
United Kingdom
19004 Posts |
Posted - Dec 08 2014 : 7:21:59 PM
|
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 |
|
|
Topic |
|