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
 VA deletes word upon accepting suggestion
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Queequeg
Senior Member

Germany
33 Posts

Posted - Aug 28 2019 :  09:08:56 AM  Show Profile  Reply with Quote
I'll walk through what I just did. I use | as the cursor.
auto file = fopen(|dataDir + "/2077530669904.points.txt", "rb");

I want to change this line to
auto file = fopen(QUtil_s(dataDir + "/2077530669904.points.txt"), "rb");

So I enter the first two characters:
auto file = fopen(QU|dataDir + "/2077530669904.points.txt", "rb");

Now I get the right suggestion for the `QUtil_s` function. Great. I hit Tab. VA then proceeds with *deleting* the next word.
auto file = fopen(QUtil_s() + "/2077530669904.points.txt"), "rb");

So I hit undo.
auto file = fopen(QUtil_s| + "/2077530669904.points.txt"), "rb");

Nope, undo again.
auto file = fopen(QUdataDir| + "/2077530669904.points.txt"), "rb");

Well, also not helpful. Why is the cursor after the word that was deleted? But whatever.

So now I need to move the cursor back and add a space.
auto file = fopen(QU |dataDir + "/2077530669904.points.txt"), "rb");

Then move back again, to get the suggestions again with `Ctrl+Space`.
auto file = fopen(QU| dataDir + "/2077530669904.points.txt"), "rb");

Only now the suggestions suck, and VA suggests QUdpSocket instead of what I want. So now I have to delete the characters again.
auto file = fopen(| dataDir + "/2077530669904.points.txt"), "rb");

And type QU again.
auto file = fopen(QU| dataDir + "/2077530669904.points.txt"), "rb");

Now it suggests QUtil_s again. I hit Tab.
auto file = fopen(QUtil_s(|) dataDir + "/2077530669904.points.txt"), "rb");

And VA auto-fills in the braces. Again, I have to correct VA by deleting the brace. Plus of course the space that VA forced me to enter.
auto file = fopen(QUtil_s(|dataDir + "/2077530669904.points.txt"), "rb");

And now, finally, I can get where I wanted to.

Frustrating all the way. It would have been way faster without VA.

So. Can I disable that VA deletes words?

If not, what I'd like to see is an additional Undo point. If you're trying to be helpful by deleting a word, don't assume that that is what I always want. Sometimes it is, sometimes it isn't. Give me another Undo point before the deletion, so I can undo it, but still get the suggestion.

VA_X.dll file version 10.9.2302.0 built 2018.12.13
DevEnv.exe version 15.9.28307.586 Professional
msenv.dll version 15.0.28307.421
Comctl32.dll version 6.10.16299.1268
Windows 10 10.0 1709 Build 16299.1268
16 processors (x86-64, WOW64)
Language info: 1252, 0x409

Edited by - Queequeg on Aug 29 2019 11:45:06 AM

accord
Whole Tomato Software

United Kingdom
3212 Posts

Posted - Aug 29 2019 :  5:59:51 PM  Show Profile  Reply with Quote
Can you please visit the following link?
https://support.wholetomato.com/default.asp?W640

If you change it to "1 = never overwrite text" after exiting all instances of Visual Studio, that should do what you are asking for.
Go to Top of Page

Queequeg
Senior Member

Germany
33 Posts

Posted - Aug 30 2019 :  08:52:26 AM  Show Profile  Reply with Quote
But it says "0 = default behavior: VA will overwrite text unless it is a known symbol".
And `dataDir` should be a known symbol, yet it is overwritten. Isn't this a bug?

Edited by - Queequeg on Aug 30 2019 09:26:45 AM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16086 Posts

Posted - Aug 31 2019 :  08:14:05 AM  Show Profile  Reply with Quote
You are quite right, unfortunately there is a bug in our logic. When you are accepting a function name or a typedef then a known symbol after the caret will be deleted, even though it should not be. If you are accepting a different type of symbol then the symbol won't be deleted. A bit confusing until you pin down the pattern at work here with this bug:

case=140801

The work around for the bug is the registry setting CompletionOverwriteBehavior, which takes priority, so we never try and delete the symbol name following the caret. I don't currently have an estimate for when we will fix this bug, but at least we do have a reliable work around for it.

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

Queequeg
Senior Member

Germany
33 Posts

Posted - Sep 01 2019 :  6:55:46 PM  Show Profile  Reply with Quote
@feline Thank you for clarifying.

Wouldn't it be better to use CompletionOverwriteBehavior=1 as the default then instead of continuing to ship a known bug?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16086 Posts

Posted - Sep 02 2019 :  08:56:55 AM  Show Profile  Reply with Quote
It is certainly a possible solution. Strange as it may seem, we have only very recently found this bug, so we haven't done a lot of evaluating it yet.

Hopefully knowing what is going on here, and changing the setting is helping you.

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:
© 2019 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000