Our second major release of 2021 includes a few modifications to existing features that we think will be helpful as you develop using Visual Assist.
Specifically if working with Unreal Engine projects you’ve seen some performance improvements over the last few releases. In this release, we went a step further by adding controls to how UE projects are handled. To learn more about how we work with UE files, take a look at our latest blog from David Millington. Much of our improvements were done by excluding UE4 plugin files from parsing. This speed increase is great, but what if you want those files parsed? Or, how would you know if they are not parsed? We enhanced the UE4 parsing by adding some intelligence to our parser. For example, if a UE4 plugin is EnabledByDefault or is referenced by your project it will be parsed. If your project does not reference these plugins, they won’t be parsed automatically, but we’ve added settings to allow more granular control. To assist you along the way, we’ve added a notification when browsing plugin source files to alert you that a file was not included in parsing.
- NEW VA will no longer parse Unreal Engine *.generated.h files. (case=119653, 119599, 119597)
- NEW Unreal Engine plugins that are EnabledByDefault or referenced by your project will now be parsed by default, with new settings to control behavior. (case=144467)

- NEW Added notification message when browsing an Unreal Engine plugin source file that has been excluded from parsing. (case=144352)
Another area of focus for our team in this release was the Modify Expression feature. This feature was added in 2021.1 in beta allowing users to invert any logical expression. We’ve had great feedback about this feature and want to make it more accessible. Thus we’ve added Modify Expression to the Alt+Shift+Q context menu. In this release, we also added an option to remove redundant parentheses. We hope to continue improving this feature and add options as interest grows.

- NEW Modify Expression will now appear in our Alt+Shift+Q context menu, and is no longer in beta. (case=144412)
- NEW Added option to remove redundant parentheses in Modify Expression. (case=144312)
Code Inspections saw some updates as well. We moved our engine to Clang 11.1.0 keeping CI up to date with the latest industry standard. This brought some inherent changes to the feature, but we added a few other checks as well with bugprone-suspicious-string-compare and bugprone-string-constructor.

- NEW Updated Code Inspections engine to Clang 11.1.0. (case=144482)
- NEW Added Code Inspection for bugprone-suspicious-string-compare clang checker. (case=142919)
- NEW Added Code Inspection for bugprone-string-constructor clang checker. (case=142917)
- NEW Record the start of namespaces, enums, classes and structs at the name vs open brace for improved navigation. (case=144376, 144375, 144374)
- NEW Added smart select support for C++20 co_yield and co_return. (case=144280)
- NEW List Methods in File (Alt+M) will now select symbol name on navigation. (case=144183)
Of course, this release included several bug fixes based on your feedback and requests since the last release. To see the full list of features and bug fixes check out the release notes here.
Bug Fixes
- Fix for low performance caused by excessive redrawing on 100hz+ refresh rate monitors. (case=142298)
- Fix for crash that could happen with many large symbols. (case=144417)
- Fix for Modify Expression highlighting reserved strings from VA Snippets. (case=144385)
- Fix for Modify Expression "!" removal and factoring sometimes giving incorrect results. (case=144365)
- Fix for Modify Expression not always opening first invocation. (case=144342)
- Fix for enabling Extend Multiline Comments not disabling new VS C++ feature. (case=144301)
- Fix for "in" being considered a keyword. The keyword was used in the old for each, in C++ extension by Microsoft. (case=144402)