Visual Assist

{{Short description|Microsoft Visual Studio plug-in}}

{{primary sources|date=May 2019}}

{{Infobox Software

| name = Visual Assist

| developer = Whole Tomato Software

| latest release version = 2024.8 (build 10.9.2537)

| latest release date = {{Start date and age|2024|10|27}}

| operating_system = Microsoft Windows

| genre = Microsoft Visual Studio add-on for VC++ 6.0, .NET 2003, 2005, 2008, 2010, 2012, 2013, 2015, 2017, 2019, 2022

| license = Commercial, $129–279

| website = {{URL|www.wholetomato.com}}

}}

Visual Assist is a plug-in for Microsoft Visual Studio developed by Whole Tomato Software. The plug-in primarily enhances IntelliSense and syntax highlighting, along with navigating through source code and providing flexible refactorings. It also enhances code suggestions, can generate or rewrite code, and includes spell checking support for comments, as well as adding enhanced debugging tools.{{Cite web |title=Features in Visual Assist |url=https://www.wholetomato.com/features |access-date=20 March 2023}} It can also detect syntax mistakes such as use of undeclared variables, and provides code analysis to detect potential bugs or performance issues in source code.{{Cite web |title=A Brief Introduction To Clang-Tidy And Its Role in Visual Assist |date=8 January 2021 |url=https://blog.wholetomato.com/2021/01/08/a-brief-introduction-to-clang-tidy-and-its-role-in-visual-assist/ |access-date=20 March 2023}}

Visual Assist supports Visual C++ and Visual C#.

As of March 2023, Visual Assist supports Visual C++ 2022 right back to Visual Studio 2005, including the Community Editions. Support for Visual Studio 6.0 - 2003 was deprecated in 2017, though the latest version to support those older IDEs is still available for download. (Visual Studio Express editions lack third-party extensibility and Visual Studio Code uses a separate extensibility model, thus Visual Assist cannot be used with them.)

Game industry

Visual Assist is used by C++ development teams worldwide, but is especially popular in the game development industry. Many Unreal Engine developers list installing Visual Assist as a key requirement before beginning development with Unreal.{{Cite web |title=Ari Arnbjörnsson (Housemarque): Lessons Learned from a Year of UE4 AAA Development | website=YouTube | date=3 August 2019 |url=https://www.youtube.com/watch?v=SGPleVfrPyo&t=1414s |access-date=20 March 2023}}{{Cite web |title=Visual Studio Tips for UE4 |url=https://ikrima.dev/ue4guide/development-setup/visual-studio-tips-for-ue4/ |access-date=20 March 2023}}{{Cite web |title=Top 5 Reasons Why I Use Visual Assist for Unreal Engine 5 | website=YouTube | date=9 December 2022 |url=https://www.youtube.com/watch?v=IuxM4Cc3gyQ |access-date=20 March 2023}}

Youtuber TheCherno states they've used Visual Assist for 90% of the C++ development they've ever done, and refers to the combination of Unreal Engine and Visual Assist as "a match made in heaven."{{Cite web |title=Unreal Engine + Visual Assist | website=YouTube | date=October 2020 |url=https://www.youtube.com/watch?v=HfB-b4aYZcI |access-date=20 March 2023}}

The Unreal Engine Community wiki notes, "Many programmers simply prefer to disable [Visual Studio's inbuilt] Intellisense and use Visual Assist that has included support for Unreal Engine".{{Cite web |title=Choosing & Preparing Integrated Development Environment for Unreal C++ |url=https://unrealcommunity.wiki/setting-up-visual-studio-for-unreal-engine-hgkklk2i |access-date=20 March 2023}}

Technology

Visual Assist has a custom language parser, which is not a compiler-style parser. Compiler-style parsers require well-formed code (badly formed code causes a compile error!) and will follow compiler directives, such as macros that can direct the compiler to include or exclude certain code. It's common for code tooling tools to use either compiler engines or compiler-style parsers, but Visual Assist's approach is more flexible and means the tool is more useful in real-world coding environments. When coding, a developer may have incompletely written code, but an assistance tool needs to still function correctly, as Visual Assist does. Similarly, Visual Assist is aware of macros, but can "see" inside macros that a compiler will exclude: this means it can refactor fully, rather than missing references that other tools would not see.

Visual Assist is tightly integrated into Visual Studio, which uses a different extensibility model to Visual Studio Code.

Until Visual Studio 2022, Visual Studio was a 32-bit application, constraining memory to a maximum of 4GB. It is common for developers to have multiple plugins loaded into Visual Studio, and the Visual Assist developers spent considerable effort on ensuring the memory impact of using Visual Assist was very low,{{Cite web |title=Technical Deep Dive: Reducing Memory Consumption in Visual Assist build 2393 |date=17 December 2020 |url=https://blog.wholetomato.com/2020/12/17/technical-deep-dive-reducing-memory-consumption-in-visual-assist-build-2393/ |access-date=20 March 2023}} even parsing very large projects. Both this and the custom parser also result in high performance parsing or indexing code compared to other tools.

See also