[program-l] Re: Opinion on Visual Studio code completion experience

  • From: "Dante Gagne" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "danteg" for DMARC)
  • To: "program-l@xxxxxxxxxxxxx" <program-l@xxxxxxxxxxxxx>
  • Date: Mon, 5 Nov 2018 21:48:08 +0000

I just asked the PM lead about this, and he said that it will never recommend 
more than 5 recommendations. It may recommend less if there are less high 
confidence matches, but it will never recommend more than five. And as I 
mentioned, yes, the item will show up in the list twice.

I saw a demo of this and it looked REALLY impressive. In some languages, it’s 
just really common that after you do X, you tend to do Y and the model can help 
with that. I’m actually pretty eager to play with it myself.

--Dante

From: program-l-bounce@xxxxxxxxxxxxx <program-l-bounce@xxxxxxxxxxxxx> On Behalf 
Of Florian Beijers
Sent: Monday, November 5, 2018 1:42 PM
To: program-l <program-l@xxxxxxxxxxxxx>
Subject: [program-l] Re: Opinion on Visual Studio code completion experience

Hi,

I think it comes down to properly making sure this behavior is well documented. 
Make the amount of "recommended" items configurable and just document that 
those show up in the completion list first, after which the regular list 
follows. In that scenario, however, I think it would be good to not take the 
items out of the 'not recommended' list. Essentially, preint them twice; once 
as recommended and once in their proper place in the alphabetical list. I think 
doing that gets you the best of all scenarios in the following way:

- You won't need to announce the items are recommended, because users will 
already know this. It heightens the cognitive load somewhat, but I think that's 
an acceptable gain if it means productivity isn't negatively impacted. If a 
verbal announcement needs to be there, I would say put it at the end of the 
utterance, but star is also how some TTS engines prnounce the * character which 
would be very confusing in languages like c++ where that character denotes a 
pointer.
- People won't have to scroll all the way up to find the method they thought 
they needed but weren't sure of in the recommended list if that same method 
also shows up in its proper place in the alphabetical list.

Just my two cents :-)


Op ma 5 nov. 2018 om 22:17 schreef Rodney Haynie 
<rodney.haynie@xxxxxxxxxx<mailto:rodney.haynie@xxxxxxxxxx>>:
Hi Dante and all.

Yes, you will definitely get a bunch of responses here.

I would lean towards not adding any additional text or information to the text 
supplied to the screen reader for speech output. But if the majority leans 
towards having it, I would say to add the additional text to the end. Perfect 
world, to have both the spoken text, and position as options. Clearing out the 
text would mean not to speak anything additional.

Having the items out of alphabetical order at the top, once you understand, I 
think is just fine. It just takes the first couple times for you to get used to 
it.

I would suggest only having the item appear in the list once.

Thanks for reaching out for input.
Rodney


-----Original Message-----
From: program-l-bounce@xxxxxxxxxxxxx<mailto:program-l-bounce@xxxxxxxxxxxxx
<program-l-bounce@xxxxxxxxxxxxx<mailto:program-l-bounce@xxxxxxxxxxxxx>> On 
Behalf Of Luke Scholey
Sent: Monday, November 5, 2018 3:46 PM
To: program-l@xxxxxxxxxxxxx<mailto:program-l@xxxxxxxxxxxxx>
Subject: [program-l] Re: Opinion on Visual Studio code completion experience

I think it’s a good idea to have the most suggested at the top of the list, and 
if possible the suggested items further down in the list in the usual 
alphabetical order so there’s the options of both. I don’t think any audible 
recognition of whether the item is suggested is really necessary as, if the 
focus was placed at the top of the list as it should be, The user would realise 
that the first few items are out of order. As they arrow further down in the 
list they will realise that the items they are going through will change to be 
in alphabetical order. So basically, the fact that the suggestions are at the 
top of the list are not in alphabetical order will highlight the fact that they 
are suggestions if you know what I mean?
Luke

On 5 Nov 2018, at 20:38, Drenth, Joe 
<Joe.Drenth@xxxxxxxx<mailto:Joe.Drenth@xxxxxxxx>> wrote:

Hi Dante,

Having the most commonly used members first would be very helpful. Can it be 
based on the current programmer's most frequent use of members, or would it 
be based on an analysis of all users? There are pros and cons to each option, 
I am sure.

Regarding putting the most common ones first versus keeping the entire list 
in alphabetical order, one idea is that when the user types the period ("."), 
the list box could be set to the most common member (in its normal 
alphabetical order) and a modifier could be used to jump between the most 
common members, such as holding CTRL with down or up arrows to jump to the 
next most common item lower or higher in the list. This way, no "star" or 
anything else would have to be added to the list box entry -- The user is 
simply placed on the most common method and CTRL+UP and CTRL+DOWN jump to the 
other most common items, while regular DOWN and UP step through all available 
items.

Thanks,
Joe


Joseph Drenth
Senior R&D Software Engineer
JBT Corporation  |  Automated Systems
400 Highpoint Drive
Chalfont, PA  18914, USA
E: joe.drenth@xxxxxxxx<mailto:joe.drenth@xxxxxxxx>  P: 215 822 4457
www.jbtc-agv.com<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jbtc-agv.com&data=02%7C01%7CDanteG%40microsoft.com%7C185497300ad546e84e8608d643678f64%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636770509405351297&sdata=e7JNnIL5f3yVLRTXWy8oYT%2FfrK%2FQJpqYkXoI6O68LnQ%3D&reserved=0>

-----Original Message-----
From: program-l-bounce@xxxxxxxxxxxxx<mailto:program-l-bounce@xxxxxxxxxxxxx
[mailto:program-l-bounce@xxxxxxxxxxxxx<mailto:program-l-bounce@xxxxxxxxxxxxx>]
 On Behalf Of Dante Gagne
Sent: Monday, November 5, 2018 2:48 PM
To: program-l@xxxxxxxxxxxxx<mailto:program-l@xxxxxxxxxxxxx>
Subject: [program-l] Opinion on Visual Studio code completion experience

**This email is from an external sender**

Hey folks,

First off, if folks think this is an inappropriate use of the list, just say 
so and I'll take it offlist and apologize up front. However, I was hoping I 
could ask the crowd for a few opinions now and then for functionality that 
we're considering in the upcoming version(s) of Visual Studio. Essentially, I 
have my guesses that this experience would work, but I'd rather YOU folks 
tell me that it does.

Today when you're coding in Visual Studio, when you hit "." After a token, 
the Intellisense completion list comes up with every single possible token 
that could follow. So, if you type "Debug.", you'll get "Assert, AutoFlush, 
Close,..." etc... (To be clear, you get a list box with each of these as an 
entry in it, so you'd hit arrow key to travel through).

The new feature, uses machine learning to "guess" what is most commonly used. 
For instance, for most folks, Debug.Write or Debug.WriteLine is the most 
common completion. The feature will move those items to the top of the list. 
However, since they're out of alphabetical order, they are annotated to show 
that these are "recommended" instead of in the "everything" list.

If we did nothing, when you type Debug. You would hear "Write, Writeline, 
Assert, Autoflush", etc... But in that case, you don't know which ones are 
recommended, just that they're the first ones.

The question I have is this... how would you feel if the recommended 
completions were preceded with the word "Star"? So, if I went this way, you'd 
type "Debug" and hear "Star Write, Star Writeline, Assert, Autoflush...". The 
first suggestion that was made was to say "Recommended", but that's four 
syllables and I asserted that a screen reader user would go crazy having to 
sit through hearing "Recommended Recommended Recommended..." over and over. 
But "Star" is very quick.

We had also thought about putting it after the token so you'd here "Write 
Star, Writeline Star, Assert, Autoflush" but the thought there was that 
"Write Star" sounds an awful lot like the name of the method is literally 
"WriteStar".

How do folks feel about this? Is "Star" short enough that saying it before 
the recommended items (of which there usually aren't more than 2-3)? Some 
other suggestion?

Thanks in advance, and again, I do apologize if this is out of line for the 
mailing list. Just let me know.

-Dante
** To leave the list, click on the immediately-following link:-
** 
[mailto:program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** 
[mailto:program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx
with the Subject:- faq
** To leave the list, click on the immediately-following link:-
** 
[mailto:program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** 
[mailto:program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx
with the Subject:- faq


** To leave the list, click on the immediately-following link:-
** 
[mailto:program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** 
[mailto:program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx>?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx<mailto:program-l-request@xxxxxxxxxxxxx> with 
the Subject:- faq

Other related posts: