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
 Slightly different behavior in C#
 New Topic  Topic Locked
 Printer Friendly
Author Previous Topic Topic Next Topic  

draza
Senior Member

France
48 Posts

Posted - Jul 28 2004 :  05:52:48 AM  Show Profile
Hello,

I have noticed some inconsistencies between C# and C++ intellisense. Now, I understand that C++ is where it all started (so support for it is better), and I am still a happy C++ programmer (and VA.X user) at work. However, I recently purchased VA.X for my C# projects I do at home, and I don't understand why the following happens:
1. Unlike C++, when I type "SomeClass." and press TAB, I do not get member list.
2. If I press Ctrl-Space after "SomeClass." I get default intellisense (and it sucks). I can see that VA.X has parsed the file correctly because if I continue typing I suddenly get VA.X intellisense (and it is BETTER than default one, but still not perfect, see 3)
3. C# parser seems to be less aggressive (or less smart, I don't know which of these two) - it provides fewer suggestions than C++. Considering likeness of C# to C++ (you probably didn't need to make new parser), and even possibility for introspection through reflection (if the project is already compiled, and it mostly is), this is counter-intuitive; I would expect C# intellisense to be much better.
4. Is it possible to add one more color(ing) for class member variables (regardless of visibility [public/private/protected etc])? In my view that would improve readability, and this setting is applicable to all languages.
5. Is is possible to add a check box (on/off) that would when turned on ALWAYS show suggestion list immediately after I press "." or "->"?
6. Tooltip coloring stopped working on my home configuration (C#). At work it is fine. This is strange because my home machine is freshly installed Windows/VStudio/Vassist and my work computer is "full of junk" (tested various add-ins etc).

Thanks in advance,

Drazen

This problem when solved will be simple

Nels_P_Olsen
Senior Member

USA
47 Posts

Posted - Jul 28 2004 :  11:55:16 AM  Show Profile
When I type ".", it always brings up a member listbox. Isn't this a setting in Visual Studio, not VA X? I don't know what you'd do with a VA X suggestion listbox there (did you mean member listbox?) Anyway, it seems to remember the last or most appropriate member, and scrolls to that one ...

- Nels
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jul 28 2004 :  12:46:53 PM  Show Profile
1. For C++ and C#, typing SomeClass. normally opens a members listbox automatically. You need not press Tab or Ctrl+Space. This does assume you have "Auto list members" enabled for the specific languages. This said and assuming "Display suggestions" is disabled in our options dialog, we notice typing "comp" and Tab in C# does not open a listbox. Perhaps this is the problem.

Do you have "Auto list members" enabled for C++ and C#?

Do you have "Display suggestions" enabled on the Completion node of our options dialog?

Do you have "Open completion listbox when Tab is pressed" enabled?

2. VA X uses default Intellisense to populate listboxes in C#. In fact, the listboxes are from MS as well. The only this VA X does is prod the IDE into making them appear more often.

VA X does parse C# for coloring -- it uses a very lightweight parser not smart enough to provide listbox contents.

Are you clear of the distinction between suggestion and completion listboxes? The former contain partial lists; the latter complete lists. Suggestion listboxes have "tomato+?" icons.

http://www.wholetomato.com/products/features/suggestion.html?more=yes

3. C# is infinitely more easy to parse, and the reason default Intellisense for C# is better than that for C++. As well, the IDE provides access to all C# data collected by a parser that runs while you edit (not the case for C++.) This is one reason you see more improvements for C#, not for C++, in new IDEs from MS and from other 3rd parties.

Since you say Intellisense for C# is not great, can you provide an example? We like to see opportunities for improvement, not that we can fix everything.

4. No, there is no way to distinguish public from private in coloring. Long story.

5. Yes. See our reply to #1.

6. Try "Use Defaults" in Tools|Options|Environment|Fonts and Colors. Reapply your custom changes.
Go to Top of Page

Uniwares
Tomato Guru

Portugal
2322 Posts

Posted - Jul 28 2004 :  12:57:51 PM  Show Profile
quote:
Originally posted by support

4. No, there is no way to distinguish public from private in coloring. Long story.


As I understand the request, its not to distinguish the visibility (private, protected, public, although this could be nice), but rather to distinguish between members, globals and locals.
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jul 28 2004 :  2:04:43 PM  Show Profile
4. Try enabling bold and italics at the bottom of the "Environment|Fonts and Colors" node of our options dialog. Pick a font that displays italics well. More info in this thread:

http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=2633
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 28 2004 :  3:27:39 PM  Show Profile
quote:
Originally posted by support
1. For C++ and C#, typing SomeClass. normally opens a members listbox automatically. You need not press Tab or Ctrl+Space. This does assume you have "Auto list members" enabled for the specific languages. This said and assuming "Display suggestions" is disabled in our options dialog, we notice typing "comp" and Tab in C# does not open a listbox. Perhaps this is the problem.

Aha! I did not have "Auto list members" turned on, out of historical reasons - VA used different (plugin) model for providing intellisense before and I got the habit of explicitly turning this off.

quote:
Do you have "Auto list members" enabled for C++ and C#?


Now I do :) However, it sucks. As I've mentioned, VA suggestion list is far more useful - can I get that immediately after pressing "."? How can I force display of suggestion box?

quote:
Do you have "Display suggestions" enabled on the Completion node of our options dialog?


Yes.

quote:
Do you have "Open completion listbox when Tab is pressed" enabled?


Yes.

quote:
2. VA X uses default Intellisense to populate listboxes in C#. In fact, the listboxes are from MS as well. The only this VA X does is prod the IDE into making them appear more often.

VA X does parse C# for coloring -- it uses a very lightweight parser not smart enough to provide listbox contents.


It is strange that you claim that VA is using not very smart parser :) I find it more than adequate, here's why: for a given class, if I go to "List methods" combo, I get (correctly colored, so I assume correctly parsed) list of all members. Why shouldn't I be able to get THIS list when I press TAB or whatever key press you suggest? Looks like all the data is there and ready.

quote:
Are you clear of the distinction between suggestion and completion listboxes? The former contain partial lists; the latter complete lists. Suggestion listboxes have "tomato+?" icons.


Now I am completely clear. I apologize for using these two terms interchangeably throughout my post.

quote:
Since you say Intellisense for C# is not great, can you provide an example? We like to see opportunities for improvement, not that we can fix everything.


I will provide more detailed explanation in a separate post. Just turning "Auto show members" on changes situation significantly, but it still can be (easily?) better.

quote:
4. No, there is no way to distinguish public from private in coloring. Long story.


No, I said regardless of public/private etc :) Again, looking by the "List members" combo box, VA knows which variables are members of a class. I do not want to show local symbols in bold, I want separate color for member variables of a class regardless of visibility. "Local symbols in bold" bolds all local symbols, including parameters of functions and function local variables. I do not care about these as they are already separately colored (default:grey), but I do care about distinguishing between member variables and locals/parameters. I would also like to color properties with the same color I color member variables.

quote:
6. Try "Use Defaults" in Tools|Options|Environment|Fonts and Colors. Reapply your custom changes.


Nope. I tried that, plus I tried turning tooltip coloring off and then on. It colors the tooltip for some elements, and doesn't for some other (?) in a seemingly random fashion.

Thanks for quick reply, it is very much appreciated.

This problem when solved will be simple
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 28 2004 :  3:30:35 PM  Show Profile
quote:
Originally posted by Uniwares

quote:
Originally posted by support

4. No, there is no way to distinguish public from private in coloring. Long story.


As I understand the request, its not to distinguish the visibility (private, protected, public, although this could be nice), but rather to distinguish between members, globals and locals.



Exactly. Actually, I don't care about globals (especially in C#, there are no globals) but members vs locals/parameters.

This problem when solved will be simple
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 28 2004 :  3:33:09 PM  Show Profile
quote:
Originally posted by support

4. Try enabling bold and italics at the bottom of the "Environment|Fonts and Colors" node of our options dialog. Pick a font that displays italics well. More info in this thread:

http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=2633



I know what these two options are supposed to do, and I don't like the result. They both seem to work as advertised, though, but that's not what I need. My post above should clear up the issue.

This problem when solved will be simple
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jul 28 2004 :  6:41:39 PM  Show Profile
We have a lightweight parser that runs while you scroll -- its job is to determine color. Unfortunately, it does not know enough to distinguish context, ie members versus locals. We would like this to be different, but CPU power during scolling, and since the rest of the IDE is running, is simply not available for the task.

http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=1099

Open a file and mistype a word in a comment near the top. Move the caret off the word and wait for VA X to underline it, assuming you have the right option set. Notice it takes a second before the underline appears -- VA X waits for a pause in your typing. Next, grab the thumbnail and scroll a comment into view which you know has misspellings. While still holding the thumbnail, notice the underlines are not present. This is because the spelling parser, and our full context parser, do not run while you scroll. Only our coloring parser has run.

Let go of the thumbnail. Wait a second and underlines appear. Our spelling parser, and full context parser, have run.

NB: The underlines appear in subsequent scrolling because VA X remembers them, ie they are cached. It is not that our spelling parser has rerun.
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 28 2004 :  6:59:45 PM  Show Profile
quote:
Originally posted by support

We have a lightweight parser that runs while you scroll -- its job is to determine color. Unfortunately, it does not know enough to distinguish context, ie members versus locals. We would like this to be different, but CPU power during scolling, and since the rest of the IDE is running, is simply not available for the task.

http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=1099

Open a file and mistype a word in a comment near the top. Move the caret off the word and wait for VA X to underline it, assuming you have the right option set. Notice it takes a second before the underline appears -- VA X waits for a pause in your typing. Next, grab the thumbnail and scroll a comment into view which you know has misspellings. While still holding the thumbnail, notice the underlines are not present. This is because the spelling parser, and our full context parser, do not run while you scroll. Only our coloring parser has run.

Let go of the thumbnail. Wait a second and underlines appear. Our spelling parser, and full context parser, have run.

NB: The underlines appear in subsequent scrolling because VA X remembers them, ie they are cached. It is not that our spelling parser has rerun.



I see. As far as I am concerned, members can be temporarily colored the same as locals and after full parser is done parsing they can be colored properly, just like spelling errors. Is that acceptable? You could actually cache this info and most of the time have accurate coloring even before full parser runs (note that this is just speculation on my part).

Btw, I am not allowed to see the post you link to...

This problem when solved will be simple
Go to Top of Page

rblondeau
Tomato Guru

Canada
102 Posts

Posted - Jul 28 2004 :  7:00:56 PM  Show Profile
I currently have turned off the "Local Symbols in Bold " setting because it does not help me much. It bolds so many vars that it is distracting. It would be more useful if it was called "Bold Non-local Symbols". That way it would point out variables that were defined outside the scope of the function/method, which as far as the function/method is concerned, would indicate that the variable was either a global or member variable.
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jul 28 2004 :  7:32:58 PM  Show Profile
quote:
...(note that this is just speculation on my part).

As we mentioned, we would prefer coloring that is aware of context. We have considered the options you mention, plus dozens of others. We continue the effort.
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 29 2004 :  02:19:00 AM  Show Profile
quote:
Originally posted by support
http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=1099



I still can not access this post - is it still relevant that I see it? If yes, could you please allow me to see it?

Thanks,

Drazen

This problem when solved will be simple
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 29 2004 :  02:23:05 AM  Show Profile
quote:
Originally posted by support

quote:
...(note that this is just speculation on my part).

As we mentioned, we would prefer coloring that is aware of context. We have considered the options you mention, plus dozens of others. We continue the effort.



Well of course that I would prefer coloring aware of context. Does this mean that you are considering (note I did not say you promised anything or working on it) offering the possibility to colorize member variables with different color? That would be nice :)

What are the chances to generally improve C# support even more? Are those things I see mentioned for 10.1 sign of more good things to come? I surely hope so :)

This problem when solved will be simple
Go to Top of Page

Stephen
Tomato Guru

United Kingdom
781 Posts

Posted - Jul 29 2004 :  03:55:41 AM  Show Profile
Topic 1099 just explains again that it's impossible to parse while scrolling, because the IDE is greedy and eats up so much CPU. Cezariusz also suggested what you just suggested: dumb colouring when scrolling and then full colouring when idle. Support replied: "We have considered often the suggestion [...] to do smart coloring when idle. It has merit. One problem is we would switch to dumb coloring often, namely whenever you start typing. Symbols might change color often. We feel we'd just substitute one problem with another."

Personally I agree. I'd rather have dumber but consistent colouring.

Stephen Turner
ClickTracks http://www.clicktracks.com/
Winner: ClickZ's Best Web Analytics Tool 2003 & 2004
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jul 29 2004 :  1:28:27 PM  Show Profile
draza: We added you to a private forum so you can see the referenced post. We have nothing secret in the private forum -- it's just that the forum existed from the early betas of VA X 10.0. Much content is very old. Newer content is typically not relevant to a wider audience, and the members prefer not to waste others' time when not necessary.

We have a new, private forum for a forthcoming upgrade, VA X 10.1. We are keenly interested in participation and feedback from C# developers.

Send your request to participate to [email protected]. Include your member name.

The 10.1 forum is for comments and bug reports on new features only. You cannot pester us for fixes to old bugs, at least not in that forum, nor can you report bugs in the 10.1 forum that clearly exist in the 10.0 product. In this way, we hide only posts not relevant to a wider audience. Everyone is happy.
Go to Top of Page

draza
Senior Member

France
48 Posts

Posted - Jul 29 2004 :  5:51:22 PM  Show Profile
quote:
Originally posted by support
draza: We added you to a private forum so you can see the referenced post. We have nothing secret in the private forum -- it's just that the forum existed from the early betas of VA X 10.0. Much content is very old. Newer content is typically not relevant to a wider audience, and the members prefer not to waste others' time when not necessary.


That's exactly why I asked if it was relevant, obviously it wasn't, but I was still dying of curiosity :)

quote:
We have a new, private forum for a forthcoming upgrade, VA X 10.1. We are keenly interested in participation and feedback from C# developers.

Send your request to participate to [email protected]. Include your member name.


I noticed this forum. New features look really exciting and I am looking forward to trying them out.

quote:
The 10.1 forum is for comments and bug reports on new features only. You cannot pester us for fixes to old bugs, at least not in that forum, nor can you report bugs in the 10.1 forum that clearly exist in the 10.0 product. In this way, we hide only posts not relevant to a wider audience. Everyone is happy.



That's fine by me.

Thanks,

Drazen

This problem when solved will be simple
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