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
 New VAssist eats next word. Again.
 New Topic  Reply to Topic
 Printer Friendly
Previous Page | Next Page
Author Previous Topic Topic Next Topic
Page: of 3

accord
Whole Tomato Software

United Kingdom
3267 Posts

Posted - May 19 2017 :  5:55:07 PM  Show Profile  Reply with Quote
I have added a comment to the case to let the developers know that you're expecting this.
Go to Top of Page

Mordachai
Tomato Guru

USA
224 Posts

Posted - May 19 2017 :  6:08:56 PM  Show Profile  Reply with Quote
Accord - thank you.

I'd be curious to see how well the "if at head, insert, if in middle, overwrite" would work in practice.

I'm all for having a simple choice in config to "always insert vs. 'smart' overwrite". I assume that is what you're currently referring to?

Just to be crystal clear - in your earlier response to me - you mistyped #2, and called that an OVERWRITE - which it would be an INSERT. But I think you understood from the rest of your description - but that could confuse the devs if they read your proposal as written.

Thanks for all of your hard work listening to our feedback and often implementing improvements based upon them.

You all rock. :D
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3267 Posts

Posted - May 21 2017 :  1:08:18 PM  Show Profile  Reply with Quote
I've replaced the word overwrite with insert here and in the case.

quote:
I assume that is what you're currently referring to?


Currently I was referring the case which would put CompletionOverwriteBehavior to the VA ops dialog UI:
https://docs.wholetomato.com/default.asp?W640
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3267 Posts

Posted - May 21 2017 :  1:14:49 PM  Show Profile  Reply with Quote
To make things clear,

case=102623 is to add option for CompletionOverwriteBehavior in VA Option dialog
case=102622 is to change CompletionOverwriteBehavior logic?

I've added a comment to the latter with some clarification and to show your interest.

Thank you for the kind words we appreciate it We always try to implement as much as possible but we got a lot of requests and we need to prioritise somehow.

Edited by - accord on May 21 2017 1:15:19 PM
Go to Top of Page

tjcbs
Ketchup Master

99 Posts

Posted - May 24 2017 :  1:39:30 PM  Show Profile  Reply with Quote
Also, things are STILL being overwritten, no matter the registry setting. I think, when selecting a 0-param function, and if filling in the '()' is triggered (which itself is inconsistent), the behavior is to overwrite no matter what.

Wasting years of my life, making a stupid game: http://www.indiedb.com/games/plannet

Edited by - tjcbs on May 24 2017 1:47:11 PM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - May 25 2017 :  3:44:06 PM  Show Profile  Reply with Quote
Are you able to reproduce this on demand?

Doing some simple tests here, using VS2015 and VA 2217 with the registry key "CompletionOverwriteBehavior" set to 1, when typing directly before an existing text, even though the string is not a known symbol name, nothing is being overwritten for me.

When I use a dot and accept a zero parameter function from a listbox, I am not seeing the brackets being inserted in this situation. I know this is a zero parameter function, but since I am typing hard against existing text, VA does not know what you are doing, or how you are editing the code, so not inserting the brackets makes a degree of sense.

I would like to understand, and reproduce, the much more random effects you are seeing.

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

tjcbs
Ketchup Master

99 Posts

Posted - May 26 2017 :  8:14:39 PM  Show Profile  Reply with Quote
At the moment I am not seeing it. I will get back to you when it starts happening again, if I can figure out what triggers it.

I don't understand your second point however. Zero parameter functions always need the brackets, it shouldn't matter the context (*except* when you are using it as a function pointer... a case which VA doesn't handle, it always assumes you are calling the function, even in a context where it can be deduced you are not.) So, this is inconsistent, and a bug.

Wasting years of my life, making a stupid game: http://www.indiedb.com/games/plannet
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - May 27 2017 :  10:15:01 AM  Show Profile  Reply with Quote
This is a reasonable point, but if we do this, then what happens about functions with one or more parameters? The consistent behaviour here would be to insert both an opening and closing bracket, but we have no obvious way of deciding where the closing bracket should go. At the end of the current "word" is the easiest rule to use, but this is going to be wrong a fair percentage of the time.

Or are you seeing brackets inserted for function calls with parameters, at least some of the time?

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

tjcbs
Ketchup Master

99 Posts

Posted - May 30 2017 :  1:47:59 PM  Show Profile  Reply with Quote
Brackets are inserted for function calls with parameters, at least some of the time.
For function calls without parameters, it seems truly arbitrary whether brackets are inserted.
If they are inserted, then, at least some of the time, they eat the next word (I just witnessed this behavior). No matter the registry setting.

Wasting years of my life, making a stupid game: http://www.indiedb.com/games/plannet
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - May 31 2017 :  07:39:14 AM  Show Profile  Reply with Quote
Lets try and pin down an example or two of what is going on here. Using Windows 7, VS2015 and VA 2217, I have added the following code to a .cpp file:

void testingOverrideBehaviour()
{
	std::string strTestCalling;
	// first test that brackets are inserted normally
	// type ".com" and accept compare on the next line, get "strTestCalling.compare()"
	strTestCalling;
	// unknown symbol test now
	// after "str" type and accept listboxes to get the line:
	// strTestCalling.compare()UnknownHkhr;
	// brackets NOT automatically inserted for me, tested 6 times in a row
	strUnknownHkhr;
}


if you were doing this, would you expect to see brackets inserted?

Can you actually try this code, and see if you get brackets inserted or not?

Can you reproduce brackets being inserted for function calls with parameters on demand, or is this always random?

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

tjcbs
Ketchup Master

99 Posts

Posted - Jun 01 2017 :  5:36:30 PM  Show Profile  Reply with Quote
I can now reproduce the problem 100% of the time.

In the above example, get to:

strTestCalling.compareUnknownHkhr;

then, delete 'compare' using backspace key, type 'co', select 'compare'.

'UnknownHkhk' will be eaten.

Wasting years of my life, making a stupid game: http://www.indiedb.com/games/plannet
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Jun 03 2017 :  08:00:44 AM  Show Profile  Reply with Quote
When you delete "compare", are you deleting the dot, or leaving the dot in place?

How are you accepting the listbox, with Tab, Enter, the mouse, or something else?

So far I cannot reproduce this effect, even though we are using the same code, and you have provided a clear description of what you are doing. Can I just double check the IDE and version of VA you are using?

If I am testing the same code and environment, I am going to want a copy of your settings please, so I can try importing all of your settings, and see if I can then get the same behaviour here. You can export your VA and IDE settings via:

VA Options -> Performance -> Export Settings
IDE tools menu -> Import and Export Settings -> Export selected environment settings

Please submit the files via the form:

http://www.wholetomato.com/support/contact.asp

including this thread ID or URL in the description, so we can match it up.

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

tjcbs
Ketchup Master

99 Posts

Posted - Jun 06 2017 :  3:24:48 PM  Show Profile  Reply with Quote
Hrmm.. Now I can't reproduce it either :(

There must be some other hidden variable in play.

Wasting years of my life, making a stupid game: http://www.indiedb.com/games/plannet
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Jun 06 2017 :  4:20:20 PM  Show Profile  Reply with Quote
If and when this starts happening again, can you keep an eye out for a case where you can reproduce this on demand?

Backspace to remove a word, and then starting to type again made sense as a possible trigger, but clearly there is more to this than just that.

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

Adequat
Tomato Guru

159 Posts

Posted - Aug 12 2017 :  1:03:30 PM  Show Profile  Reply with Quote
I confirm there is something wrong for a couple of weeks (last version?). That is, the registry option "never overwrite text immediately right of caret" fails more than sometimes, which is pretty boring.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Aug 12 2017 :  2:27:23 PM  Show Profile  Reply with Quote
Are you able to reproduce this? Clearly something is going wrong, but without some sense of the trigger, this is going to be hard to pin down properly.

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

Adequat
Tomato Guru

159 Posts

Posted - Aug 14 2017 :  4:11:52 PM  Show Profile  Reply with Quote
100% reproducible.
See picture below.

1) is the start situation

2) My purpose is to end up with BCanUndo(foo());
that is, what you see in #5
When I start to type 'BC' a popup opens, and I am offered the choice to select BCanUndo, which is good (BCanUndo being an identifier among thousands). See #2 on the picture.

3) But when I press Return, 'foo' gets erased, and I get what you see in #3

4) I would expect, instead, what you see in #4, so that I can soon follow with #5.

Needless to say, this bug is a workflow breaker, and an error input.




Edited by - Adequat on Aug 14 2017 4:13:49 PM
Go to Top of Page

Mordachai
Tomato Guru

USA
224 Posts

Posted - Aug 14 2017 :  5:23:59 PM  Show Profile  Reply with Quote
Having set the registry (as explained earlier in this thread) mine inserts always - even under those conditions.
Go to Top of Page

Adequat
Tomato Guru

159 Posts

Posted - Aug 14 2017 :  6:02:20 PM  Show Profile  Reply with Quote
Additional info:
No problem under Visual Studio 2015.

The problem only happens under Visual Studio 2017 (15.2)
...but when I set CompletionOverwriteBehavior to 1
(in HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet15)
Then when launching Visual Studio 2017, the value CompletionOverwriteBehavior is reset automatically to 0 !!!!

So, now you know where the bug is!

And BTW, I don't see a single reason why this parameter should default to 0 and not 1!


Go to Top of Page

Mordachai
Tomato Guru

USA
224 Posts

Posted - Aug 15 2017 :  09:21:34 AM  Show Profile  Reply with Quote
Ah - I was running 2015.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Aug 15 2017 :  1:41:40 PM  Show Profile  Reply with Quote
Adequat, when preparing to edit the registry, are you making sure that all instances of the IDE have been closed? The only reason the setting should ever be reset is if you have an instance of the IDE open, and then close it. VA saves out its settings on exit, so if the instance had the "old" setting, then it would save this out when closed, over-writing your change to the registry.

I have just double checked, under Windows 7, VA 2223 and VS2017, specifically VS 2017 ver 15.2 (26430.16) Release, the registry key is not being reset for me, I change it and it stays changed.

If you are closing all instances of the IDE, then the next step is to ask you to run Process Monitor, and set this to monitor this registry key, so we can find out what process is changing it back. If it is the IDE, and VA, I have no idea why or how come, but it would certainly explain the problems you are seeing.

https://docs.microsoft.com/en-gb/sysinternals/downloads/procmon


Mordachai, is this setting working as expected for you, now you are changing the registry key for VS2015?

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

Mordachai
Tomato Guru

USA
224 Posts

Posted - Aug 15 2017 :  3:28:41 PM  Show Profile  Reply with Quote
This feature is working reasonably well for me with the registry setting to "never overwrite" (or always insert).
I would still advocate for this to be a config setting available in the settings panel for VA.
I would also advocate for some "smart" replacement options as we've discussed in the past.
Thanks.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Aug 15 2017 :  3:49:26 PM  Show Profile  Reply with Quote
Thank you for the update, I am glad this is working for you.

The default behaviour attempts a basic "smart" replacement option, but this isn't always what people want. There is something to be said for simple rules of behaviour, since they are easier to explain and understand. From experience, the current behaviour is complex enough that it's not always clear to people what is happening, or why.

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

Mordachai
Tomato Guru

USA
224 Posts

Posted - Aug 15 2017 :  4:13:24 PM  Show Profile  Reply with Quote
yes - that is always the issue with "smart" - one person's 'smart' is another person's 'dumb' ;)
Go to Top of Page

Mordachai
Tomato Guru

USA
224 Posts

Posted - Dec 05 2017 :  11:35:10 AM  Show Profile  Reply with Quote
Addendum: I have transitioned our main products to use VS2017, and my defaults from VANet14 did not come over. So my CompletionOverwriteBehavior went back to (0). :(

I would really prefer if such a setting were retained for each new installation of VA / VS.

I would really prefer it if such a setting were given an interface in VA settings config as well.

It's a really annoying bug for folks like myself, and I assume for Adequat - for whom having our code overwritten as we're typing something is unconscionable, and unhelpful in the extreme.

Thanks :)
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Dec 05 2017 :  5:15:58 PM  Show Profile  Reply with Quote
Apologies for this. We are looking to make moving your registry settings from one version of the IDE to another version a bit more straight forward:

case=96664

At least you have now changed the setting for VS2017, and VA is back to working how you want and expect.

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

Mordachai
Tomato Guru

USA
224 Posts

Posted - Dec 05 2017 :  10:13:36 PM  Show Profile  Reply with Quote
Yep - all set until VS 16.x lol - whatever is next in the VS world. Changing this was easy coming back to this thread.

Thanks for a great product and all of your efforts to keep us grumpy coders happy :D
Go to Top of Page

tjcbs
Ketchup Master

99 Posts

Posted - Aug 13 2018 :  7:58:29 PM  Show Profile  Reply with Quote
Please, please, please, add this to the GUI!!

Wasting years of my life, making a stupid game: http://www.indiedb.com/games/plannet
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
16614 Posts

Posted - Aug 14 2018 :  06:44:34 AM  Show Profile  Reply with Quote
We are still considering adding the registry key settings to the VA options dialog, but this is not currently a high priority.

Have you recently moved machines? Once set, these settings should be stable and reliable.

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

Mordachai
Tomato Guru

USA
224 Posts

Posted - Aug 14 2018 :  08:22:18 AM  Show Profile  Reply with Quote
The setting is very stable / reliable - but how does one know about it if one isn't already subscribed here?
How about "how do I find this the next time I do move machines?"
I probably stumble onto the bad behavior - struggle for a while - remember that "yeah, isn't there some registry fix for this" - then google a bunch, maybe I hit on this - maybe I don't.

Or I can squirrel away some document about this someplace... where? under what title? how will I know to look there the next time I move machines and have to rediscover this problem?

Do you have a help-topic in your software that details all such hidden registry work-arounds? Or do I literally have to come to this thread?
Go to Top of Page
Page: of 3 Previous Topic Topic Next Topic  
Previous Page | Next Page
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2019 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000