{"id":2584,"date":"2022-08-18T17:18:07","date_gmt":"2022-08-18T21:18:07","guid":{"rendered":"https:\/\/blog.wholetomato.com\/?p=2584"},"modified":"2022-11-09T12:05:23","modified_gmt":"2022-11-09T16:05:23","slug":"visual-assist-2022-322-3-now-available","status":"publish","type":"post","link":"https:\/\/stage.wholetomato.com\/blog\/visual-assist-2022-322-3-now-available\/","title":{"rendered":"Visual Assist 2022.3 now available"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Visual Assist 2022.3 is out and brings some exciting news for those working with graphics shaders! It also adds a pair of code inspection checks, as well as a new navigation option for Open File in Solution.<\/span><\/p>\n<h2><b>Visual Assist HLSL support<\/b><\/h2>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/direct3dhlsl\/dx-graphics-hlsl\"><span style=\"font-weight: 400;\">High-level shader language (HLSL)<\/span><\/a><span style=\"font-weight: 400;\">, while vaguely similar to C in syntax, is a distinct language and thus most native Visual Studio features may behave differently.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This may bring some frustration, and that\u00e2\u20ac\u2122s what VA intends to fix! We\u00e2\u20ac\u2122ve had some manual registry edits to let VA work with shaders, but that hasn\u00e2\u20ac\u2122t been well-known and we\u00e2\u20ac\u2122ve also wanted to improve our internal support before officially supporting the language.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Which is why we\u00e2\u20ac\u2122re excited to announce that <\/span><b>Visual Assist \u00e2\u20ac\u02dcs features will now work for HLSL, USH and USF files<\/b><span style=\"font-weight: 400;\">\u00e2\u20ac\u201dthe latter two being the Unreal Engine-specific shader files.\u00c2\u00a0 This includes:<\/span><\/p>\n<div class=\"mceTemp\"><\/div>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Code navigation features<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Syntax highlighting\u00c2\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Context-aware smart suggestions<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Automatic code generation prompts<\/span><\/li>\n<\/ul>\n<div id=\"attachment_2592\" style=\"width: 517px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?ssl=1\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2592\" data-attachment-id=\"2592\" data-permalink=\"https:\/\/stage.wholetomato.com\/blog\/visual-assist-2022-322-3-now-available\/va-2022-3-hlsl-support-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?fit=879%2C265&amp;ssl=1\" data-orig-size=\"879,265\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"VA 2022.3 HLSL Support 2\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Basic HLSL syntax  highlighted by Visual Assist.&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?fit=300%2C90&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?fit=879%2C265&amp;ssl=1\" class=\" wp-image-2592\" src=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?resize=507%2C153&#038;ssl=1\" alt=\"Visual Assist support HLSL\" width=\"507\" height=\"153\" srcset=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?w=879&amp;ssl=1 879w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?resize=300%2C90&amp;ssl=1 300w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?resize=768%2C232&amp;ssl=1 768w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support-2.png?resize=360%2C109&amp;ssl=1 360w\" sizes=\"(max-width: 507px) 100vw, 507px\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-2592\" class=\"wp-caption-text\">Basic HLSL syntax highlighted by Visual Assist.<\/p><\/div>\n<p><span style=\"font-weight: 400;\">Please note that support is still in early beta &#8211; marking \u00e2\u20ac\u02dcbeta\u00e2\u20ac\u2122 is standard practice for us for key new features &#8211; and that some complex features like refactoring may have some issues. We ask that when you work with HLSL and Visual Assist to <\/span><a href=\"mailto:support@wholetomato.com\"><span style=\"font-weight: 400;\">send feedback<\/span><\/a><span style=\"font-weight: 400;\"> our way to improve behavior.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We often focus on Unreal Engine, where VA is widely used, but HLSL files are used across the graphics industry and this feature is useful for all developers writing shaders, no matter the technology or engine you\u00e2\u20ac\u2122re using.<\/span><\/p>\n<div id=\"attachment_2598\" style=\"width: 492px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?ssl=1\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2598\" data-attachment-id=\"2598\" data-permalink=\"https:\/\/stage.wholetomato.com\/blog\/visual-assist-2022-322-3-now-available\/va-2022-3-hlsl-support\/\" data-orig-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?fit=647%2C489&amp;ssl=1\" data-orig-size=\"647,489\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"VA 2022.3 HLSL Support\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?fit=300%2C227&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?fit=647%2C489&amp;ssl=1\" class=\"wp-image-2598 \" src=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?resize=482%2C364&#038;ssl=1\" alt=\"VA enable HLSL support\" width=\"482\" height=\"364\" srcset=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?w=647&amp;ssl=1 647w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?resize=300%2C227&amp;ssl=1 300w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/VA-2022.3-HLSL-Support.png?resize=360%2C272&amp;ssl=1 360w\" sizes=\"(max-width: 482px) 100vw, 482px\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-2598\" class=\"wp-caption-text\">Note: Because it\u00e2\u20ac\u2122s in beta, shader file support is disabled by default. To enable it, go to Visual Assist Options \u00e2\u2020\u2019 Game Development \u00e2\u2020\u2019 Enable support for shader files<\/p><\/div>\n<h2 style=\"text-align: left;\"><b>Two new code inspection updates<\/b><\/h2>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">The <\/span><a href=\"https:\/\/releases.llvm.org\/10.0.0\/tools\/clang\/tools\/extra\/docs\/clang-tidy\/checks\/cppcoreguidelines-pro-type-member-init.html\"><span style=\"font-weight: 400;\">first check<\/span><\/a><span style=\"font-weight: 400;\"> involves flagging constructors with incomplete initialized fields. Constructors don\u00e2\u20ac\u2122t always initialize all fields. And some types don\u00e2\u20ac\u2122t have initialization that leaves them in a \u00e2\u20ac\u02dcgood\u00e2\u20ac\u2122 state &#8211; one example is a pointer type. This check flags constructors that leave fields of those types uninitialized.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">The <\/span><a href=\"https:\/\/releases.llvm.org\/10.0.0\/tools\/clang\/tools\/extra\/docs\/clang-tidy\/checks\/readability-string-compare.html\"><span style=\"font-weight: 400;\">second<\/span><\/a><span style=\"font-weight: 400;\"> checks for a common mistake when using std::string::<\/span><i><span style=\"font-weight: 400;\">compare<\/span><\/i><span style=\"font-weight: 400;\"> (or other string types like wstring) method to compare strings. To elaborate, the <\/span><i><span style=\"font-weight: 400;\">compare<\/span><\/i><span style=\"font-weight: 400;\"> method returns three possible values (instead of a simple boolean True or False) because its primary use is for sorting. If your code is using it where an equality or inequality check would work and be more readable or easier to understand, this check recommends it.<\/span><\/p>\n<div id=\"attachment_2603\" style=\"width: 254px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?ssl=1\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2603\" data-attachment-id=\"2603\" data-permalink=\"https:\/\/stage.wholetomato.com\/blog\/visual-assist-2022-322-3-now-available\/codeinspection2_screenshot\/\" data-orig-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?fit=573%2C435&amp;ssl=1\" data-orig-size=\"573,435\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"VA_Codeinspection2_screenshot\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Check for std::string::compare&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?fit=300%2C228&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?fit=573%2C435&amp;ssl=1\" class=\" wp-image-2603\" src=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?resize=244%2C185&#038;ssl=1\" alt=\"visual assist code inspection for std::string::compare\" width=\"244\" height=\"185\" srcset=\"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?w=573&amp;ssl=1 573w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?resize=300%2C228&amp;ssl=1 300w, https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/Codeinspection2_screenshot.png?resize=360%2C273&amp;ssl=1 360w\" sizes=\"(max-width: 244px) 100vw, 244px\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-2603\" class=\"wp-caption-text\">Check for std::string::compare<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">Access Visual Assist\u00e2\u20ac\u2122s code inspections by accessing the following: <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">(If you are not seeing options, please remember to <\/span><a href=\"https:\/\/docs.wholetomato.com\/default.asp?W760\"><span style=\"font-weight: 400;\">enable code inspections<\/span><\/a><span style=\"font-weight: 400;\">!)<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400; text-align: left;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Quick Actions and Refactorings menu ( <\/span><i><span style=\"font-weight: 400;\">Shift + Alt + Q<\/span><\/i><span style=\"font-weight: 400;\"> )\u00c2\u00a0<\/span><\/li>\n<li style=\"font-weight: 400; text-align: left;\" aria-level=\"1\"><em><span style=\"font-weight: 400;\">VAssistX <\/span><\/em><span style=\"font-weight: 400;\">\u00e2\u2020\u2019<\/span><span style=\"font-weight: 400;\"><em> Code Inspection (beta<\/em>) <\/span><span style=\"font-weight: 400;\">\u00e2\u2020\u2019 <\/span><em><span style=\"font-weight: 400;\">VA Code Inspection Results<\/span><\/em><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><b>New Linux-style navigation in Open File in Solution<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Open File in Solution will now accept forward slashes to filter certain directories. Adding a forward slash ( \/ or \\ ) before a string will filter all files not contained in a directory starting with the string. <\/span><span style=\"font-weight: 400;\">This is a productivity feature: on many keyboards \/ is easier to type than \\, and so several customers requested the forward-slash work. A small feature, but one we think shows our dedication to useful details.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">And for those who are unaware, Open File in Solution also accepts the following:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Negative filtering ( &#8211; )<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Multiple entries ( , )<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">BeginsWith filter ( .string)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">EndsWith filters ( string. )<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">You can learn more about available options in the <\/span><a href=\"https:\/\/docs.wholetomato.com\/default.asp?W193\"><span style=\"font-weight: 400;\">documentation<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2><b>Even more<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">There are several quality fixes as well, since every release we aim to make it better. For more information about the changes in this release, head on over to the <\/span><a href=\"https:\/\/support.wholetomato.com\/default.asp?W404\"><span style=\"font-weight: 400;\">documentation<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We hope you find the new inspections and shader support useful, and as always, happy coding!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Assist 2022.3 is out with new graphics shaders support, code inspection checks, and new navigation options<\/p>\n","protected":false},"author":213500340,"featured_media":2586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":""},"categories":[10673833],"tags":[2426,1453277,12004844,717708410],"class_list":["post-2584","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-build-announcements","tag-c","tag-unreal-engine","tag-visual-assist","tag-visual-studio-2022"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/stage.wholetomato.com\/blog\/wp-content\/uploads\/2022\/08\/WT-Banner-2022.3-Blog.png?fit=1200%2C628&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfhqii-FG","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/2584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/users\/213500340"}],"replies":[{"embeddable":true,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/comments?post=2584"}],"version-history":[{"count":25,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/2584\/revisions"}],"predecessor-version":[{"id":2635,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/2584\/revisions\/2635"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/media\/2586"}],"wp:attachment":[{"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/media?parent=2584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/categories?post=2584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stage.wholetomato.com\/blog\/wp-json\/wp\/v2\/tags?post=2584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}