Live data from Hacker News

Visual Studio IntelliCode

dirkstrauss.com

31–40 of 49 posts

Re: Visual Studio IntelliCode

#31
I remember reading when Facebook announced Aroma to auto suggest common coding patterns to FB engineers[0]. I haven't used much for code completion before but this idea sounds really interesting. It sounds like the IntelliCode implementation sources suggestions from repos with a higher number of stars so hopefully that helps with noise. For JS I'm sure the variability in style is pretty big.

For people that have been trying IntelliCode for a while does it help much with development? Does it have the ability to suggest larger code snippets or only word by word?

[0]https://ai.facebook.com/blog/aroma-ml-for-code-recommendatio...

Re: Visual Studio IntelliCode

#32
They call it AI, it all looks cool and shiny, but I remember that Visual Studio 2010 was using usage stats already to make auto-complete more useful. Then I think either 2013 or 2015 canned that approach and reverted to a dumb auto-complete (and was a major regression in term of UX). This is merely re-introducing something that already existed.

Re: Visual Studio IntelliCode

#33

I remember reading when Facebook announced Aroma to auto suggest common coding patterns to FB engineers[0]. I haven't used much for code completion before but this idea sounds really interesting. It sounds like the IntelliCode implementation sources suggestions from repos with a higher number of stars so hopefully that helps with noise. For JS I'm sure the variability in style is pretty big. For people that have been…

At least up to 2017, VS autocompletion is one word at a time.

Re: Visual Studio IntelliCode

#34
post #29

Earlier quoted context omitted.

That sounds kind of comparable to one of the reasons why gesture interfaces (the waving-your-hands-in-the-air type) have such a hard time catching on: no haptic feedback and not a reliable enough success rate compared to real buttons, or even touchscreens. It doesn't matter if it's 99.9% accurate, it's the 0.1% failure rate that will prevent adoption. Reliability and predictability matters a lot in interface design

> It doesn't matter if it's 99.9% accurate, it's the 0.1% failure rate that will prevent adoption. Perfectly said. I've always thought the same way. Basically, I'd rather not use a "pretty good" auto complete, because "pretty good" usually means it does more harm than good (where harm is providing wrong results or doing anything that slows me down overall).

See: Every phones autocorrect and how much annoyance they cause.

Re: Visual Studio IntelliCode

#35
post #30

I've never seen any IDE as good as IntelliJ IDEA when it comes to Auto suggest, and it has no real AI, just deterministic understanding of the project's source tree and dependencies, an indexed AST, how the type system works, and what's in scope at the cursor. In other words, two classes both called 'List' should not show up when I start typing 'List', if only one of them can possibly be relevant in context. A lot of…

>, and it has no real AI, just deterministic understanding of the project's source tree and dependencies, an indexed AST Right, but because VS Intellicode does not purely work on just the AST tree , that becomes its differentiated advantage. It's not a better way of autocomplete, but a different way that works for some scenarios. Because Intellicode is not deterministic, it is not meant to build muscle-memory like vi…

Most modern autocomplete engines respect camelcase, so N will bring up both Now and UtcNow.

Re: Visual Studio IntelliCode

#36

I've never seen any IDE as good as IntelliJ IDEA when it comes to Auto suggest, and it has no real AI, just deterministic understanding of the project's source tree and dependencies, an indexed AST, how the type system works, and what's in scope at the cursor. In other words, two classes both called 'List' should not show up when I start typing 'List', if only one of them can possibly be relevant in context. A lot of…

That isn’t how code competition is used. It is t about “saving on typing”, rather, it enables exploration and allows a developer to browse on what they can do next. In that case, your error rate is completely meaningless.

Re: Visual Studio IntelliCode

#37
post #30

I've never seen any IDE as good as IntelliJ IDEA when it comes to Auto suggest, and it has no real AI, just deterministic understanding of the project's source tree and dependencies, an indexed AST, how the type system works, and what's in scope at the cursor. In other words, two classes both called 'List' should not show up when I start typing 'List', if only one of them can possibly be relevant in context. A lot of…

>, and it has no real AI, just deterministic understanding of the project's source tree and dependencies, an indexed AST Right, but because VS Intellicode does not purely work on just the AST tree , that becomes its differentiated advantage. It's not a better way of autocomplete, but a different way that works for some scenarios. Because Intellicode is not deterministic, it is not meant to build muscle-memory like vi…

> What Intellicode does is use crowd-sourced data to create a different set of autocomplete suggestions. With that strategy, when one types the dot character "." to trigger a context menu for autocompletion, it's sort of a miniature "pagerank" of the most likely methods or properties instead of a "dumb" alphabetical order.

Eh, isn't the whole point that intellicode is trained on your own project? Mine is, it suggests things based on our usage.

Re: Visual Studio IntelliCode

#38
post #30

Earlier quoted context omitted.

>, and it has no real AI, just deterministic understanding of the project's source tree and dependencies, an indexed AST Right, but because VS Intellicode does not purely work on just the AST tree , that becomes its differentiated advantage. It's not a better way of autocomplete, but a different way that works for some scenarios. Because Intellicode is not deterministic, it is not meant to build muscle-memory like vi…

> What Intellicode does is use crowd-sourced data to create a different set of autocomplete suggestions. With that strategy, when one types the dot character "." to trigger a context menu for autocompletion, it's sort of a miniature "pagerank" of the most likely methods or properties instead of a "dumb" alphabetical order. Eh, isn't the whole point that intellicode is trained on your own project? Mine is, it suggests…

>, isn't the whole point that intellicode is trained on your own project?

Intellicode may also be trained on your own project but that's definitely not its whole point.

Here's an excerpt from https://visualstudio.microsoft.com/services/intellicode/:

>"IntelliCode recommendations are based on thousands of open source projects on GitHub each with over 100 stars."

Perhaps you were thinking of "IntelliSense" instead of "IntelliCode"? Yes, the older IntelliSENSE could parse your custom classes and types and provide autocomplete for them. IntelliCODE is a different algorithm. (I think Microsoft's naming for them is not self-descriptive and confusing.)

Re: Visual Studio IntelliCode

#39
post #38

Earlier quoted context omitted.

> What Intellicode does is use crowd-sourced data to create a different set of autocomplete suggestions. With that strategy, when one types the dot character "." to trigger a context menu for autocompletion, it's sort of a miniature "pagerank" of the most likely methods or properties instead of a "dumb" alphabetical order. Eh, isn't the whole point that intellicode is trained on your own project? Mine is, it suggests…

>, isn't the whole point that intellicode is trained on your own project? Intellicode may also be trained on your own project but that's definitely not its whole point. Here's an excerpt from https://visualstudio.microsoft.com/services/intellicode/ : >"IntelliCode recommendations are based on thousands of open source projects on GitHub each with over 100 stars." Perhaps you were thinking of "IntelliSense" instead of…

Huh, weird.

I've only ever noticed the "starred" recommendations on our own methods, and it's incredible.

Re: Visual Studio IntelliCode

#40

Earlier quoted context omitted.

If you're using Intellicode in Visual Studio with C#, I'm afraid I don't really believe you. Intellicode strongly prioritises nearby code elements. Could you give an example of a situation where it's completely missing the point? VS Code's default completion is strictly buffer based, so no sure what you mean there either.

I have a bunch of screenshots I shared in our work slack channel. First of all I am talking about Visual Studio Code rather than Visual Studio. I should have mentioned that, sorry. Intellicode is also available for VSC so I figured it would be relevant here. The screenshot I posted a while back showed me exporting something at the of the file and I had typed `Det` at which point it suggested some random functions fro…

My understanding is that completion in VS Code for C# is provided by Omnisharp, which yeah, I agree, seems to be slow and inconsistent.

I've written a language server extension for VS Code (not for C#), and the completion lists I provide are better than those I get in C#/F# while writing the server, it's bad :/

Post reply on HN