{"id":24857,"date":"2019-08-14T21:03:55","date_gmt":"2019-08-14T21:03:55","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=24857"},"modified":"2019-08-14T21:09:56","modified_gmt":"2019-08-14T21:09:56","slug":"productivity-improvements-for-c-new-default-colorization-template-argument-filtering-in-call-stack-window-and-intellicode-on-by-default","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/productivity-improvements-for-c-new-default-colorization-template-argument-filtering-in-call-stack-window-and-intellicode-on-by-default\/","title":{"rendered":"Productivity Improvements for C++: New Default Colorization, Template Argument Filtering in Call Stack Window, and IntelliCode On-By-Default"},"content":{"rendered":"<h2>New Default Semantic Colorization<\/h2>\n<p>In <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\">Visual Studio 2019 version 16.3 Preview 2<\/a> we\u2019ve introduced a new default semantic colorization scheme for C++. For a long time, many of the default colors were simply black. However, colorization can help you quickly understand the structure of code at a glance. To take advantage of this, we\u2019ve created two new color schemes, and of course you can still customize your colors further by typing \u201cChange font\u201d in the Ctrl + Q search bar.<\/p>\n<p>Under Tools &gt; Options &gt; Text Editor &gt; C++ &gt; View &gt; Color Scheme you can now pick between three presets: Enhanced, Enhanced (Globals vs. Members), and Visual Studio 2017. By default, Enhanced will already be selected. Note that these color schemes change the Default color values, so if you have previously customized a color, you\u2019ll need to reset it to Default if you want the new scheme to take effect (see the \u201cCustomizing Individual Colors\u201d section at the bottom of this post).<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-24862\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/selectScheme.png\" alt=\"\" width=\"709\" height=\"485\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/selectScheme.png 709w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/selectScheme-300x205.png 300w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/p>\n<h3>Enhanced scheme<\/h3>\n<p>This is the new default color scheme. The following colors of this colorization differ from Visual Studio 2017:<\/p>\n<ul>\n<li>Functions<\/li>\n<li>Local variables<\/li>\n<li>Escape characters<\/li>\n<li>Keyword \u2013 control\n<ul>\n<li>This is a new classification for keywords related to control flow (if, else, for, return)<\/li>\n<\/ul>\n<\/li>\n<li>String escape characters<\/li>\n<li>Macros<\/li>\n<\/ul>\n<p>Below are of the Enhanced color scheme for the Light and Dark themes.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-24861\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedTheme.png\" alt=\"\" width=\"1641\" height=\"1020\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedTheme.png 1641w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedTheme-300x186.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedTheme-768x477.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedTheme-1024x636.png 1024w\" sizes=\"(max-width: 1641px) 100vw, 1641px\" \/><\/p>\n<h3>Enhanced (Globals vs. Members) Scheme<\/h3>\n<p>We also added a preset called \u201cEnhanced (Globals vs. Members)\u201d which is designed to emphasize the scope of your code. In this scheme, global functions and global variables share the same color, while member functions and fields share another color.<\/p>\n<p>For example, notice how \u201cpow\u201d now stands out as a global function.\n<img decoding=\"async\" class=\"alignnone size-full wp-image-24860\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedGlobalvsMembers.png\" alt=\"\" width=\"1636\" height=\"1020\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedGlobalvsMembers.png 1636w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedGlobalvsMembers-300x187.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedGlobalvsMembers-768x479.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/EnhancedGlobalvsMembers-1024x638.png 1024w\" sizes=\"(max-width: 1636px) 100vw, 1636px\" \/><\/p>\n<h3>Visual Studio 2017 Scheme<\/h3>\n<p>If you\u2019d like to revert to the Visual Studio 2017 scheme, select the \u201cVisual Studio 2017\u201d preset.<\/p>\n<h3>Customizing Individual Colors<\/h3>\n<p>We understand that colorization preferences are personal, so if you wish to customize any particular color, you can do so under Tools &gt; Options &gt; Environment &gt; Fonts and Colors.\n<img decoding=\"async\" class=\"alignnone size-full wp-image-24859\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/ColorEdit.png\" alt=\"\" width=\"710\" height=\"484\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/ColorEdit.png 710w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/ColorEdit-300x205.png 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/p>\n<p>To use all the default colors, make sure to click \u201cUse Defaults\u201d in the top right.<\/p>\n<h2>Template Argument Filtering in Call Stack Window<\/h2>\n<p>Previously, when using heavily to moderately templated types (including the STL), the Call Stack window quickly would become overwhelmed with template expansions to the point that became difficult to debug due to poor readability.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-24858\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack1.png\" alt=\"\" width=\"1839\" height=\"742\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack1.png 1839w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack1-300x121.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack1-768x310.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack1-1024x413.png 1024w\" sizes=\"(max-width: 1839px) 100vw, 1839px\" \/><\/p>\n<p>Now, you can right-click in the Call Stack Window and toggle \u201cShow Template Arguments\u201d to make room for other important information<span class=\"TextRun SCXW180750246 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW180750246 BCX0\">, and making it much more readable!<\/span><\/span><\/p>\n<h2><img decoding=\"async\" class=\"alignnone size-full wp-image-24863\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack2.png\" alt=\"\" width=\"1835\" height=\"782\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack2.png 1835w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack2-300x128.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack2-768x327.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/CallStack2-1024x436.png 1024w\" sizes=\"(max-width: 1835px) 100vw, 1835px\" \/><\/h2>\n<p>&nbsp;<\/p>\n<h2>IntelliCode On-By-Default<\/h2>\n<p>In Visual Studio 2019 version 16.2 we added C++ IntelliCode in-box. In version 16.3 Preview 2, we are taking that a step further and have turned the feature on-by-default. This means that, by default, you\u2019ll start to benefit from autocompletion results recommended by a machine-learned prediction model. The recommended results are surfaced at the top of the completion list and are prepended with stars:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-24864\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/intellicodeff.gif\" alt=\"\" width=\"566\" height=\"155\" \/><\/p>\n<p>For more details on IntelliCode, check out our other <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/?s=IntelliCode&amp;submit=%EE%9C%A1\">C++ IntelliCode blog posts<\/a>.<\/p>\n<h2>Talk to Us!<\/h2>\n<p>If you have feedback on any of these productivity features in Visual Studio, we would love to hear from you. We can be reached via the comments below or via email (visualcpp@microsoft.com). If you encounter other problems with Visual Studio or MSVC or have a\u00a0suggestion, you can use the\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio?view=vs-2019\">Report a Problem<\/a>\u00a0tool in Visual Studio or head over to\u00a0<a href=\"https:\/\/developercommunity.visualstudio.com\/spaces\/8\/index.html\">Visual Studio Developer Community<\/a>. You can also find us on Twitter\u00a0<a href=\"https:\/\/twitter.com\/visualc\">@VisualC<\/a>\u00a0and\u00a0follow me\u00a0<a href=\"https:\/\/twitter.com\/NickUhlenhuth\">@nickuhlenhuth<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>New Default Semantic Colorization In Visual Studio 2019 version 16.3 Preview 2 we\u2019ve introduced a new default semantic colorization scheme for C++. For a long time, many of the default colors were simply black. However, colorization can help you quickly understand the structure of code at a glance. To take advantage of this, we\u2019ve created [&hellip;]<\/p>\n","protected":false},"author":329,"featured_media":24861,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-24857","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus"],"acf":[],"blog_post_summary":"<p>New Default Semantic Colorization In Visual Studio 2019 version 16.3 Preview 2 we\u2019ve introduced a new default semantic colorization scheme for C++. For a long time, many of the default colors were simply black. However, colorization can help you quickly understand the structure of code at a glance. To take advantage of this, we\u2019ve created [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24857","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\/329"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=24857"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24857\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/24861"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=24857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=24857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=24857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}