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
 1645: good news and bad news
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jul 15 2008 :  10:55:15 AM  Show Profile  Reply with Quote
First the good ones: this build seems so far be much more to the point, needs less corrections than previous builds in C#. The member list filters are just great too.

Bad ones: does not parse C++ macros as previous versions did.
example macro:
#define DEFINE_INT_VAL(x) \	private: int m_n##x; \	public: int x () const { return m_n##x; } void x(int n) { m_n##x = n; }

class xy { DEFINE_INT_VAL(SomeValue); }

This was in previous versions correctly resolved into member variable and funcions, now it shows in the member list as "xy::DEFINE_INT_VAL(SomeValue)", not good. Really not good.

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Jul 15 2008 :  1:30:07 PM  Show Profile  Reply with Quote
I seeing the same effect here, but unfortunately I see this with 1626 and 1640 also.
Which version did you use before 1645?

The only difference is, I'm seeing "::" after the class name in 1645, and "." in previous versions.

Also note that I do not see "SomeValue" if I use one line syntax:

class xy { DEFINE_INT_VAL(SomeValue); };

but It appears if I use multi-line syntax:

class xy { 
    DEFINE_INT_VAL(SomeValue); 
};


How it differs from you experience?

Edited by - accord on Jul 15 2008 1:40:58 PM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18943 Posts

Posted - Jul 15 2008 :  1:47:39 PM  Show Profile  Reply with Quote
Did you used to have deep macro parsing turned on?

http://docs.wholetomato.com?W363

If this got turned off somehow this might explain the difference you are seeing.

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

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jul 15 2008 :  3:33:18 PM  Show Profile  Reply with Quote
Deep macro parsing was not on as far as I remember. Never had a problem with these defines before.
As for the single/multiline question, the real code consists of dozens of these (and other, similar) entries in multiple lines, spread over the whole class definition.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18943 Posts

Posted - Jul 16 2008 :  09:22:18 AM  Show Profile  Reply with Quote
When you say:

>> This was in previous versions correctly resolved into member variable and funcions

where did this work? In listboxes, or else where?

VA has problems with ## in macros to generate names:

case=729

this is a long standing problem. I would hope VA could work out the functions generated by this macro, but I would not expect VA to work out the member variables.

I am wondering if changes to VA now mean you are seeing a member listbox from VA instead of a member listbox from the IDE. If so does turning on:

VA Options -> Advanced -> Listboxes -> Get content from default Intellisense

make any difference?

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

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Jul 16 2008 :  6:35:43 PM  Show Profile  Reply with Quote
I may misunderstood the problem. I wrote about alt+m instead of member listboxes. This is because I am seeing "xy::DEFINE_INT_VAL(SomeValue)" like syntax only in alt+m list. I tested member listboxes and I'm seeing DEFINE_INT_VAL, m_nSomeValue, SomeValue with 1645. I have deep macro parsing turned off.

Can you try your example in a new default test project to see what happens? My test code was:
#define DEFINE_INT_VAL(x) \ private: int m_n##x; \ public: int x () { return m_n##x; } void x(int n) { m_n##x = n; }

class xy { DEFINE_INT_VAL(SomeValue); }

void p()
{
xy i;
i.|
}

| is the caret.
Or are we talking about different things?
Go to Top of Page

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jul 16 2008 :  7:00:23 PM  Show Profile  Reply with Quote
I was mainly talking about the Alt+M member list; as far as I can see in most other places it shows up correctly parsed (definition bar, VA view, tooltips, etc), Alt+G brings me to the right place too.

Have to install an old version to see what exactly is different to 1645 now. May take a while to do so.
Go to Top of Page

lexxmt
Senior Member

Latvia
30 Posts

Posted - Jul 18 2008 :  06:03:57 AM  Show Profile  Reply with Quote
quote:
Originally posted by feline

Did you used to have deep macro parsing turned on?

http://docs.wholetomato.com?W363

If this got turned off somehow this might explain the difference you are seeing.



Agree that 1645 work more badly with macros also comparing with build 1640.
Can you add this stuff to VAX settings?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18943 Posts

Posted - Jul 18 2008 :  09:14:19 AM  Show Profile  Reply with Quote
lexxmt turning on deep macro parsing can cause problems, which is one reason we are not making this option to obvious.

Can you post details of any macro handling that has gotten worse in VA 1645?

zen is the art of being at one with the two'ness
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