Great stuff happens all the time.
Check out what we've released recently in our steady stream of new features, support for IDE revisions, and important bug fixes.
Requires maintenance through 2022.04.30
- NEW Unreal Engine 5 now officially supported
- NEW Unreal Engine Core Redirect -aware renaming of classes, structs and more
- NEW Sort Selected Lines, Spell Check and Insert Path now function in more file types by default
- NEW Added Code Inspection for performance-noexcept-move-constructor clang checker
- NEW Added Code Inspection for performance-move-const-arg clang checker
- NEW High DPI icons matching the new VS 2022 style
VA 2022.2 is here with new features and updates!
Firstly, our game developer users will be glad to hear that Visual Assist now officially supports Unreal Engine 5. We’ve also added a really useful productivity feature: renaming assets now supports Core Redirect. This is an Unreal feature that tracks old and new names to keep code and Blueprints that refer to the old name functioning, and now Visual Assist will add this data when renaming. This will allow you to rename more freely (an important part of code maintenance or code changes) without worrying about your game malfunctioning due to a missing redirect or needing to manually add the redirects.

And for those working in Visual Studio 2022, we’ve also spruced up VA’s icons with higher DPI to scale better and fit the IDE’s style changes.
Next up, a number of VA’s coding assistance features will now be turned on by default for more file types. This makes it easier to recognize places where the feature can be used. For example, sort selected lines and spell check now automatically work for plain text files.
Lastly, some code inspection improvements. The first checks for an easy-to-make mistake where std::move does nothing, where it should speed up copying of a type. The second check validates user defined move constructors to ensure they are properly marked noexcept, which would prevent them from being used.
Bug Fixes
- Fix for Ctrl + Backspace entering a character into VA View search boxes
- Fix for Inline Snippets to prevent surrounding the input placeholder when typing characters such as "("
- Fix for our exe installer to prevent a possible failed install loop
- Fix for Introduce Variable being offered in whitespace of comment blocks
- Fix for incorrect scope deduction with "using x" and inline namespaces
Plenty of thanks to everyone who submitted bug reports. It helps us keep track of fixes to include in each update. Reminder: if you have any comments, suggestions, or encounter any errors, please send us a message or start a thread on our user forums.
Requires maintenance through 2022.01.21
- NEW Support for C++20 style nested inline namespace definitions
- NEW Code inspection support for ReSharper clang-tidy skip directives
We’ve just released the first update for VAX for 2022! Download the latest version now to get access to new features and fixes.
This release was earlier than expected, but getting updates and fixes to our users as fast as possible is something we prioritize.
There are two new features in this update. The first one is syntax support for C++20’s nested inline namespace definitions. Secondly, our code inspection now fully recognizes the clang-tidy skip directives from ReSharper. This will be beneficial if you’ve added a lot of code check directives in your projects and are transitioning to VAX.
We’ve also fixed a few bugs based on reports and requests. For more information about the changes, head to the Whole Tomato blog.
And as always, if you have any comments, suggestions, or encounter any errors, please send us a message at support@wholetomato.com.

Requires maintenance through 2021.11.17
- NEW Official support for Visual Studio 2022
- UPDATE Code Inspection engine updated to LLVM/Clang version 13
- NEW Added a new "Create Implementation" snippet for the _Validate version of Unreal Engine UNFUNCTIONs
As of November 22, Visual Assist has full support for Visual Studio 2022. To enjoy the benefits of the latest release, you can download the update here.
The VAX team has always been focused on trying to give you the best possible version of Visual Assist as fast as possible. The last few months are our testament to that commitment, and we are happy to share the progress of our work on VS 2022, starting with Preview 3, and 5, 6, and 7/RC, and now with support for the official VS2022 release. It shouldn’t come as a surprise that we consider this release a delightful milestone for Visual Assist. But more importantly, we hope you find it useful as well.
However, there are also useful updates and fixes that are beneficial for users who decide not to migrate to VS 2022 yet. For instance, all users can now enjoy the benefits of the LLVM/Clang version 13, plus other useful changes and fixes. A full list can be found in the official documentation.
For further reading or news regarding future releases, you can always check the team blog for any updates. The team is always looking for ways to improve the software, so any feedback would be more than welcome.


Requires maintenance through 2021.10.28
- NEW Support for new External Include Directories property in VS 2022
- NEW Code Inspection engine updated to LLVM/Clang version 12.0.1
- NEW Support for Visual Studio 2022 Preview 7 / RC 3
In this update, we wanted to step back from VS 2022 and instead focus on a well-rounded update for the entirety of Visual Assist and all its users.
- One notable addition is the External Include Directory feature that helps with parsing files outside of normal path referencing.
- There are also improvements to our code inspection feature that make it more accurate, more reliable, and in line with the latest LLVM/Clang version.
- We’ve also added support for VS 2022 Preview to avoid triggering hangs present in previous previews. Our installer only calls out Preview 6, but that is working properly now, along with everything else.
Apart from those improvements, this update had a lot of housekeeping. Hopefully, this will address many of the performance-related issues, especially with Visual Studio 2019.
For example, you can expect the UI to be a lot more snappy and intuitive when using Find References. We also significantly reduced project load times when working with Unreal Engine projects. The Modify Expression is a relatively new addition, but we’ve also ironed out some unintended clunkiness. Last, minor adjustments were made to improve support for features that came with the C++11 release.
For an in-depth look at the changes we’ve made, head over to the release notes.
If you want to know more about the update or what the team is working on for future releases, you can go to the team blog. The Visual Assist team is always looking to improve the software, so if you have any feedback or suggestions, we highly encourage you to share them with us here.

Requires maintenance through 2021.07.28
If you’re ready to move to Visual Studio 2022, so are we! In 2021.3 we introduced initial beta support for Preview 2 (and it’s worth using with Preview 3 as well - see our blog detailing the changes.). This represents a big leap for us through the move to the 64-bit architecture. As the VS IDE becomes more stable over the next few previews and releases we hope to release more improvements to take advantage of the new architecture. Much of our work in this release was done to move existing features to VS 2022, but for future releases we hope to add new features that were previously not possible. We are already seeing performance gains even in our current beta support and are excited to see this grow.
A huge thanks to our developers for making this happen. From the outside it might not seem like a big effort, but trust me, it was: our team went through bug after bug and feature after feature to verify compatibility, including checking if each feature was even still necessary, plus of course all the work to adapt to the new architecture and APIs. We’re really happy that we were able to get this out the door and welcome your feedback.
To take that a step further, we are always looking for the next new feature. Our strategy has been to keep our product simple and working smoothly, but if there’s something you’d like to see, let us know!

On top of Visual Studio 2022 Preview 2 support, we’ve also updated our Code Inspection engine to LLVM/Clang 12. While improvements may be modest, we will continue to keep up with the latest Clang.
- NEW 64-bit architecture exclusive to Visual Studio 2022.
- NEW Code Inspection engine updated to LLVM/Clang version 12. (case=145716)
Bug Fixes
- Fix for regression where VA Hashtags from unloaded solutions may appear in the current solution. (case=144570)
- Fix for floating tomato button sometimes getting into a state where it does not disappear. (case=141400)
- Fix for Source Links sometimes failing to load on startup of Visual Studio. (case=145899)
- Fix for a Source Links visual glitch that may happen when adorning text alongside CodeLens. (case=144170)
- Fix for Keyboard Shortcuts dialog documentation links not opening in a web browser. (case=145700)
To see the full list of features and bug fixes check out the release notes here and don’t forget to download.
Requires maintenance through 2021.04.23
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)
Requires maintenance through 2021.01.26
We’re excited about that 2020 is behind us for many reasons. To celebrate that 2021 is here, we’re updating our naming convention to make it easier for you to understand what version you’re on and when you’re ready for an update. So, welcome to 2021.1!! Here are a few of the new features we’ve added. Stay tuned for a detailed behind the scenes blog on the performance gains we’re seeing.
- NEW Faster initial Unreal Engine parse.
By excluding engine plugins, which are not needed when writing game code, the initial parse is now more than twice as fast. If you are an engine developer, you can parse all files by navigating to the VA Options dialog, Unreal Engine tab and checking “Index plugins”. Indexing plugins will be disabled by default and you’ll start seeing the speed increase immediately.
- NEW VA Modify Expression feature.
VA Modify Expression allows you to take any logical statement and invert it, apply De Morgan transforms and more. We plan to add more to this feature soon and would love your feedback.

- NEW Code Inspections for performance-inefficient-vector-operation and performance-faster-string-find to help optimize your use of vectors and strings.

- NEW If you are using the latest additions to C++ you will notice some new support. We now parse C++20 module (ixx and cppm) files, and our parser and features understand coroutine keywords.
See more features and bug fixes here and stay tuned for more info on our next release 2021.2.
Requires maintenance through 2020.10.28
What’s New? Everything!
Build 2393 is the culmination of many months of toil behind the scenes to make your experience the best it can be while continuing to bring all the great features you know and (we hope) love. I’m sure you’ve noticed how large your project files have become in recent years. Whether you’re developing a new game or creating tools for number crunchers, data is bigger and codebases are more complex. Add a team of developers working on the same projects and you’re going to have bottlenecks.
Our developers realize this growth in file sizes and the strain it puts on Visual Studio. With build 2393, we’ve pulled more parsed data out of process, freeing up more usable memory and opening the bottle, so to speak. We’re not done with this effort as our team keeps finding new ways to lessen the load on Visual Studio and your machine. But, this release is a milestone in the sheer amount of memory saved.
No matter how we try to spin this, it is an understatement to the work that has gone into this release.
And of course they didn’t stop here. We’ve updated LLVM Clang to 11.0.0; added suggestions for UE4 macros; added code inspection for performance-inefficient-algorithm clang checker; and even refreshed our installer icon!
Requires maintenance through 2020.06.16
Build 2380 brings a few new features along with some requested bug fixes. Highlights below and full release notes here. To take advantage of these features software maintenance will need to be current through 2020.6.16. Enjoy!
- NEW Added three new Code Inspections to remove unnecessary code:
Remove redundant std::string initializations.
Remove redundant calls to std::string::c_str() and data().
Remove redundant initializations in class initializer lists.

- NEW Create Implementation and other refactorings no longer add a namespace if a using directive for the namespace is in the target source file.
- NEW Faster parse when loading a solution that's been heavily modified outside of Visual Studio.
Requires maintenance through 2020.05.09
- NEW Added Code Inspection for modernize-deprecrated-headers clang checker.
Some headers from C library were deprecated in C++ and are no longer welcome in C++ codebases. This check replaces C standard library headers with their C++ alternatives and removes redundant ones.
- NEW Added MakeShared/MakeUnique Smart Suggestions for UE4 smart pointer initialization.


- NEW Change Signature on UE4 RPC/BlueprintNative methods update the implementations.

- NEW Reduced memory required in very large solutions.
You’re not the only one that’s noticed larger solutions causing memory exhaustion. We’re doing our part to reduce our memory consumption.
- NEW Code Inspection engine updated to LLVM/Clang version 10.
Again, keeping up with the times and updating as we’re able. While this won’t impact you much today, this sets us up for more to come in the future.
Bug Fixes
- [VS2019] Fixed highlighting of solution file paths in build output window. (case=142196)
- Fix for poor performance (UI thread multi-second unresponsiveness) switching between files when many editors open (regression in build 2366). (case=142032) 16891
- Fixed handling of include directories in UE4.25 projects. (case=142235)
- [VS2019] Fix for strange screen artifacts when using multiple monitors, with independent DPI settings, after opening the VA Keyboard Shortcuts and Snippet Editor dialogs. (case=142179)
- [VS2019] Improved VA Options dialog display when using multiple monitors with independent DPI settings. (case=137636) 16566
- [VS2019] Continued improvement of support for per-monitor DPI in VA dialogs and toolwindows. (case=137579, case=141344, case=141642) 16730, 16564. More improvements expected in next update as well. Please contact support@wholetomato.com if you experience behavior that is worse than in build 2366.
- Invocation of Find References while a previous invocation is still running, will now stop the previous run and start a new search. (case=141731)
- Multiple Encapsulate Field fixes for infrequently encountered edge-cases. (case=141952, case=141953, case=142028)
- Fix missing expand/collapse all nodes commands in context menu of Find References results window when Show Projects option is disabled. (case=142050) 16857
- Runtime compatibility warning added for IncrediBuild agent version 1.5.0.10. (case=141861) 16854, 16662, 16680
Requires maintenance through 2019.11.07
- Major Code Inspection update.
Under the hood the latest Clang technology has been incorporated, expanding our potential as we keep pace with the latest developments.
Code Inspection checkers are now more configurable. Further customize when Visual Assist alerts you of potential improvements.

Code Inspection UI is now searchable, and exposes more advanced information.

Code Inspections can now be selectively disabled in sections of your code using comments. If you don't want to change a section of code, you can choose to not be alerted of potential improvements without disabling checkers globally.

- The "virtual" keyword can now be omitted when implementing virtual methods. Many developers choose to omit the virtual keyword, and now Visual Assist can too.

- C# completion and suggestion listboxes have returned! Enable in the options dialog, under Suggestions.

- New UI allows fine grained control of the resources Visual Assist will use when parsing. Reduce the impact of the initial parse of a new solution, especially in extremely large solutions where parsing may take several minutes. (Unreal Engine developers take note.)

Bug Fixes
- [VS2019] Fix for loss of VA functionality (and potential crash) that occurs in recent VS2019 updates when the Preview Tab is enabled. (case=141374) 16742, 16740
- [VS2019] Enabled/restored support for completion and suggestion listboxes in C#. (case=137431) 16590, 16625, 16644, 16675
- Rename References and Rename Files close files during their operation if more than 50 have to be opened (user is prompted to continue or cancel before closing files). (case=116948) 15227
- Fixed files missing from Open File in Solution dialog when "Show only files in the current solution" is unchecked (for some cmake scenarios). (case=141331)
- Fixed problem with Add Include that in some cases caused generation of relative path with excessive directory traversal operators (../..). (case=119677)
- [VS2017+] Fixed problem in which VA editor colors reverted to previous theme after changing themes and then opening and closing the VA Options dialog. (case=140632)
- Fixed placement of generated code when executing Extract Method in a lambda of an inline class method. (case=140886)
- [UE4] Dot to arrow conversion is no longer active in hlsl/hlsli/usf/ush files. (case=141003)
- [UE4] Fixed case in which Goto might cause stack overflow crash. (case=141444)
- Fixed crash upon right-click of serial number edit control in registration dialog that appears during startup. (case=141409)
- [VS2010] Fixed crash during exit after having used the debugger. (case=141365)
- Fix for flicker of listbox border while scrolling. (case=141179)
- Fix for hang during initialization of Code Inspection. (case=141230)
- Fix for issue where VA prevented exit of VS process when initiated during load of solution. (case=141007)
- Spell check no longer underlines printf format size specifiers %zu and %llu. (case=67155, case=141164) 10749, 16606
- Fixed case in which Quick Info creation might cause a hang (regression in build 2341.0). (case=141330)
Requires maintenance through 2019.04.19
- Added support for Visual Studio 16.1 Preview 1, the first version of Visual Studio that requires extensions to load asynchronously.

Visual Assist is completely loaded if it responds to its commands in an editor window, or when notice appears in the status bar.

Visual Assist is not completely loaded if its toolbar begins with disabled icons, its tool windows are empty, or it fails to responds to its commands in an editor window.


- Added command to insert a file path into the active document (Alt+X, T, P). Learn more.

Bug Fixes
- [VS2019] VA Step Filter now supports the new `load debug symbols in external process` feature. (case=132670)
- Fix for coloring, in dialogs and tool windows, of identifiers that contain non-ASCII characters. (case=118872)
- Fix for Add Forward Declaration producing invalid namespace in some circumstances. (case=137679)
- Fix for conflict with version of AvalonEdit assembly installed by NVidia NSight. (case=132900, case=137033)
- Fix for crash while debugging in some circumstances when the `Child Process Debugging Tool` extension is active. (case=137833)
- Fix for Implement Virtual Methods not being offered on specified base class if defined class is declared final. (case=119831)
- Fix for Implement Virtual Methods not being offered in some circumstances involving macros. (case=117943)
- Fix for incorrect VA Snippet placeholder handling in some circumstances (regression in 2301). (case=137542)
- [VS2010-VS2013] Fix for flicker of .exe installer when it downgrades to lower versions of .vsix to target IDE versions below VS2015. (case=138045)
- [pre-VS2010] Fix for crash at exit in some circumstances. (case=138040)
- [VC6 (officially unsupported)] Fix for failure of registration dialog to load. (case=137664)
Requires maintenance through 2019.02.17
- Added support for a new licensing system that 1) includes a customer portal to track new licenses and their renewals of software maintenance, and 2) simplifies the adding of licensees to a team with the new licenses.
Register a new license of Visual Assist using VAssistX | Help | Register.
Learn more.

If you have a legacy, two-line activation key, enter it using a link in the bottom of the dialog that opens.

Requires maintenance through 2018.09.21
- Find References Results can be collapsed to level of project or file node via commands in the context menu of the window. Learn more.

-
VA Hashtags can be unhidden selectively. (Requires hidden tags to be shown dimmed—set in the context menu of the VA Hashtags tool window.)

Learn more about hiding and unhiding of VA Hashtags.
- Persistent filter in Open-File-in-Solution dialog can be toggled with Ctrl+R. Learn more about persistent filtering.

-
Path preference for Add Include Directive (Shift+Alt+Q) can now be specified in the options dialog of Visual Assist.

-
Add Include Directive (Shift+Alt+Q) better places #includes when a file has an #ifndef guard.
- Improved code generation for Unreal Engine 4 (UE4).
Bug Fixes
- [VS2017 15.8+] Fixed coloring of identifier definitions in C# broken by change in editor behavior. (case=118439)
- [VS2017 15.8+] VA no longer interferes with Multi-Caret Edit mode. (case=117499)
- Fixed support of C# interpolated strings. (case=96559, case=98335)
- Fixed support of C# inline declared out variables. (case=116073)
- Fixed support of C# expression-bodied properties and methods. (case=116299)
- Improved support of C++14/17 [[attributes]]. (case=112204)
- Forward declared class/struct in method parameter list no longer breaks VA Outline or Methods in File list. (case=66673)
- Fixed case in which type deduction in 'range-based for' failed on a dereferenced smart pointer. (case=97149)
- Fixed case in which a method with parameter list that contains the word enum is not listed in Methods In File. (case=114839)
- Fixed case in which Change Signature was not available for functions with certain template arguments. (case=114966)
- Fixed Create Implementation on static class member that is an instance of a class template. (case=115411)
- Fixed case in which parser inappropriately resolved overloaded operator-> on an instance variable. (case=117758)
- [Windows Insider Build] Added workaround for backspace handling in Methods In File filter edit control due to change in Windows behavior. (case=118007)
- Fix for exception reported as caught by VS when git source control diff command is executed. (case=118858)
- Fix for VA Step Filter failing to work after initial debug session when 'Clear list on start of debugging' is unchecked. (case=118156)
- [VS2017] Fix for VA Step Filter no longer stepping over some shared_ptr methods (due to them being moved to _Ptr_base in a VS2017 update). (case=119182)
- Fixed display of directories list in VA Options dialog at 200% scaling. (case=112033)
- Increased width of .exe installer status window to fit text that is displayed when setup is waiting for VS processes to exit. (case=118044)
Requires maintenance through 2018.08.02
-
Source Links plug-in for Jira issue navigation defaults to number value, which improves finding of links in comments.

Change the configuration manually if the Jira plug-in was installed by a previous build of Visual Assist. Learn more.
Bug Fixes
- Fix for crash at startup in some scenarios when Recommended Keybindings dialog would automatically appear (regression in 2283). (case=118079)
- Fixed alt+mouse block selection (regression in 2283, reverted changes for case=116799). (case=118011)
Requires maintenance through 2018.07.20
-
Source Links plug-in for Jira issue navigation now allows a Jira project key to be the keyword for links. For example, if a Jira project key is "JTP" and comments contain references such at "JTP-1", specify "JTP" as keyword and "-" as suffix in the link definition.

Then, specify "JTP" or "$(Keyword) in the configuration dialog for the plug-in.

Hover over issues that follow a plug-in keyword and suffix to view information about respective issues.

Double-click a link to open an issue in a browser window. Learn more.
Requires maintenance through 2018.07.12
- The Open File in Solution (OFIS) dialog now includes a second edit field whose value persists to all searches. Open the persistent filter using the context menu of the OFIS dialog.

Enter filtering strings to persist to all searches. For example, enter "-.moc_" to hide Qt files that begin "moc_".

If you develop with Unreal Engine 4 (UE4), hide engine source by filtering its root directory.

If you hide the second edit field, its filters continue to be applied to all searches. Empty the edit field to restore default behavior. Learn more.
- Source Links includes a new plug-in, Jira issue navigation, that previews issues stored on a Jira server. Enable and configure the plug-in in the the options dialog for Visual Assist.

Hover over issues that follow a plug-in keyword, "jira" by default, to view information about respective issues.

Double-click a link to open an issue in a browser window. Learn more.
- Source Links now allows a choice of mouse actions to open links, and whether link tooltips should identify available actions. Find the related drop-down and checkbox on the Source Links page in the options dialog for Visual Assist.

- Source Links tooltips populated by the File Viewer plug-in now include thumbnails from files that contain shell-supported thumbnails.

- Settings that pertain to a solution can now be stored in $(SOLUTIONDIR)\.va\ where they can be easily shared. Rules for hiding VA Hashtags are written to .va\user\, and can be copied manually to .va\shared\ for use by other users of Visual Assist. The file that contains overrides for the parsers in Visual Assist, va_stdafx.h, can be placed in .va\shared\. And, solution-specific filters for the VA Step Filter can be written to .va\shared, via setting in options dialog for Visual Assist, also for use by all users.

- A new code-generation command, Add Forward Declaration, is available in headers for pointer and reference members added to class definitions and method declarations. Access the command from the Quick Action and Refactoring menu (Shift+Alt+Q).

The forward declaration is added at a sensible location. Learn more.

- New Code Inspection:
- Use shuffle() instead of random_shuffle()

Learn about Code Inspection.
- Added symbol names to titles of cloned results windows so multiple windows are easily differentiated.

Learn to clone results of Find References.
- Added Quick Info to tooltips in Find Symbol in Solution (Shift+Alt+S) dialog.

- Added an option to conserve battery power when Code Inspection is enabled. (When unchecked and on battery power, reparse manually via the VA Code Inspection Results tool window.)

- Added registry setting to automatically reload files opened using paths that contain forward slashes. Learn more.
- Improved code-generation and navigation for Unreal Engine 4 (UE4).
Bug Fixes
- Reduced memory required to parse very large files containing huge numbers of macros. (case=115155)
- Fix for incomplete code transformation of Quick Fix for copy construction body can be replaced with =default. (case=115351)
- Fix for undeleted .pch files in VA temp directory when Code Inspection is enabled (regression in 2248). (case=116765)
- Fix for failure to apply multiple Quick Fixes if more than one requires insertion of a #include directive. (case=116405)
- [VS2017] Fix for failure to observe solution reload events. (case=116501)
- Fix for incorrect contents of OFIS and FSIS dialogs after switching between git branches (not yet fixed for folder mode). (case=116673)
- Fix for incorrect contents of FSIS dialog after load of solution in which files were deleted from projects outside of Visual Studio. (case=116689)
- Fix for odd template items listed in Find Symbol in Solution dialog. (case=9666)
- .md and .markdown files are now recognized as plain text files. (case=116064)
- Fixed parsing of classes qualified as both sealed and abstract. (case=115473)
- [VS2015+] Fixed override of ctrl+click and alt+click mouse command handling. (case=116799)
- Fix for Spell Check failing to properly ignore word followed by a single quote. (case=116759)
- Fix for inappropriate display of message box when opening MSSQL data view documents. (case=116561)
- Caret position is now restored after VA reloads a file opened with a path containing forward slashes. (case=116840)
- [VS2015+] Fix for failure of Step Filter window to switch from read-only to read-write until second solution load (regression in 2270). (case=117139)
- [VS2017] Fix for Code Inspection failure to honor C++17 compiler settings in some cases. (case=117208)
- [VS2017 15.7+] Reduced flicker of Quick Info tooltips. (case=117209)
- Fixed resource leak. (case=117566)
- Fix for maintenance renewal dialog no longer being displayed (regression in 2114). (case=117498)
- Fix for crash when inappropriately invoking Encapsulate Field in a namespace. (case=117548)
Requires maintenance through 2018.04.30
- Source Links includes a new plug-in, File Viewer, that previews the content of files whose paths appear in source comments. Preview-able formats include HTML, XAML, RTF, text, and image formats such as png and jpg.

File Viewer can be enabled and configured in the options dialog of Visual Assist. Learn more.

- Find References now reports a count of references hidden from the results.

Use single-letter toggles (D, S, R, and M) or the context menu of a results window to control types of references displayed. Learn more.

- GoTo Related (Shift+Alt+G) or Quick Action (Shift+Alt+Q) from an #include directive now opens a menu with actions pertinent to a header, including Open Containing Folder.

- Improved results of Code Inspection in header files.
- Improved support for Unreal Engine (UE4), and added a UE4-specific page to the options dialog of Visual Assist.

- Reduced memory footprint by moving Code Inspection to a separate process.
Bug Fixes
- Fixed undo of Change Signature to require only a single invocation of the command across all files modified. (case=115689)
- [VS2015] Fix for period of unresponsiveness while attempting to display large Quick Info tooltip. (case=115590)
- Fixed cases where Introduce Variable, Add/Remove Braces, Create Missing Cases, and Create From Usage either were not available or produced incorrect results in overloaded method implementations. (case=114731, case=114730, case=90190, case=86791)
- Fix for failure to resolve overloaded method during Goto (Alt+G). (case=114785)
- Fix for VA Hashtags's not being removed from tool window when file is deleted outside of Visual Studio. (case=114055)
- Fixed Code Inspection crash. (case=115487)
- Fix for inappropriate display of message box when opening "mssql::*" documents. (case=115635)
- Fix for platform change in VA Options dialog's not being properly committed (regression in 2258.5). (case=116077)
Requires maintenance through 2017.12.16
- Added three refactoring commands, all available via Shift+Alt+Q from local variables:
Convert Instance to Pointer

Convert Pointer to Instance

Simplify Instance Declaration


-
Added support for Code Inspection in Visual Studio 2017 15.5.
- Added Code Inspections:
- Range-based loop variable can be a const reference
- Local variable can be a const reference
- Prefer transparent functor
- Improved support for Unreal Engine 4 (UE4) with specifier completion, better coloring, and italics.

-
Improved support for CMake solutions.
- Increased speed of opening first editor instance on Windows 10 Version 1709 (Fall Creators Update).
- Find References now includes calls to CreateInstance and CoCreateInstance in creation hits.

Learn more.
- Added setting to enable/disable Code Inspection while debugging. (Setting is disabled by default.)

- Visual Assist now loads va_stdafx.h for all solutions if the header is in AppData\Roaming\VisualAssist\misc.
Bug Fixes
- Fix for crash when pasting lambda into source when Code Inspection enabled. (case=112413)
- [V2017 15.6] Fix for failure to properly parse std::shared_ptr. (case=112697)
- Fix for failure of Add Missing Case Statements to work on reference to enum type. (case=109635)
- Fix for overload resolution during Alt+g failing due to const variable declaration. (case=109837)
- Open/closed state of nodes in VA Hashtags toolwindow now properly restored when hashtag instances are deleted (fixing hashtag navigation). (case=112118)
- Use of [[deprecated]] no longer breaks dot to arrow correction. (case=112232)
- Changed behavior of Auto-Extend Multi-Line Comments to better accommodate javadoc comment style. (case=111445)
- Fix for Add Include using incorrect path when solution contains a project that is located in the Windows Program Files directory. (case=111530)
- [VS2010+] Fix for failure of snippet editor to restore to correct size and position in high DPI environments. (case=110809)
- Fix for Code Inspection reporting an issue that was not supported by VA. (case=111869)
- VA no longer colors parameters in Unreal Engine 4 U* macro invocations. (case=109053)
- Fix for Add Include using incorrect directive token in some cases. (case=111997)
- Fix for failure of all snippets with identical shortcuts to be suggested in some cases. (case=111945)
- Improved performance of load of Open File in Solution dialog when show all files in solution directories is enabled. (case=111851)
- Fix some cases in which the default selection was not visible in completion listboxes. (case=111562, case 111563)
- Fix for VA Memory View not copying all selected rows. (case=111909)
- Fix for scaling of icons in certain message boxes in high DPI environments. (case=110376)
- Fix for errant set of VCINSTALLDIR environment variable (regression in 2231). (case=112001)
- Fixes for crashes and hangs identified via Windows Error Reporting. (case=111709, case=112180, case=112131)
Requires maintenance through 2017.09.25
- Added a Source Links plug-in that turns website addresses and URLs in comment blocks into hyperlinks that open in one's external, default browser. Learn more.

- New Code Inspections:
- Integer literal can be replaced with 'true' or 'false'
- Reduce container capacity with shrink_to_fit() instead of copy and swap
- Allow customization of several code inspections. Access individual settings via the gear icons in the options dialog for Visual Assist.

- Improved support for Unreal Engine 4 (UE4) by including Unreal markup in Quick Info and offering Smart Suggestions for UPARAM().
- Added support for lightweight solution load of C/C++ projects in Visual Studio 2017 15.3. In the Open-File-in-Solution dialog, files in lightweight-loaded projects are listed as deferred.

Visual Assist parses files in deferred projects as the projects, or their containing solutions, are loaded.
- Added settings related to GoTo to the options dialog of Visual Assist.

Learn to navigate with GoTo Implementation (Alt+G) and GoTo Related (Shift+Alt+G).
- Added settings related to VA Hashtags to the options dialog of Visual Assist.

Learn to manage tasks and set bookmarks with VA Hashtags.
Bug Fixes
- Added setting to control handling of * by `variable can be declared auto` Code Inspection. (case=108642)
- Added settings to control `virtual` keyword handling and destructor handling by `overriding function without override specifier` Code Inspection. (case=111123, case=103139)
- Items on Code Inspection page of VA Options dialog support multiple selection and improved keyboard navigation. (case=110289)
- Code Inspection no longer inappropriately offers to replace constructor with = default. (case=109725)
- Fix for Code Inspection failure when a file #includes a UTF16/UCS2 encoded file that is not open in VS. (case=110708)
- Spellcheck no longer flags VA Hashtags. (case=91351)
- Goto and Goto Related support VA Hashtags that contain hyphen characters (when the VA Hashtag hyphen setting is enabled). (case=91506, case=109520)
- Source Links now supported in the VS peek windows. (case=110534)
- Fix for touch-hold gesture invoking context menu on touchscreens. (case=111020)
- Improved Goto behavior on symbols #included into namespace scope. (case=111049)
- Fix for VA interference with Edit.CycleClipboardRing in text files in which VA is not active. (case=110652)
- Fix for VA comment commands being invoked during XAML source find of / or * in selection. (case=110643)
- Fix for C# var keyword colored incorrectly in VA windows. (case=110517)
- VA no longer inappropriately offers parameter list suggestions to macro invocations. (case=109347)
- Fixed cases in which use of some macros before class definitions caused VA to not underline invalid symbols within the class definition. (case=109637)
- Fix for Code Inspection failing to parse listed include directories when specified with quotes. (case=110439)
- Fixes for crashes identified via Windows Error Reporting. (case=110696, case=110697, case=110698, case=110699, case=111288)
Requires maintenance through 2017.06.15
- Source Links, previously a standalone extension, is now integrated into Visual Assist. Source Links connects comment substrings to external applications and websites, such as bug trackers, case managers, documentation, and source code control systems.

Learn more.
- Open File in Solution (Shift+Alt+O) dialog now allows inclusion of files in solution directories that are not explicitly part of a solution, and inclusion of files otherwise hidden by extension.

- New Code Inspections:
- Check emptiness with empty() instead of size()
- Redundant get() on smart pointer
- Redundant 'return' or 'continue' statement
- Reset unique_ptr with '= nullptr' instead of delete 'p.release()'

Learn about Code Inspection.
- Find References now designates class creation/construction hits.

- By default, symbols declared within \Program Files are now always considered stable, even if the containing files are part of a solution. Such symbols are therefore excluded from the Find Symbol (Shift+Alt+S) dialog, and can appear in italics. VA Hashtags in the files are also excluded from the VA Hashtags tool window.
Files in \Program Files that are part of a solution still appear in the Open File in Solution (Shift+Alt+O) dialog, but as both Solution Files and Shared System Files. Exclude the files from the dialog using the filter "-\Program".
Users with a binary distribution of Unreal Engine 4 can now see stable engine symbols in italics if the engine distribution was installled to \Program Files.

Exclude engine files from the Shift+Alt+O dialog with the filter "-\UE_4".
- Registry setting is available to run Visual Assist parsing threads at low priority.
Learn more.
Bug Fixes
- [VS2012+] Changing the Platform Toolset of a project no longer requires solution reload for VA to see changes of the include paths. (case=61645)
- [VS2017 15.3] Enabled solution event change notifications that were disabled in VS2017 15.0-15.2 for case=103990; OFIS now reflects changes to solution without needing solution reload. (case=104119, case=108535)
- The Use Using and make_unique Code Inspections are now disabled by default in VS2010-VS2012. (case=108382, case=108490)
- Fix for failure of Code Inspection to use appropriate settings in some cases. (case=108533, case=108493)
- Fixed case in which Code Inspections were not flagged in some files opened during solution load. (case=103667)
- Fixed case in which Introduce Variable improperly attempted to replace inappropriate source. (case=102782)
- Fix for highlighting of VA Hashtags being inadvertently dependent upon Highlight References. (case=108516)
- Fixes for various Code Inspection crashes. (case=106018, case=108197, case=108267, case=108466, case=108599, case=108804, case=108812)
- Fixes for crashes identified via Windows Error Reporting. (case=108196, case=108623, case=108626, case=108627)
Requires maintenance through 2017.04.26
- The Open File in Solution dialog can now be interrupted without the dialog's closing.

Press Esc or click Stop to interrupt loading of system files. (Interrupting does not affect the loading of solution files.)

- Added a Code Inspection to convert unadorned, ASCII strings with escaped characters to raw string literals.

Bug Fixes
- Code Inspection now supported in Shared Items Projects. (case=104861)
- Code Inspection honors forced include compilation flag. (case=105288)
- Code Inspection now available in the Visual Studio Preview Tab. (case=104056)
- Fix for Encapsulate Field incorrectly handling some binary operators. (case=103821)
- Fix for "Replace with emplace_back" Code Inspection improperly handling some arguments. (case=104506)
- Code Inspection no longer flags "Destructor body can be replaced with '= default'" in VC++ toolsets earlier than VS2013. (case=105286)
- Fix for bad formatting after convert to range-based-for. (case=103137)
- Convert to range-based-for now preserves iterator type. (case=104834)
- Fix for incorrect comment displayed in VA Hashtags window for some hashtag instances after execution of Goto Related on an instance of the hashtag. (case=105593)
- Fix for inconsistent trigger range on make_unique and make_shared code inspections. (case=105492)
- Variables created by conversion to range-based-for whose names are based on symbols with the prefix m_ have the prefix stripped from the new name. (case=104910)
- Fix for incorrect type deduction by Introduce Variable on some template functions. (case=102781)
- Fix for pause caused by Code Inspection when opening files in some projects. (case=105153)
- Improved response of group selection in Code Inspection Results window. (case=105594)
- VA Step Filter now stores file paths relative to solution so that filter configuration can branch with source code. (case=97565)
- Symbols located via Vcpkg are rendered in italic (if the italic option is set) and files are listed as [Vcpkg] in OFIS (when 'Show only files...' is unchecked). (case=100271)
- Adding registry setting to disable #include completion (binary value named IncludeDirectiveCompletionLists). (case=105000)
- Fix for poor response while typing #include directives in project with large number of include directories. (case=105151)
- Fix for failure of double-click on file in VA Step Filter to go to expected line. (case=105155)
- Fix for editor extension exception reported by Visual Studio after install when SourceLinks was also installed. (case=104914)
- Fixes for various Code Inspection crashes. (case=104863, case=105091, case=105137, case=105246, case=105300)
- Fixes for crashes identified via Windows Error Reporting. (case=105277, case=105488, case=105489, case=105620)
Requires maintenance through 2016.10.15
- Added preliminary support for Visual Studio "15" Preview 5. (Other Preview versions are not supported.)

Suggestion Lists and Enhanced Listboxes are not yet available in Preview 5.
The C++ experimental feature 'Faster Project Load' is not supported.
Preview 5 versions 25802 and 25807 have been tested. Run the Visual Studio Installer (a start item after installation of the IDE) to get the newest version of the IDE.
If you uninstall Visual Assist and Visual Studio "15" crashes during startup, see this forum announcement for reset instructions.
Bug Fixes
- Fix for crash that occurs when processing certain macros (regression in 2112). (case=100596)
- Tip of the Day dialog is displayed on a background thread (no longer blocks load of solution, etc). (case=2324)
- Fix for stall that occurs in certain situations when using Alt+O after running Add Class. (case=100382)
- Fix for unrecognized symbols after files located in non-project solution folders are opened and then closed. (case=100216)
Requires maintenance through 2016.09.16
- Visual Assist .exe installer targets and installs to Visual Studio Enterprise "15" Preview 4.
- New dialog lists and explains all shortcuts related to Visual Assist. Open via VAssistX | Help | Keyboard Shortcuts.

- New dialog displays additional, recommended shortcuts for Visual Assist. Dialog opens one week after installation, or via VAssistX | Help | Keyboard Shortcuts | Recommended.

-
Open File in Solution dialog now supports opening of files by fully qualified path, even for files that do not appear in the dialog list.
-
Open File in Solution dialog now supports opening of files at specific line numbers.
Include ":lineNumber" after filtering to a specific file.

Include "(lineNumber)" with a fully qualified path, even if the file is not in the dialog list.

Learn more.
-
Goto (Alt+G) and Goto Related (Shift+Alt+G) now differentiate between method overloads in C/C++ based on context of site invocation.

- Behavior of Smart Select (Alt+[ and Alt+]) can be adjusted on a new page in the options dialog.

- Reset Editor Zoom now affects the global zoom state of Visual Studio 2015 rather than just the state of the active editor.
- New debug tool, Address Resolver, efficiently converts text versions of virtual addresses, e.g., a call stack, into resolved symbols found in PDBs. Learn more.

- New debug tool, PDB Explorer, lets one efficiently browse and search for symbols in a PDB. Learn more.

- Improved speed of loading solutions that have a large number of native projects.
Bug Fixes
- [VS2015 Update 3] Fix for hang when loading some solutions that contain Android or Javascript projects. (case=99166)
- [VS2012+] Fixed performance degradation of file loading that worsened as the number of open editors increased. (case=99323)
- Fixed case in which alt+o failed to locate file a match in a sub-directory. (case=98947)
- Fixed cases in which selection of item from VA Members Listbox unexpectedly overwrote text to the right of the insertion point. (case=99511)
- Prevent Goto from identifying case-insensitive symbol matches in some cases. (case=99358)
- Fixed various cases in which identifiers generated by macros were not properly parsed. (case=99486, case=99509, case=99795, case=99816, case=99945)
- Fixed Goto Member of C++/CLI 'interface class' and 'interface struct' object types. (case=99536)
- Fixed selection of 'find text' match sometimes not being visible due to line scrolling off screen upon creation of VA Nav Bar. (case=99761)
Requires maintenance through 2016.07.15
- New refactoring commands move implementations to header files and class declarations. Learn more.

- Smart Select commands that extend and shrink selections do so with finer granularity. Learn more.

- Smart Select block commands (Alt+] and Alt+[) now begin selections with the current statement, and non-block commands (Shift+Alt+] and Shift+Alt+[) now begin with the current word. Registry settings make underscore and change-of-case delimit a word. Learn more.

- Open Symbol in Solution dialog can display file and directory columns to make it easy to discern like-named symbols found throughout a solution. Learn more

Enable the columns in the context menu of the dialog.

- Tooltips that appear when scrolling or hovering in several dialogs can be hidden. Setting is available in the context menus of Goto Member, Open File in Solution, and Open Symbol in Solution. For the symbols dialog, tooltip content is redundant with file and directory columns.

- Open Corresponding File (Alt+O) now searches more places for files, including .., ./inc, and ./include. Learn more
- Sorting of lines now prompts for sort order and case sensitivity. Learn more

- Parsing of solutions can be restricted to a single thread, without restart of the IDE, to accommodate other tasks with higher priority. Find the setting on the Performance page of the options dialog for Visual Assist. Learn more

- New entry in context menu excludes cross-references from VA Hashtags tool window. Learn more

- Added access to history of saved versions if auto-recovery feature of Visual Assist is enabled. Learn more

Bug Fixes
- [VS2010+] Fix for VA Navigate Back (alt+left arrow) failing to return to recorded column position. (case=97613)
- Fix for Smart Suggestion of vector of shared_ptr. (case=96425)
- Fixed Smart Suggestion namespace qualification of enum values in user-provided sample. (case=98073)
- Fix for failure to deduce auto rvalue ref type in range-based for loop. (case=96952)
- Sort Selected Lines honors system locale. (case=97868)
- Fix for Create Declaration being confused by a function try block. (case=93234)
- Fix for failure of Goto to work with variable defined using decltype expression. (case=93387)
- Various fixes for Smart Select selections. (case=94946, case=95812)
- Improved auto type deduction in range-based for loops. (case=86248)
- Improved Smart Suggestions of template variables in certain scenarios. (case=91733)
- Fixed case in which parentheses were not automatically matched when complete with any character was enabled and '(' was used to commit the listbox selection. (case=97044)
- Improved results of Goto and Goto Related on namespace usages that reference nested namespaces. (case=68241)
- Fix for snippets inserted with incorrect line endings in empty files. (case=97752)
- Fixed case in which VA incorrectly handled static_assert in a class definition. (case=97232)
- When Goto is invoked on an external type in XAML, VA prompts to open the Object Browser (instead of searching it without prompting). (case=96541)
- Find Symbol in Solution dialog lists symbols defined in source files imported via nuget packages. (case=97175)
- Fixed case in which VA Outline reported incorrect range of a #define in certain situations. (case=97224)
- Add Missing Case Statements now supports switches on properties. (case=96542)
- Fixed parsing of D2D interfaces and types that implement them. (case=97120)
- Fixed case in which symbols defined via system include directories might be recognized in one solution but not in another. (case=97154, case=97190)
- Fix for Move Implementation commands not properly selecting moved code in some cases. (case=96852)
- Fixed case in which include resolution of files in system include directories might not be properly resolved. (case=97154)
- Fixed case in which VA Snippet was processed with different end results when executed with in-editor placeholder expansion vs placeholder expansion via dialog. (case=96968)
- Disabled implementation of case=4568 due to unexplained lag while typing templates in a specific situation (can be re-enabled via edit of reg value ReparseIfNeededMaxFileSize2). (case=98305)
- [VS2015 Update 3] Enabled in-editor expansion of snippet input placeholders. (case=95894)
- [VS2015 Update 3] When changing the state of the automatically extend multi-line comments setting, VA prompts to make the opposite action with the IDE provided feature in C#. (case=95605)
- [VS2012+] Fixed positioning of Goto and Goto Related menus when invoked in XAML files. (case=98462)
- [VS2010+] Fixed tab order in Snippet Editor. (case=98606)
- [VC6] Fix for deadlock in some situations after using Add Class. (case=98643)