{"id":24252,"date":"2019-05-03T18:26:23","date_gmt":"2019-05-03T18:26:23","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=24252"},"modified":"2019-08-14T15:54:27","modified_gmt":"2019-08-14T15:54:27","slug":"vscode-cpp-may-2019-update","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/vscode-cpp-may-2019-update\/","title":{"rendered":"Visual Studio Code C\/C++ extension: May 2019 Update"},"content":{"rendered":"<p>The May 2019 update of the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cpptools\">Visual Studio Code C\/C++ extension<\/a> is now available to C\/C++ extension Insiders version 0.23.0. This release includes many new features &#8211; Visual Studio Code Remote Development extensions with the C\/C++ extension, an IntelliSense Configurations settings editor UI, and IntelliSense improvements. For a full list of this release\u2019s improvements, check out our <a href=\"https:\/\/github.com\/Microsoft\/vscode-cpptools\/releases\/tag\/0.23.0-insiders2\">release notes on GitHub<\/a>.<\/p>\n<p>You can join the C\/C++ extension Insiders program by changing your C_Cpp:\u00a0Update Channel setting to \u201cInsiders.\u201d<\/p>\n<h2>Visual Studio Code Remote Development with the C\/C++ extension<\/h2>\n<p><a href=\"https:\/\/code.visualstudio.com\/blogs\/2019\/05\/02\/remote-development\">Remote Development with Visual Studio Code<\/a> is now available, and you can use it with the C\/C++ extension!<\/p>\n<p>Visual Studio Code Remote Development allows you to use a container, remote machine, or the\u00a0<a href=\"https:\/\/docs.microsoft.com\/windows\/wsl\">Windows Subsystem for Linux (WSL)<\/a>\u00a0as a full-featured development environment. Visual Studio Code can provide a local-quality development experience including full IntelliSense, debugging, and code editing regardless of where your code is hosted. In fact, you don\u2019t need any source code on your local machine to use this capability.<\/p>\n<p>With Visual Studio Code Remote Development extensions you can:<\/p>\n<ul>\n<li>Easily develop your C\/C++ programs on the same operating system you are deploying to<\/li>\n<li>Sandbox your development environment<\/li>\n<li>Use runtimes not available on your local OS<\/li>\n<li>Access an existing environment from multiple locations<\/li>\n<li>Debug an application running somewhere else.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone wp-image-24256 \" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/vsc-remote-diagram-e1556905311205-300x95.png\" alt=\"the local OS of VS Code connects to the Remote OS which can have all your source code\" width=\"894\" height=\"283\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/vsc-remote-diagram-e1556905311205-300x95.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/vsc-remote-diagram-e1556905311205-768x242.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/vsc-remote-diagram-e1556905311205.png 952w\" sizes=\"(max-width: 894px) 100vw, 894px\" \/><\/p>\n<h3>Setting up Visual Studio Code Remote Development<\/h3>\n<p>You can install the public preview of the <a href=\"https:\/\/aka.ms\/vscode-remote\/download\">Remote Development extension pack<\/a> in Visual Studio Code Insiders from the extension marketplace.<\/p>\n<p>More details on getting started with the extensions can be found in the <a href=\"https:\/\/code.visualstudio.com\/docs\/remote\/remote-overview#_getting-started\">Visual Studio Code Remote Development getting started section<\/a>. You will see a few new components when you install the Remote Development pack:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-24260\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/remote-screenshot-300x159.png\" alt=\"New sidebar icon and WSL connection displayed in development bottom bar\" width=\"1034\" height=\"548\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/remote-screenshot-300x159.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/remote-screenshot-768x407.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/remote-screenshot-1024x543.png 1024w\" sizes=\"(max-width: 1034px) 100vw, 1034px\" \/><\/p>\n<h3>Using Visual Studio Code Remote Development with the C\/C++ extension<\/h3>\n<p>Once you are set up with a <a href=\"https:\/\/code.visualstudio.com\/blogs\/2019\/05\/02\/remote-development\">Visual Studio Code Remote Development<\/a> extension, install the C\/C++ extension for the Remote Development extension you wish to use. For example, with WSL:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-24264\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/cpp_extension_wsl-300x82.png\" alt=\"&quot;Install on WSL&quot; option for the C\/C++ extension after Remote - WSL is installed\" width=\"516\" height=\"141\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/cpp_extension_wsl-300x82.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/cpp_extension_wsl.png 533w\" sizes=\"(max-width: 516px) 100vw, 516px\" \/><\/p>\n<p>The extension will provide local-quality C\/C++ IntelliSense, debugging, and code browsing for the remote environment you\u2019re developing for. In the above case, I now have access to the Linux version of the C\/C++ extension.<\/p>\n<p>Keep in mind, you may need to change your compiler path, tasks, or launch.json based on the environment you are remotely targeting. You can follow our <a href=\"https:\/\/code.visualstudio.com\/docs\/cpp\/config-wsl\">GCC on the Windows Subsystem for Linux tutorial<\/a> for more details on setting up WSL with the C\/C++ extension.<\/p>\n<h2>IntelliSense Configuration settings editor UI<\/h2>\n<p>Users of the C\/C++ extension have consistently told us that configuring IntelliSense is difficult, especially editing the c_cpp_properties.json file correctly. To address this pain point, we created a UI editor to help you more easily configure basic IntelliSense settings. The IntelliSense Configuration settings editor UI:<\/p>\n<ul>\n<li>makes IntelliSense configuration easier to understand<\/li>\n<li>provides a simple and clear interface for the most basic settings to get IntelliSense working<\/li>\n<li>validates inputs such as missing paths<\/li>\n<li>offers an alternative to editing JSON files (but, you\u2019ll always be able to edit JSON directly if you\u2019d like)<\/li>\n<\/ul>\n<p>Here is a screenshot of the IntelliSense Configuration settings editor UI:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-24265\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/config-ui-300x285.png\" alt=\"intellisense configuratoin settings ui shows the basic settings needed to configure intellisense with the C\/C++ extension\" width=\"1010\" height=\"960\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/config-ui-300x285.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/config-ui-768x729.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/config-ui-1024x972.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/05\/config-ui.png 1394w\" sizes=\"(max-width: 1010px) 100vw, 1010px\" \/><\/p>\n<p>You can get to the IntelliSense Configuration settings editor UI through the command palette (Ctrl+Shift+P) via the \u201cC\/C++: Edit configurations (UI)\u201d command. There are additional entry points including quick fix IntelliSense error links.<\/p>\n<p><strong>Please Note: <\/strong>When you select \u201cConfigure\u201d for the first time to configure IntelliSense, VS Code will open the UI editor or JSON file based on your workbench.settings.editor setting. If workbench.settings.editor is set to \u201cui\u201d, then the UI editor will open by default, and if it is set to &#8220;json&#8221;, then the JSON file will open by default. You can view that setting under VS Code preferences\u00a0\u2192 settings \u2192 \u201cWorkbench Settings Editor\u201d.<\/p>\n<h2>IntelliSense Improvements<\/h2>\n<p>We made a variety of IntelliSense improvements in the May 2019 update.<\/p>\n<h3>IntelliSense Configuration<\/h3>\n<p>We now validate that the specified compilerPath and intelliSenseMode values match for a better IntelliSense configuration experience in c_cpp_properties.json and the IntelliSense Configurations UI.<\/p>\n<h3>#include Errors<\/h3>\n<p>The IntelliSense engine fallback setting now defaults to disabled, so the IntelliSense engine will no longer automatically switch to the Tag Parser for translation units containing an #include error.<\/p>\n<h3>Error Squiggles<\/h3>\n<p>The disabled value for error squiggles no longer shows missing header squiggles.<\/p>\n<p>We now only show (by default) error squiggles if include headers are successfully resolved.<\/p>\n<h2>Tell Us What You Think<\/h2>\n<p><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cpptools\">Download the C\/C++ extension for Visual Studio Code<\/a>, give it a try, and let us know what you think. If you run into any issues, or have any suggestions, please report them on the <a href=\"https:\/\/github.com\/Microsoft\/vscode-cpptools\/issues\">Issues section of our GitHub repository<\/a>. Set the C_CppProperties.UpdateChannel in your Visual Studio Code settings to \u201cInsiders\u201d to get early builds of our extension.<\/p>\n<p>We can be reached via the comments below or via email (visualcpp@microsoft.com). You can also find our team (<a href=\"https:\/\/twitter.com\/visualc\">@VisualC<\/a>) on Twitter &#8211; and me (<a href=\"https:\/\/twitter.com\/tara_msft\">@tara_msft<\/a>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The May 2019 update of the Visual Studio Code C\/C++ extension is now available to C\/C++ extension Insiders. This release includes many new features, including Visual Studio Code Remote Development extensions with C\/C++, an IntelliSense Configurations settings UI, and IntelliSense improvements.<\/p>\n","protected":false},"author":1305,"featured_media":24264,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,279,230,275],"tags":[8,140,233,36,276],"class_list":["post-24252","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-linux","category-new-feature","category-visual-studio-code","tag-announcement","tag-c","tag-cross-platform","tag-vc","tag-vscode"],"acf":[],"blog_post_summary":"<p>The May 2019 update of the Visual Studio Code C\/C++ extension is now available to C\/C++ extension Insiders. This release includes many new features, including Visual Studio Code Remote Development extensions with C\/C++, an IntelliSense Configurations settings UI, and IntelliSense improvements.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24252","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\/1305"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=24252"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24252\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/24264"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=24252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=24252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=24252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}