{"id":26043,"date":"2020-05-14T14:01:09","date_gmt":"2020-05-14T14:01:09","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=26043"},"modified":"2020-05-14T14:31:31","modified_gmt":"2020-05-14T14:31:31","slug":"visual-studio-code-c-extension-may-2020-update","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/visual-studio-code-c-extension-may-2020-update\/","title":{"rendered":"Visual Studio Code C++ extension: May 2020 update"},"content":{"rendered":"<p>The May 2020 update of the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cpptools\" target=\"_blank\" rel=\"noopener noreferrer\">Visual Studio Code C++ extension<\/a> is now available. This latest release offers brand new features\u2014ARM and ARM64 IntelliSense modes and C++ language-specific code folding\u2014along with a bunch of enhancements and bug fixes. To find out more about all the changes, check out our <a href=\"https:\/\/github.com\/microsoft\/vscode-cpptools\/releases\/tag\/0.28.0\" target=\"_blank\" rel=\"noopener noreferrer\">release notes on GitHub<\/a>.<\/p>\n<h3>ARM and ARM64 IntelliSense modes<\/h3>\n<p>With the May 2020 update, you can configure the C++ extension to provide proper IntelliSense when cross-compiling for ARM and ARM64. This means you&#8217;re compiling for a different architecture than your host development machine. All you need to do is set your compiler path and IntelliSense mode.<\/p>\n<p>Your compiler path and IntelliSense mode configuration are stored in your project\u2019s c_cpp_properties.json file. Edit these settings by selecting <strong>C\/C++: Edit Configurations (UI)<\/strong> from the Command Palette.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-26049\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/search.png\" alt=\"screenshot that shows searching for C++ settings in the command palette\" width=\"889\" height=\"461\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/search.png 889w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/search-300x156.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/search-768x398.png 768w\" sizes=\"(max-width: 889px) 100vw, 889px\" \/><\/p>\n<p>Under <strong>Compiler path, <\/strong>enter the path to the compiler compatible with your target architecture. For example, \u201c\/usr\/bin\/arm-none-eabi-g++\u201d if compiling for ARM from a Linux machine.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-26052 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large.png\" alt=\"Screenshot of compiler path C++ property\" width=\"2829\" height=\"417\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large.png 2829w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large-300x44.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large-1024x151.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large-768x113.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large-1536x226.png 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/compilerpath-large-2048x302.png 2048w\" sizes=\"(max-width: 2829px) 100vw, 2829px\" \/><\/p>\n<p>Then set <strong>IntelliSense mode<\/strong> to the architecture-specific variant of the compiler you are using. The May 2020 update provides the following new IntelliSense modes: clang-arm, clang-arm64, gcc-arm, gcc-arm64, msvc-arm, and msvc-arm64. For example, select \u201cgcc-arm\u201d if you\u2019re using GCC to compile for ARM.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-26056\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge.png\" alt=\"Screenshot showing IntelliSense modes in drop down\" width=\"2870\" height=\"1375\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge.png 2870w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge-300x144.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge-1024x491.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge-768x368.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge-1536x736.png 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/intellisensemodelarge-2048x981.png 2048w\" sizes=\"(max-width: 2870px) 100vw, 2870px\" \/><\/p>\n<p>Now you\u2019re all set to enjoy IntelliSense while cross-compiling for ARM! To learn more, see <a href=\"http:\/\/aka.ms\/cpp\/vscode\/crosscompile\" target=\"_blank\" rel=\"noopener noreferrer\">Configure IntelliSense for cross-compiling<\/a>.<\/p>\n<h3>Code folding<\/h3>\n<p>The May 2020 update provides C++ language-specific code folding, enabling you to easily collapse and expand blocks of code. The code folding provided by the C++ extension addresses the buggy behavior of the previous non-language-specific code folding experience. Specifically, code folding now works as expected for #if statements, #include statements, and block comments.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-26046 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2020\/05\/codefolding.gif\" alt=\"GIF of expanding and collapsing code blocks\" width=\"1192\" height=\"840\" \/><\/p>\n<h3>What do you think?<\/h3>\n<p><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cpptools\" target=\"_blank\" rel=\"noopener noreferrer\">Download the C++ extension for Visual Studio Code<\/a> today, give it a try, and let us know what you think. If you run into any issues, or have any suggestions, please report them in the <a href=\"https:\/\/github.com\/Microsoft\/vscode-cpptools\/issues\" target=\"_blank\" rel=\"noopener noreferrer\">Issues section of our GitHub repository<\/a>. You can also join our Insiders program and get access to early builds of our release by going to <strong>File<\/strong> &gt; <strong>Preferences<\/strong> &gt; <strong>Settings<\/strong> and under <strong>Extensions<\/strong> &gt; <strong>C\/C++,<\/strong> change the \u201c<strong>C_Cpp: Update Channel<\/strong>\u201d to \u201c<strong>Insiders<\/strong>\u201d.<\/p>\n<p>We can be reached via the comments below or in email at <a href=\"mailto:visualcpp@microsoft.com\">visualcpp@microsoft.com<\/a>. You can also find our team on Twitter at <a href=\"https:\/\/twitter.com\/visualc\">@<\/a><a href=\"https:\/\/twitter.com\/visualc\">VisualC<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The May 2020 update of the Visual Studio Code C++ extension is now available. This latest release offers brand new features\u2014ARM and ARM64 IntelliSense modes and C++ language-specific code folding\u2014along with a bunch of enhancements and bug fixes. To find out more about all the changes, check out our release notes on GitHub. ARM and [&hellip;]<\/p>\n","protected":false},"author":27203,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,230],"tags":[],"class_list":["post-26043","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-new-feature"],"acf":[],"blog_post_summary":"<p>The May 2020 update of the Visual Studio Code C++ extension is now available. This latest release offers brand new features\u2014ARM and ARM64 IntelliSense modes and C++ language-specific code folding\u2014along with a bunch of enhancements and bug fixes. To find out more about all the changes, check out our release notes on GitHub. ARM and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/26043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/27203"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=26043"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/26043\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=26043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=26043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=26043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}