{"id":17535,"date":"2018-05-07T08:37:50","date_gmt":"2018-05-07T15:37:50","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=17535"},"modified":"2021-06-15T08:28:09","modified_gmt":"2021-06-15T15:28:09","slug":"introducing-visual-studio-intellicode","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/introducing-visual-studio-intellicode\/","title":{"rendered":"Introducing Visual Studio IntelliCode"},"content":{"rendered":"<p>Visual Studio IntelliCode brings you the next generation of developer productivity by providing AI-assisted development. Every keystroke and every review is informed by best practices and tailored to your code context. You can try it out today by downloading the <a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=872707\">experimental extension<\/a> for Visual Studio 2017 that provides AI-powered IntelliSense.<\/p>\n<h2>What is IntelliCode?<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/2018.05.07.AnnouncingVisualStudioIntelliCode-GalleryTile-v2-11.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"float: left;\" title=\"Visual Studio IntelliCode\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/2018.05.07.AnnouncingVisualStudioIntelliCode-GalleryTile-v2-11.png\" alt=\"Visual Studio IntellICode\" width=\"123\" height=\"167\" align=\"left\" \/><\/a><\/p>\n<p>IntelliCode is a set of AI-assisted capabilities that improve developer productivity with features like contextual IntelliSense, inference and enforcement for code styles, and focused reviews for your pull requests (PRs.)<\/p>\n<p>AI-assisted IntelliSense, and the other features shown at BUILD 2018, are just the start. Over time you\u2019ll see more ways that we\u2019ll assist your end-to-end developer workflow.<\/p>\n<p>Check out this video for a demo of some of the capabilities IntelliCode will offer.<\/p>\n<p><iframe src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/IntelliCode-Video1.mp4\" width=\"750\" height=\"450\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h2><\/h2>\n<h2>What can IntelliCode do now?<\/h2>\n<p>As you type, AI-assisted IntelliSense recommends the most likely API. This makes it easier to learn a new API and dramatically reduces the number of keystrokes required to complete a line. With more context from the code you write, IntelliSense becomes more accurate.<\/p>\n<p>IntelliCode\u2019s improvements are not just about statement completion. IntelliCode also provides guidance as to the most appropriate overload for that API given the current code context. No more extraneous scrolling!<\/p>\n<h4>AI-assisted IntelliSense: better recommendations with every keystroke<\/h4>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot1IntelliSenseWithRecos.gif\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-18823\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot1IntelliSenseWithRecos.gif\" alt=\"AI-assisted IntelliSense: better recommendations with every keystroke\" width=\"2336\" height=\"900\" \/><\/a><\/p>\n<h2>How does it work?<\/h2>\n<p><b>IntelliCode<\/b> generates recommendations by using a machine-learning model that is trained on thousands of public codebases \u2013 today it uses over 2000 GitHub repos that each have more than 100 stars to ensure that you\u2019re benefiting from best practices. The model is used in your IDE along with your local code context to provide .NET related APIs that are likely to be the most relevant for you given the line of code you\u2019re writing. We\u2019ll be growing and improving the model over time so the recommendations will get better as we progress.<\/p>\n<p>While it\u2019s still very early, you can <a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=872707\">download<\/a> and experiment with this capability in the <b>IntelliCode<\/b> extension right away. We welcome your feedback.<\/p>\n<h2>What\u2019s next?<\/h2>\n<p>Beyond what is currently in our experimental extension, here are a few of the things IntelliCode is experimenting with. Right now, the extension is only C#, but we want to expand to other languages later.<\/p>\n<h4>Automatic definition of styles and formatting: no more style inconsistencies<\/h4>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot2AutoEditorConfig.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-18824\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot2AutoEditorConfig.png\" alt=\"Automatic definitions of styles and formatting: no more style inconsistencies\" width=\"1488\" height=\"832\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot2AutoEditorConfig.png 1488w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot2AutoEditorConfig-300x168.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot2AutoEditorConfig-768x429.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot2AutoEditorConfig-1024x573.png 1024w\" sizes=\"(max-width: 1488px) 100vw, 1488px\" \/><\/a><\/p>\n<p>Consistency is important for maintainability; in fact recent research shows that 18% of PR comments are related to coding conventions, styles and naming issues.<\/p>\n<p><b>IntelliCode<\/b> can automatically generate an .<a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/create-portable-custom-editor-options\">editorconfig file<\/a> that best matches your current styles and formatting. Once generated, this file will help you maintain consistency in your code. Fixing up formatting issues is a snap with existing lightbulbs or with a new, code-cleanup command.<\/p>\n<h4>Assisting with every review<\/h4>\n<p>As developers, you know that code reviews can be time consuming. It\u2019s challenging to focus on the right things when other issues get in the way. <b>IntelliCode<\/b> makes reviews less painful for <i>everyone<\/i> by providing focus for the reviewer, and an automated, first-level review.<\/p>\n<h4>Find misused variables<\/h4>\n<p>With automatic generation of comments in files for potential issues, you\u2019ll be able to identify and fix issues faster. For example, <b>IntelliCode<\/b> can detect variable misuse, often introduced through copy\/paste where a variable is of the correct type but used in the wrong context. These analyses go beyond style concerns or what a conventional static analysis tool can find \u2013 it can find actual bugs in your code. It\u2019s discovered bugs in our code too!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot3VarMisuseInIDE.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-18825\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot3VarMisuseInIDE.png\" alt=\"Screenshot Assistance with every review\" width=\"1469\" height=\"904\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot3VarMisuseInIDE.png 1469w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot3VarMisuseInIDE-300x185.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot3VarMisuseInIDE-768x473.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/05\/2018.05.07.AnnouncingVisualStudioIntelliCode-Screenshot3VarMisuseInIDE-1024x630.png 1024w\" sizes=\"(max-width: 1469px) 100vw, 1469px\" \/><\/a><\/p>\n<h4>Get recommendations for files to review<\/h4>\n<p>IntelliCode focuses your reviews by indicating which files may need extra attention. These recommendations are based on machine-learning heuristics for the history of the files, their dependencies, the code complexity and history. These capabilities can be applied alongside CI analysis services and other code review processes. The results can be surface in the IDE and in web-based tools. For example, review comments generated by the <b>IntelliCode <\/b>analyzers can appear in your online Visual Studio Team Services\u2019 pull requests (PRs).<\/p>\n<p>Some of <b>IntelliCode<\/b>\u2019s analyzers use machine-learning on public codebases, and are then specialized to your own repository. When these analyses become available, they will require a sign-up and registration process.<\/p>\n<h2>Why IntelliCode?<\/h2>\n<p>Millions of repos of code are now available in the public domain. This code represents a tremendous amount of knowledge that can be accessed at your fingertips, tailored to your context.<\/p>\n<p>Microsoft is investing extensively in machine-learning and AI technologies. We\u2019re working with Microsoft Research to leverage the latest techniques to <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/blog\/learning-source-code\/\">learn from source code<\/a> and deliver new, innovative ways to enhance the coding life of developers, so that you can deliver your software with greater confidence and velocity.<\/p>\n<h2>Get Involved<\/h2>\n<p>We are excited to give you an early glimpse into <b>IntelliCode<\/b>, which is currently optimized for C#. Although we are sharing some of it today in an IDE extension (<a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=872707\">download<\/a>) you can try right away, today&#8217;s demo is just a hint into what\u2019s coming soon.<\/p>\n<p>As we expand the capabilities to more scenarios and other languages, we\u2019ll announce a limited preview of <b>IntelliCode<\/b>. If you want to learn more, keep up with the project, and be invited to the private preview please <a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=872706\">sign up<\/a>!<\/p>\n<p>Happy Coding!<\/p>\n<p>Amanda<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how Visual Studio IntelliCode brings you next generation developer productivity via AI-assisted development, tailored to your code context. Try it out by downloading the experimental extension for Visual Studio 2017 that provides AI-powered IntelliSense.<\/p>\n","protected":false},"author":591,"featured_media":18818,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[237,5,467,12,156],"class_list":["post-17535","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-net","tag-csharp","tag-intellicode","tag-visual-studio","tag-visual-studio-2017"],"acf":[],"blog_post_summary":"<p>Learn how Visual Studio IntelliCode brings you next generation developer productivity via AI-assisted development, tailored to your code context. Try it out by downloading the experimental extension for Visual Studio 2017 that provides AI-powered IntelliSense.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/17535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/591"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=17535"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/17535\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/18818"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=17535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=17535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=17535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}