Author |
Topic |
.oisyn
Tomato Guru
162 Posts |
Posted - Nov 02 2007 : 6:12:20 PM
|
When I type a floating point number ending in the postfix 'f', VA X is suggesting to autocomplete it with "float". This is annoying, as it does autocomplete it after typing any non-identifier character, such as '+' or ')' (even while I have VA X configured to only complete it when pressing the TAB button - is this a bug as well?), which is usually the case after typing a number. |
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Nov 02 2007 : 6:52:31 PM
|
I am seeing the same effect here. Thank you for the clear description.
case=9667
The suggestion listbox being accepted is definitely a problem.
I am not sure that the actual presence of the listbox is a problem. If you were heavily editing the line of code then you would want suggestions to be active. After you have finished editing, assuming the code is valid, it is easy to say "this is a literal number", but during editing it might not be quite so clear cut, especially if you have made a typo in the current line. |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 07 2007 : 06:50:09 AM
|
I think the presence of the listbox is a slightly bad thing. To me it's much more unreasonable to type "123.f" and expect VA to guess you meant "v23.findme". On the other hand, you might as well type "123f".
I have probably the same error to report. Compilable C++ code:
#include <string>
#include <vector>
void bar() {
std::vector<std::string> vs;
vs.front();
} Now after "front()" type ".empty()". VA doesn't know that vs.front() is a string, but worse it overrules your input with EMPTY_SIZE2()
PS I have "Selections committed with" Tab only |
Edited by - steinsomers on Nov 07 2007 06:52:10 AM |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Nov 07 2007 : 07:04:31 AM
|
Which IDE and version of VA are you using?
I have just copy / pasted your code into VS2005 with VA 1614 and VA knows that "front()" has returned a string, and is giving me the correct items in the listbox. I have "Get content from default Intellisense" turned off as well. |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 07 2007 : 12:58:12 PM
|
I have Visual C++ 2005 SP1 with VA 1614. I'm not bothered much that VA doesn't recognize vs.front() sometimes; it's the unwanted substition when you press ( or other non-identifier-keys that annoys me.
Am I confusing Intellisense with VA again? I created a new solution and this is what I get when I press f:
Which I thought is the same as .oisyn's report - at least this is what I get:
I suspect this is not VA at all? Note that that 123.f does not trigger anything if typed after the line "std::vector<std::string> vs;".
BTW I have Visual Studio's Statement completion options turned off, but I didn't disable Intellisense because I sometimes have the Code Definition Window open. |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 07 2007 : 1:21:34 PM
|
After a Rebuild and Clear and restarting VS, the first "vs.f" example indeed pops up a list with the correct completion "front". But still, when I type "vs.f(" I don't want to get "vs.front(" since I didn't tick "Any character not valid in a symbol" in "Selections committed with". |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Nov 07 2007 : 1:36:21 PM
|
In the screen shots you have posted you are seeing a suggestion listbox. These are normally quite short, and they have the "A" icon under the lower left hand corner.
The "Any character not valid in a symbol" option applies to suggestion listboxes, but not to completion listboxes.
If after the database rebuild you are now getting a completion listbox then "(" will always accept the current item, since this is what the IDE does without VA installed, and we are being consistent. We are considering changing this, so these VA options apply to both suggestion and completion listboxes:
case=9369
Hopefully this makes sense |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 08 2007 : 07:25:15 AM
|
This is the completion listbox (not of vs.f because but with 3 choices):
Yes now it makes sense, and I finally know what Prince meant with purple rain.
PS oops I mixed up screenshot. This is the one I meant to post:
|
Edited by - steinsomers on Nov 09 2007 05:27:42 AM |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Nov 08 2007 : 12:19:55 PM
|
Have you turned off:
IDE tools menu -> Options -> Text Editor -> C/C++ -> Auto list members
If this option is on, after typing "vs." you should get a completion listbox, triggered by the dot.
Ignoring that for the moment, at this point if you now type "(" the suggestion is accepted? That should not happen, given your VA settings. |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 09 2007 : 05:35:22 AM
|
I have both Visual Studio's Statement completion options turned off, and:
And BTW it's not just ( that completes, but also ! @ $ % ^ & * although not ~ and #. So it is case 9667 after all and 9369 has nothing to do with it? |
Edited by - steinsomers on Nov 09 2007 05:47:56 AM |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Nov 09 2007 : 12:20:20 PM
|
Most interesting, and unexpected. The fix for case=9667 (which is present in the next build) will not help in this general case, since the fix there was to simply disable suggestions when typing numbers.
This test code shows what I am seeing. The IDE listbox settings do not seem to matter, but because you have turned off the IDE showing member lists you are seeing this effect, while most users who have this IDE option turned on will probably never encounter this:
static void testSuggestionAcceptBehaviour()
{
std::string strName;
#ifdef VA_VALID_CODE_BUT_DOES_NOT_COMPILE
// turn off VA option to accept suggestions with "Any character not valid in a symbol"
// continue typing "strName" on this line, and press '(' as soon as a suggestion listbox appears
// the listbox is NOT accepted - correct
str
#endif // VA_VALID_CODE_BUT_DOES_NOT_COMPILE
strName.length();
#ifdef VA_VALID_CODE_BUT_DOES_NOT_COMPILE
// continue typing "length" on this line, and press '(' as soon as a suggestion listbox appears
// the listbox IS accepted - should not be accepted according to VA options
strName.le
#endif // VA_VALID_CODE_BUT_DOES_NOT_COMPILE
}
case=9823 |
zen is the art of being at one with the two'ness |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Nov 10 2007 : 2:54:20 PM
|
case=9667 is fixed in build 1616
|
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 28 2007 : 08:20:54 AM
|
Is there any prospect for case 9823 or some way to work around it? I have turned on IDE tools menu -> Options -> Text Editor -> C/C++ -> Auto list members but it doesn't make a difference in my experience. I can't blindly type code as long as VA is enabled. Note that if the code is correct, VA doesn't change anything. But if I write a call to a member function I have yet to implement, or type a small error in an object identifier, VA very much changes what I type.
Or some way to make VA read-only? Show me colors, views and the Go! button, but don't change files? |
Edited by - steinsomers on Nov 28 2007 08:22:42 AM |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Nov 28 2007 : 08:43:02 AM
|
case=9823 is already down as a high priority bug fix, due to the problems it causes. Hopefully we will see a fix fairly soon, but unfortunately I cannot give you an estimate of when at this time.
To make VA "read only" try going into VA options and turning off:
VA Options -> Advanced -> Listboxes -> Selections committed with: Tab VA Options -> Advanced -> Listboxes -> Selections committed with: Enter VA Options -> Advanced -> Listboxes -> Selections committed with: Any character not valid in a symbol
VA Options -> Advanced -> Suggestions -> Include suggestions in listboxes
Hopefully this will help. |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Nov 29 2007 : 11:11:45 AM
|
Right, VA Options -> Advanced -> Suggestions -> Include suggestions in listboxes does the trick. Then - long time no see - I think I get the suggestion lists you talked about, and disabling IDE tools menu -> Options -> Text Editor -> C/C++ -> Auto list members gets rid of that. Actually that is how I had it for a long time until my snippets were snatched, but they are back in mint shape. So I don't crave for case 9823 anymore and I'm really happy again. |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Jan 18 2008 : 11:11:18 AM
|
case=9823 is fixed in build 1626 |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Jan 23 2008 : 12:36:54 PM
|
I don't the problem is erradicated. With the options as per feline above, in pretty much any place type:
// fixed i.e. no longer happening
Result:
// fixed i.else no longer happening
Every "." pops up a suggestion box briefly, and the space key is treated as a "selection commit".
This happened in 1624, still in 1626 and not when VA is disabled. |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Jan 23 2008 : 3:39:36 PM
|
Are you seeing the same problem in a new, default test project?
I am not seeing any listboxes at all when typing that comment. Using VS2005, VA 1626, and I have tried both a cpp and .h file. |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Jan 24 2008 : 1:07:18 PM
|
I tried it in a separate simple project, after rebuilding the symbol database, but not in a new project.
But today I don't get any listboxes in any project. All I can think off is that it's the first time the XP machine was rebooted after the upgrade to 1626. |
Edited by - steinsomers on Jan 24 2008 1:08:14 PM |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Jan 24 2008 : 4:50:08 PM
|
This is not good.
I have a winXP SP2 machine here with VA 1624 installed. I have just installed VA 1626 and then loaded VS2005. Everything looked fine, so I closed the IDE and shut down the machine. After it was shut down I waited 30 seconds before booting it back up.
After the reboot I loaded VS2005. Suggestion and member listboxes are working correctly for me.
Do you have any other plugin's installed? If you press CTRL-SPACE does this produce a listbox? |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Jan 25 2008 : 11:38:50 AM
|
The not getting any listboxes was good! I meant not getting any without asking for them - I have all IDE and VA options mentioned in this thread that govern suggestions turned off.
But this didn't last long. VA is again picking unwanted suggestions from unsolicited suggestion boxes as I type along. Not just in comments and not less in 1626 then in 1624. There are no suggestion boxes after clearing the symbol database and restarting the IDE (when I reported earlier "I tried it in a separate simple project, after rebuilding the symbol database" I probably left some IDE open or so). Although it's clear from the cursor that pressing a . in a comment does something more than typing any other plain character. After a some editing VA starts populating suggestion boxes again.
|
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Jan 25 2008 : 1:52:14 PM
|
Do you have:
VA Options -> Advanced -> Underlines -> Underline mistyped symbols using
turned on or off? I am wondering if VA is very confused by your code. If this is what is going on then the underlining should be quite wrong. Either nothing every gets underlined or valid code is being incorrectly underlined.
This is starting to remind me of a problem Uniwares has reported.
Do you use a lot of macro's in your code? These seem to be triggering Uniwares problems.
Is there any pattern to when you see these listboxes? Only after typing a dot? Or do they turn up all over the place? |
zen is the art of being at one with the two'ness |
Edited by - feline on Jan 25 2008 1:53:32 PM |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Jan 25 2008 : 5:26:55 PM
|
Both Underlines options are on, but indeed I don't think I've seen any underlined code for months. They only appear in comments anymore. Still I don't think VA is very confused over the code because the suggestions with Ctrl-Space are usually spot on.
I suppose there are a lot of macro's, but they're almost all pretty standard: they look and are like function calls, or like the well-known DLLEXPORT. Normal class and function definitions are just plain readable, not hidden inside complex macros. If there is confusion, is there a way to make VA point out where it gets confused?
As to patterns, apart from the dot in comments, there is also a quite persistent one when opening the argument list of a constructor:
Cleaning the symbol database and restarting stops this number from popping up in the tiny project. But if open my real solution, the same number as in the screenshot is back, also in the tiny project.
Yet the string 1431633938 doesn't appear anywhere in any text file in my directory, in Microsoft Visual Studio 8 nor in Application Data\\VisualAssist. |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Jan 28 2008 : 08:17:20 AM
|
That is very strange. Lets start with underlining, simply because this might be a bit easier to pin down. If VA is deeply confused then everything is going to start going wrong.
Can you add the following function to a cpp file please and see what happens:
static void felineTestUnderlingThings()
{
// this is a commmmmenttt with a spellllling error or two
int nBanana;
nBanana = 2;
nOrange = 3;
}
"nBanana" should be shown as a local variable, while "nOrange" should be underlined as a mistyped symbol. If you have local symbols in bold turned on this should be quite clear.
What, if anything, gets underlined? I am seeing the spelling errors and "nOrange" get underlined. |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Jan 28 2008 : 09:00:21 AM
|
Yes to all. The look is the same in a separate project as in the big solution:
I don't normally have local symbols in bold but nBanana does appear if I turn them on. |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Jan 28 2008 : 1:39:24 PM
|
quote: indeed I don't think I've seen any underlined code for months
That's not true, it does appear. It just takes a little while. |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Jan 28 2008 : 2:39:39 PM
|
That is normal. It takes a second or two before VA underlines, and it often disappears while editing, since the code needs to "stabilise" before there is any point in trying to underline items.
This is probably nothing to do with the real problem.
Can you reproduce this listbox on the constructor in a test project please, but with VA logging enabled? Please see this FAQ for details of turning on VA's logging, and sending us the log files
http://docs.wholetomato.com?W305
Can you please export your VA and IDE settings and send them as well:
VA Options -> Performance -> Export Settings IDE tools menu -> Import and Export Settings -> Export selected environment settings
Hopefully they will give us a clue. My best guess is some form of symbol database corruption is going on. If that is right this might not help much, but its a good place to start. |
zen is the art of being at one with the two'ness |
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Jan 30 2008 : 09:01:14 AM
|
I have the files, thank you for these. I have asked our developers what they make of this.
case=12061 |
zen is the art of being at one with the two'ness |
|
|
Rasmuss
Senior Member
33 Posts |
Posted - Feb 07 2008 : 10:26:57 AM
|
quote: Originally posted by steinsomers Yet the string 1431633938 doesn't appear anywhere in any text file in my directory, in Microsoft Visual Studio 8 nor in Application Data\\VisualAssist.
Just to thicken the plot, I'm also seeing the number 1431633938 when defining a new function and getting to the parameter list:
I've seen this before, but somehow this time it peaked my interest, so I searched google, and lo and behold the one hit it returned was to this thread.
I just tried on a colleagues machine with VAX 1619, and it doesn't happen there. We both have 'Get content from default Intellisense' enabled.
From reading this thread I couldn't understand if you figured out a solution for it, or if it is a case which is being looked at.
Regards, Rasmus
VA_X.dll file version 10.4.1626.0 built 2008.01.17 Licensed to: VA X: ioi.dk (45-user license) Support ends 2009.05.30 DevEnv.exe version 8.0.50727.762 msenv.dll version 8.0.50727.762 Font: Courier New 13(Pixels) Comctl32.dll version 6.0.2900.2982 Windows XP 5.1 Build 2600 Service Pack 2 8 processors
Platform: Win32 Stable Includes: C:\\Program Files\\Microsoft Visual Studio 8\\VC\\include; C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\include; C:\\Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\include; C:\\Program Files\\Microsoft Visual Studio 8\\SDK\\v2.0\\include;
Other Includes:
Stable Source Directories: C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\mfc; C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\mfcm; C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\atl; C:\\Program Files\\Microsoft Visual Studio 8\\VC\\crt\\src;
|
|
|
feline
Whole Tomato Software
United Kingdom
18991 Posts |
Posted - Feb 07 2008 : 10:38:53 AM
|
I have been seeing the same suggestion myself, now and then, for the last few days. It appears to be a separate problem. We are looking into this, but so far we don't know where this is coming from:
case=12061 |
zen is the art of being at one with the two'ness |
|
|
steinsomers
Ketchup Master
Belgium
65 Posts |
Posted - Feb 07 2008 : 10:47:20 AM
|
My 'Get content from default Intellisense' is disabled (and my solution.ncb is read-only and empty as well) |
|
|
Topic |
|