Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Visual Assist
 Technical Support
 1430: Function signatures

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
PatLuja Posted - Nov 14 2005 : 03:03:47 AM
Hello all,

After a whole period with lots of deadlines, I'm back. I've installed build 1430 last week (on VS.Net2003 English on a Dutch Windows version). There are a few things that I've noticed, most of them are already mentioned by other people. There is one thing though that I didn't saw in the forum, exactly the way I see it; it's about Function signatures.

When I declare a function inside a class, like:
class CTest {
public:
  void TestFunction(const int a, const float b, const double c);
};
And I want to use TestFunction within some code, a little box pops-up with 2 function signatures, stating the following two signatures:
void TestFunction(const int a, const float b, const double c)
void CTest::TestFunction(const int a, const float b, const double c)
which are the same. Could one of these two (preferably the first) be left out?


Now we're talking about function signatures... There is one little thing with function signatures, which is in VA for a long time already. Maybe it is good to point this out again.
When I've stated the function definition as stated above, and I type something like:
TestFunction(1, 2.0f, 3.0, |)
The function signature box will generate something like:
void CTest::TestFunction(const int a, const float b, const double c, )
So there is a comma appended to the signature, because I've typed a comma after the last (the third) parameter. It is just a little thing.
Maybe this could be used to present the right function signature, without searching with the cursor keys. When a comma is typed, the best matching function signature (in terms of number of parameters and their type) would be presented, but only when the user hasn't searched yet (then the user would already have selected the best signature). This would be handy if there where more function signatures for a function.

I hope you could look into it. Thank you kindly in advance.

With kind regards,
Patrick Luja
13   L A T E S T    R E P L I E S    (Newest First)
support Posted - Jun 19 2006 : 5:21:53 PM
Fixed in build 1524:

Bolding within parameter info no longer confused by function pointers. (case=475)
feline Posted - Nov 22 2005 : 1:52:19 PM
if you find a class that has this problem can you try alt-g and see what you get? if you find an instance with no *.inl file then i would be interested in hearing about it, since it would show that my working theory is incomplete.
PatLuja Posted - Nov 21 2005 : 5:21:20 PM
Hello feline,

It's lovely to have a buglet recognized/reproduced. Thank you for your efforts.

(BTW: I did see it with more classes and functions then only with CDC and Rectangle, but I couldn't establish a pattern just by the names of the classes.)

With kind regards,
Patrick Luja
feline Posted - Nov 21 2005 : 2:56:00 PM
got it now. i did not realise that CDC was a standard windows class, so i was not using it in my testing. trying alt_g on Rectangle() in the rather exciting code:

CDC *foo;
foo->Rectangle()

is giving me the two files "afxwin.h" and "afxwin1.inl", which seems to be why you are getting the double suggestions.

case=888
PatLuja Posted - Nov 21 2005 : 03:09:41 AM
Hello feline,

It happens with a lot more classes than one. I tried rebuilding the database, but that didn't help. I just used the device context CDC, and I can reproduce it.

Maybe VAX picked the signature up at two places?

I'll try to reproduce it...
<...went to try...>
...yes I can reproduce it.

Shall I e-mail my the function to support?
Or can I provide some other information?

With kind regards,
Patrick Luja
feline Posted - Nov 19 2005 : 3:02:08 PM
using the test code:

class CTest {
public:
void TestFunction(LPCRECT lpRect);
void TestFunction(int x1, int y1, int x2, int y2);
};

and a pointer to this class i only get the two expected parameter tooltips. i have never come across this in my production code either, and i often use function overloading.

how reproducible is this? does this only happen with this one class? if so then it is probably something about how the class or member function is declared or included. any clues on what this "oddity" might be will be gratefully received.
support Posted - Nov 18 2005 : 10:41:43 AM
PatLuja Posted - Nov 18 2005 : 03:52:12 AM
Hello feline,

Today I've encountered the first problem I wrote about.

I've prepared a little compilation of screenshots which I'll send to WholeTomato to include here:


See what I mean? Can you reproduce this?

With kind regards,
Patrick Luja
feline Posted - Nov 17 2005 : 4:07:00 PM
hopefully all of this is covered by the case. you can get the same problem with function pointer parameters. it seems that brackets in the parameter list confuse the code for bolding the current parameter.
PatLuja Posted - Nov 17 2005 : 02:41:17 AM
Hello feline,

Thank you for reproducing this.
I hope this can be fixed.

I thought of a test case, to test this with the function declaration given. Could you ask the fine team of Whole Tomato to test these with the following four lines:
AppendSomething(something, id, colour, width);
AppendSomething(something, id, colour, width, );
AppendSomething(something, id, RGB(255, 255, 255), width);
AppendSomething(something, id, RGB(255, 255, 255), width, );
And ask them check just before and after every comma (including the comma's within the RGB macro).
I think this will cover most of the things I see.

Thank you kindly in advance.

With kind regards,
Patrick Luja
feline Posted - Nov 16 2005 : 5:17:53 PM
got it



case=475
PatLuja Posted - Nov 16 2005 : 08:37:36 AM
Hello feline,

I'm trying to catch an example for these two. I don't see the first one anymore, since I've installed build 1432, but I'll tell you when I see one (and I'll try to establish a pattern).

For the second, I just saw a nice example, which has a slightly different output, but I think it might be related.

I have the following function:
bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
After typing
this->AppendSomething(
I append only comma's. This is what I see (first stating the number of typed comma's, bold what is displayed in bold, green what should be bold):
0: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
1: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
2: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
3: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
4: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
5: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0);
6: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0 const int width = 0);
7: bool AppendSomething(const CSomethingStruct& something, const int id, const COLORREF colour = RGB(0, 0, 0), const int width = 0

Do you see the missing characters in with 6 and 7 comma's?
feline, could you please try to reproduce this?

Thank you.

With kind regards,
Patrick Luja
feline Posted - Nov 15 2005 : 6:04:37 PM
first point, what are you doing to get this? are you typing "testf", and looking at a listbox suggesting the function name you are trying to enter? or are you doing something else?

point 2, using VS 2003, C++ and VA 1432 i cannot reproduce this:


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