6 ms·
Visual Studio IntelliCode
- stanislavb 7y agoDoes anyone know if that could be enabled in VS Code?
- carlvonblixen 7y agoYes it can. :) https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode https://marketplace.visualstudio.com/items?itemName=VisualSt...
- BrissyCoder 7y agoNot unless there's a specific version made for Code.
- zapzupnz 7y agoThe article states that it is available for Code.
- orliesaurus 7y agoWould be interesting to understand how this works? The paragraph supposedly explaining it, says it grabs code for some of the top GitHub projects to build a model of what good code practices are (I am assuming?). Feels like this sample is way too small to me? Any real life feedback from anyone using this?
- BrissyCoder 7y agoI read that page, watched the vid, and really don't understand what the benefits of this are. Currently use ReSharper and it seems to do a pretty awesome job of predicting what I want. Whoever is promoting this needs to give better examples...
- mariusmg 7y agoAlso wondering the same thing. What does this accomplishes over Resharper (for example) ?
- AllegedAlec 7y agoIt's free, for one. Other than that: this looks absolutely horrible. I don't want AI to make suggestions. I know which methods I want, and which names I want to give stuff.
- melling 7y agoWhat about people who don’t know the methods? Wouldn’t better suggestions be helpful for those learning a language, any language? I could learn C# or F# in half the time, for example. This might not be the tool, but I can imagine AI being extremely useful in software development.
- Crinus 7y agoIf suggestions are to be made i'd rather have them be made by the designers of the APIs/languages, especially those are have been around for some time and have developed better approaches for doing things already possible previously but in a worse way. For example imagine you have an API that Foos Stuff, the initial version could have been FooStuff but it turned out that after 10 years of active use, the approach was slow for modern use cases and the only way to improve it was to change the API to BeginStuffFooing, ProcessStuffFooing and FinishStuffFooing but still keep the original FooStuff for backwards compatibility. After 10 years of use, an AI-driven approach that data mines existing codebases (especially popular codebases that are more likely to be mature/old codebases) will be more likely to use FooStuff than Begin/Process/FinishStuffFooing, thus people will be steered towards FooStuff instead of the better approach. Something that is driven explicitly by the API designer can start recommending Begin/Process/FinishStuffFooing from the moment it is available and recommend against introducing FooStuff in new code (it could even show up a tooltip or whatever with a "here is how to use the new approach if you already know the old approach" link).
- YuukiRey 7y agoI appreciate all attempts at improving this kind of auto suggesting but for me simple buffer based string completion is still vastly superior to anything VSCode offers out of the box (I work as a front end dev). Way too often VSCode suggets methods and snippets that are totally irrelevant while ignoring a string that's just a few lines await. So far no configuration settings helped with that. So bottom line vim's built-in buffer completion is more efficient at least for the work I do. TabNine is actually the only thing that I could see myself switching to.
- Dayshine 7y agoIf 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.
- YuukiRey 7y agoI 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 from random APIs. Then I had `Detail` at which point no suggestions were offered. At `Detaile` it finally gave me `DetailedProgress` from the same file about 50 lines higher up. This is a frequently recurring theme that it takes so long to actually suggest mere names (~ strings).
- Dayshine 7y agoMy 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 :/
- tomglynch 7y agoThis is just an ad for dirkstrauss' website. uBlock origin blocks 34 ads.
- haecceity 7y agoIt just reorders the autocomplete list. This is kind of underwhelming.
- tangue 7y agoWasn't that what the nefarious Kite extension was trying to do ?
- 076ae80a-3c97-4 7y agoThis feature also exists in Visual Studio 2019 and I actually like it. The UI is unobtrusive and the suggestions are very often correct in my fairly extensive experience with it. All the negativity seems to be forgetting that this isn't removing anything, only augmenting an existing feature. Additionally I can see this being very useful to new developers who are less familiar with the language and what can or should be done.
- KineticLensman 7y ago> very useful to new developers who are less familiar with the language Yes. It almost serves as a pop-up mini-manual, e.g. for all of the valid methods on a class instance whose name you have just have typed. Good for validation but also discovery.
- cromwellian 7y agoI'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 IDEs, especially in refactoring, for Java often appeared to use string comparison. So you'd do a system wide refactor of say interface 'Foobar', and it would match completely different interfaces called 'Foobar' that had no relation to what's under the cursor. It's this almost 100% exact matching that develops into a rapid muscle memory where you learn to trust the IDE, and non-deterministic algorithms which have say, a 1% failure rate, tend to be annoying.
- vanderZwan 7y agoThat 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
- nickjj 7y ago> 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).
- zaphar 7y agoSee: Every phones autocorrect and how much annoyance they cause.
- 7y ago
- onefuncman 7y ago>In Visual Studio 2019, hit Ctrl+Q nope. Who picked this shortcut?
- WorldMaker 7y agoBecause Windows has been consistent with Alt+F4 (and Alt+F,X in traditional menu apps, and Alt+Space,C for old fogeys that still use the classic "command menu" even as its icon/click-region continues to disappear from title bars) for decades and "Exit" (or "Close") generally being the Windows command word of choice over "Quit", Ctrl+Q has never meant cohesively "Quit" on Windows as it does on other platforms. I know a lot of Windows applications that use Ctrl+Q for various things having nothing to do with quitting (and Windows-focused Vim users that use/suggest Ctrl+Q for `<Leader>` for similar reasons).
- greenyouse 7y agoI 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-recommendation https://ai.facebook.com/blog/aroma-ml-for-code-recommendatio...
- marcosdumay 7y agoAt least up to 2017, VS autocompletion is one word at a time.
- cm2187 7y agoThey 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.
- WorldMaker 7y agoIntelliCode does give a better UX/feature set than what was ever in previous Visual Studio versions, however. The IntelliCode suggestions have a star icon to make it clearer why they bubbled to the top. The Visual Studio version of IntelliCode supports manually training the suggestions for C# (and soon other languages, if I recall) on personal/corporate/private projects and sharing the subsequent AI/usage models with team members. That ability to get all of a team on a similar model for usage/context-aware suggestions alone will be a big deal for some projects. (Also, it's built on "AI" techniques like convolutional neural networks rather than pure usage statistics databases, so the performance characteristics are also much better than the past Visual Studio usage databases, especially on machines where it can hardware accelerate it, which supposedly on Windows 10 is most GPUs these days.)