Build Announcements - Tomato Soup https://www.wholetomato.com/blog Visual Assist Team Blog Thu, 01 Aug 2024 18:37:25 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.5 https://i0.wp.com/www.wholetomato.com/blog/wp-content/uploads/2020/05/cropped-wt-logo.jpg?fit=32%2C32&ssl=1 Build Announcements - Tomato Soup https://www.wholetomato.com/blog 32 32 227787260 Visual Assist 2024.6 release post – Important fixes for Visual Studio https://www.wholetomato.com/blog/2024/08/01/visual-assist-2024-6-release/ https://www.wholetomato.com/blog/2024/08/01/visual-assist-2024-6-release/#respond Thu, 01 Aug 2024 15:50:31 +0000 https://www.wholetomato.com/blog/?p=3856 VA 2024.6 is here and is available to download! This release features small but crucial updates. IMPORTANT: Users of 2024.5 should upgrade as soon as possible, or install the previous version 2024.4. To get the...

The post Visual Assist 2024.6 release post – Important fixes for Visual Studio first appeared on Tomato Soup.

]]>
VA 2024.6 is here and is available to download! This release features small but crucial updates.

IMPORTANT: Users of 2024.5 should upgrade as soon as possible, or install the previous version 2024.4.
To get the latest version, v
isit our website now and download the new update.

Visual Assist 2024.6 brings two critical fixes for Visual Assist’s interaction with Visual Studio.

  • The first fix in this release addresses a critical issue that could sometimes cause Visual Studio to crash when saving files. This fix enhances the stability of the IDE, ensuring a smoother and more reliable experience while working on your projects.
  • Secondly, we have resolved an issue where the Visual Studio installer would crash on versions of Windows older than Windows 10. This fix ensures that users running older operating systems can install and update Visual Studio without encountering disruptions. This should provide a seamless setup experience across all supported Visual Assist-supported versions of Visual Studio.

We appreciate your patience and feedback as we continue to improve Visual Assist for all our users. Please continue to report issues and we will do our best to get them sorted out quickly.

The post Visual Assist 2024.6 release post – Important fixes for Visual Studio first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2024/08/01/visual-assist-2024-6-release/feed/ 0 3856
Visual Assist 2024.4 release post – ARM Support https://www.wholetomato.com/blog/2024/06/12/visual-assist-2024-4-release-post-arm-support/ https://www.wholetomato.com/blog/2024/06/12/visual-assist-2024-4-release-post-arm-support/#respond Wed, 12 Jun 2024 22:00:59 +0000 https://www.wholetomato.com/blog/?p=3839 It’s our pleasure to announce a new Visual Assist release, headed by a major addition—supporting ARM! We hope you find this release useful. Visit our website to download the release. ARM support Big news for...

The post Visual Assist 2024.4 release post – ARM Support first appeared on Tomato Soup.

]]>
It’s our pleasure to announce a new Visual Assist release, headed by a major addition—supporting ARM!

We hope you find this release useful. Visit our website to download the release.

ARM support

Big news for Visual Assist’s device support! Windows ARM is now supported starting this release, Visual Assist 2024.4. Visual Assist is now available as a fully ARM-native plugin, fully supported in Visual Studio’s ARM build. This means that Visual Assist is now fully compatible for those of you using Macs or Windows devices with an ARM processor. 

We first asked our community about ARM support some time ago. At the time, while it was clear ARM was growing for Macs, it was unclear how strongly it would grow for Windows and we planned support at a future time. Since then, we’ve seen growing interest and customer requests – and we’re happy to deliver! The appearance we see is that many people, including large companies, are increasingly interested in or using ARM for Windows.

There are many advantages to using Windows ARM devices, from battery usage to performance. One key one is that many developers target ARM devices and are used to debug remotely; while debugging on-device or on-simulator remains important, it can be slow and doing minute-to-minute development on a device that shares the same CPU architecture can be very useful.

ARM is a completely new front for us and we would like to know more about how we can improve the experience for ARM users. If you’re part of the group that would benefit from this update, please let us know more by answering this short survey.

Path “/” delimiter

This simple change adds an option for users who are used to using “/” as path delimiters for searching directories. This comes at the heel of users from different operating systems sharing how their default style of delimiter is not supported. 

With this change, you can now choose what the default delimiter will be used. This will apply to most of Visual Assist’s search windows such as Open file in solution and the like.

Bug fixes and improvements

Apart from the above major fixes, we have a couple of minor bug fixes and QoL changes. The highlights are a fix for recognizing one of the features in the standard library. 

The complete list is below: 

  • Fixed issue where std::tuple would not be recognized in some cases.
  • Move Class to New File will no longer jump to a new file before showing the dialog.
  • Fixed broken Discord invite link.

Send us a message or start a thread on the user forums for bug reports or suggestions. Don’t forget to join our Discord too!

Visit our download page to update to the latest release manually. Happy coding!

The post Visual Assist 2024.4 release post – ARM Support first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2024/06/12/visual-assist-2024-4-release-post-arm-support/feed/ 0 3839
Visual Assist 2024.3 release post https://www.wholetomato.com/blog/2024/05/02/visual-assist-2024-3-release-post/ https://www.wholetomato.com/blog/2024/05/02/visual-assist-2024-3-release-post/#respond Thu, 02 May 2024 20:42:22 +0000 https://www.wholetomato.com/blog/?p=3811 Another Visual Assist update?! VA 2024.3 is headlined by a dramatic improvement to the performance of Find References. This release also features both a fix and an improvement related to Move Implementation. We also have...

The post Visual Assist 2024.3 release post first appeared on Tomato Soup.

]]>
Another Visual Assist update?! VA 2024.3 is headlined by a dramatic improvement to the performance of Find References. This release also features both a fix and an improvement related to Move Implementation. We also have some key features exiting their beta phase (try them out!). Lastly, performance for C# should be better than ever with key fixes rolling out in this release.

Download the release now from our website.

Better find references results in multiple faster features

If you’ve updated to at least Visual Assist 2024.1, you may have been enjoying the benefits of the significantly improved parser performance that cut initial parsing time fifteenfold. In this release, we’ve added something even bigger: performance improvements not at startup, but all the time

Find references, the feature that looks for symbol usage within the current project or solution, has been greatly improved for performance and speed. But the Find References engine is used for many other common and key features in Visual Assist! Renaming finds references in order to rename them; implement methods finds methods in order to know which ones do and do not exist; and so forth. That means that this performance improvement applies to many key features and navigations; Rename, Change Signature, Implement Methods and more.

Visual Assist’s Find references window. Takes significantly less time to find all references in 2024.3.

Test Results

The development team ran a few tests to compare the performance of find references between the new Visual Assist version versus an older version of the same plugin. Furthermore, they also tested it against the performance of Visual Studio’s default Find References. 

The test was done on Unreal Engine 5.3 source code using Lyra game examples with two symbols: TOptional and MakeBox as the basis for which references are to be searched. The test was done using Visual Studio 2022 17.8 and Visual Assist 2024.3 & 2024.2. Time was measured from the start of Find References to all references found.

The result of the tests are as follows:

Setup 1 – TOptional:

Run 1 Run 2 Run 3 Average
Visual Assist 2024.3 5:11 4:25 4:17 4:37
Visual Assist 2024.2 14:27 18:02 13:12 15:13
Visual Studio 2022 38:26 * * 38:26
Setup Specs:AMD Ryzen 7, 7800X3D processor, Team T-Force Delta 32GB (2 x 16GB) 288-Pin PC RAM, Crucial T700 Gen5 NVME M.2 SSD
* Test timeout. 

 

Setup 2 – MakeBox:

Run 1 Run 2 Run 3 Average
Visual Assist 2024.3 0:42 0:45 0:43 0:43
Visual Assist 2024.2 1:41 1:40 1:34 1:38
Visual Studio 2022 2:34 2:22 2:27 2:27
Setup Specs:AMD Ryzen 7, 7800X3D processor, Team T-Force Delta 32GB (2 x 16GB) 288-Pin PC RAM, Crucial T700 Gen5 NVME M.2 SSD

As one can surmise from the results, the latest update brings Visual Assist’s symbol finding performance well above that of default Visual Studio’s and other similar plugins. Further testing on other platforms will be undertaken. Please refer back to this page later for more testing.

Exiting Beta: CUDA core development support & Move Class feature

Two VA features enter their stable phase and are now on general availability. If you have not tried these yet, we highly recommend trying them out as it provides a lot of usefulness that might not be readily apparent.

  • CUDA support
    First added in 2023.4, CUDA support allowed Visual Assist to recognize CUDA files and parse and highlight them like regular C/C++ files. This feature now enters full supported status and you can reliably use Intellisense-like features for CUDA files.
  • Move Class feature
    Refactoring and moving entire classes can sometimes be a hassle. This feature moves from beta to supported status and allows you to easily choose an entire class and port it over to file/s of your choosing.

Create File: specify a directory + auto implementation.

This is a tiny but useful quality of life change for creating files. Prior to this change, Visual Assist would sometimes display a failure error and ask you if you wanted to Create File or to stop if a target was not found. Now, it runs create file automatically and you can hit Cancel instead.

Furthermore, a bug fix for when using create file: Visual Assist will consistently move the implementation afterwards. (In the past, it sometimes failed to do so.) 

These two changes will hopefully make your experience more seamless and intuitive.

Discord link and feedback options in the Help menu

Introducing our newly opened Discord server for all Visual Assist users. We’re hoping for this hub to function like our forums wherein users can request for changes, report bugs, and share useful information and tips around the plugin.

As it’s a WIP, anyone who is interested in helping us manage and build the community is welcome to do so. Send us a message here if you’re interested.

Furthermore, we’ve added new feedback channels in one of our menus. Navigate to Help and browse new feedback options and let us know what you think!

Bug fixes and improvements

Apart from the above major fixes, we have a couple of minor bug fixes and QoL changes. The complete list is below: 

  • Fixed issue where Move Implementation would not move the implementation if a new file needed to be created.
  • Improved editor performance when editing C#.
  • Fixed Add Include issue where C headers would sometimes be added instead of their C++ counterparts.
  • Fixed issue where Move Class to New File would sometimes not be offered near macros.

Send us a message or start a thread on the user forums for bug reports or suggestions.

Visit our download page to update to the latest release manually. Happy coding!

The post Visual Assist 2024.3 release post first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2024/05/02/visual-assist-2024-3-release-post/feed/ 0 3811
Visual Assist 2024.2 release post https://www.wholetomato.com/blog/2024/03/28/visual-assist-2024-2-release-post/ https://www.wholetomato.com/blog/2024/03/28/visual-assist-2024-2-release-post/#respond Thu, 28 Mar 2024 18:45:09 +0000 https://www.wholetomato.com/blog/?p=3797 It only has been a minute since the last performance-focused release but Visual Assist 2024.2 is here, squeezing even more performance to set it apart from other coding assistants! Continuing the theme of the last...

The post Visual Assist 2024.2 release post first appeared on Tomato Soup.

]]>
It only has been a minute since the last performance-focused release but Visual Assist 2024.2 is here, squeezing even more performance to set it apart from other coding assistants! Continuing the theme of the last version, this release is focused on getting rid of interruption or downtime, and overall just making the Visual Studio experience as responsive as possible.

Download the release now from our website.

Significantly faster plugin startup time—especially in large solutions.

This update refers to the time it takes for Visual Assist’s features to become functional. Every time you close and open a solution, the plugin’s features take a few moments to load—or at least that’s how it was before. With this update, time-to-functional is more or less instantaneous even in extremely large solutions

As soon as Visual Studio calls on Visual Assist to start loading, you can immediately see coloring, syntax highlighting, and all the navigation and features are accessible. (Note: How Visual Studio initializes plugins and components is indeterminate; results may vary slightly depending on how many components it loads first before Visual Assist.)

This is not to be confused with the initial parse time update that we did in VA 2024.1 which is only a one-time process that happens with each new solution.

Further improvement to our initial parse time.

As mentioned above, we made significant improvement with the initial project parsing. Most of the benefits from 2024.1 were the result of optimizing how Visual Assist goes through files as it traverses references and includes. 

To summarize, Visual Assist used a cache for parsed directories so that it does not have to access the hard disk when an include is referenced multiple times—this significantly reduced the initial parse time.

In 2022.2, however, the developers have squeezed more performance by optimizing smaller items such as string operations, parse logic, etc. This produced a relatively modest but still significant decrease in project parse time.The result is a up to 50% faster parse time versus the previous version. Or in absolute units, that means VA 2024.2 is around 20 seconds faster than VA 2024.1 in our test scenario, where the Lyra demo is now ready in under a minute.

Testing:

Initial parsing time is defined as the point where the Visual Assist starts parsing up to the end where it completes it. This project used the latest Visual Studio 2022 version 17.8.6, again on the Lyra sample game project provided by Epic Games. This is using the same high-end PC and laptop setup used to test the 2024.1 changes.

Setup 1:

Run 1 Run 2 Run 3 Average
Visual Assist 2024.1 01:09 01:05 01:03 01:06
Visual Assist 2024.2 00:54 00:51 00:54 00:53
Setup Specs: AMD Ryzen 7, 7800X3D processor, Team T-Force Delta 32GB (2 x 16GB) 288-Pin PC RAM, Crucial T700 Gen5 NVME M.2 SSD on 

 

Setup 2: 1.19x faster

Run 1 Run 2 Run 3 Average
Visual Assist 2024.1 01:30 01:31 01:27 01:29
Visual Assist 2024.2 01:18 01:15 01:12 01:15
Setup Specs: – CPU: 12th Gen Intel(R) Core(TM) i9-12950HX, DDR5-4800 (2400 MHz) 32 GB (2×16 GB), 2 TB SSD,  ASUS ROG Strix SCAR 17 SE (2022) G733CX laptop on UE 5.2.1 Lyra Game

 

Setup 3: 1.54x faster

Run 1 Run 2 Run 3 Average
Visual Assist 2024.1 02:15 02:02 02:06 02:07
Visual Assist 2024.2 01:28 01:16 01:24 01:22
Setup Specs: – CPU: 12th Gen Intel(R) Core(TM) i9-12950HX, DDR5-4800 (2400 MHz) 32 GB (2×16 GB), 2 TB SSD,  ASUS ROG Strix SCAR 17 SE (2022) G733CX laptop on UE 5.3.2 Lyra Game

Improved add include for Unreal Engine.

Adding includes when working with Unreal projects has been improved in two ways. First, add include formatting in C++ generally uses either alligator brackets or quotation marks. Generally, <> are for system includes and “” are for user includes, however, there is a stylistic convention when working with Unreal. 

This update adds logic such that when you’re adding includes in an Unreal project, Visual Assist will consistently choose quotations—the preferred style for Unreal development.

Second, the include directory that is used when adding includes will now produce more accurate paths. Visual Assist will try to make sense of directory paths, subfolders included. This is especially useful when working with Unreal Engine which is known to arbitrarily produce paths.

Unreal Engine changes how solutions are generated; and while these are not actually used to build your game, these incorrect include directories are still read and used to generate other include paths when adding new includes. VA adds includes perfectly for normal C++ projects, but this situation may pose issues with some UE solutions, because some solutions could have incorrect include paths set up. 

This manifests as very long and unwanted paths, such as this one when adding the player controller: #include “../../../../../../../Source/Runtime/Engine/Classes/GameFramework/PlayerController.h”

Now, VA instead traverses the directory structure and figures out the paths, instead of trusting the solution. We replaced our logic to mostly ignore the include directories given to use by the solution in lue of traversing the directory structure ourselves. This lets us build our own ‘effective’ list of include directories which we will use to generate include paths for new includes.

For the above example, it would now add: #include “GameFramework/PlayerController.h”—which is what you expect and want as a UE developer. 

Fix syntax coloring in C# for Visual Studio 2022.

A recent Visual Studio 2022 update changed an API that Visual Assist uses to provide coloring and syntax highlighting. This update broke Visual Assist’s coloring and syntax highlighting for C#. 

A near total rewrite has been implemented and syntax coloring should be working now. However, there may be a slight difference in how Visual Assist colors C# files as we reoptimize with the rewritten code.

Syntax highlighting and coloring in C++ has remained unaffected but Visual Assist plans on implementing the new API setup for it as well. This should also fix some minor coloring issues. 

Fixed compatibility issues with GitHub Copilot.

Visual Assist is now completely compatible with Copilot, Microsoft’s AI coding assistant. 

Earlier this year, a bug report was filed on our forums describing a situation where Visual Assist seems to be interfering with Copilot’s chat functionality. This has led to the unwanted situation wherein users have to disable either Copilot or Visual Assist, as some features may not work simultaneously.

All known incompatibility issues have been resolved and addressed in 2024.2. If you encounter any similar bugs, please send us a bug report.

Fixed Open File in Solution issue when the filter starts with a dot.

When starting a query with a dot (.), Open File in Solution may sometimes fail to display the expected results. 2024.2 fixed the ‘dot’ filtering which was a common user complaint.

Search filtering features are available by starting with a dot to find files that begin with the filter, or contain the dot and substring. A filter that ends with a dot matches the ends of file names. For example “string.” finds files whose base names end with “string”. This dot filtering is also possible in other dialogs of Visual Assist that support filtering.

Bug Fixes & General Improvements

Apart from the above major fixes, we have a couple of minor bug fixes and QoL changes. The complete list is below.

  • Fixed UI conflict with GitHub Copilot.
  • Fixed issue where Add Include would sometimes not add the new include.
  • Fixed long Add Include paths for some symbols in Unreal Engine 5.3.x.
  • Fixed issue where Open File in Solution would sometimes not display results when the filter starts with a dot.
  • Fixed issue where C# syntax coloring would not be applied in Visual Studio 2022 17.9.0.
  • Fixed issue where readability-magic-numbers Code Inspection would not properly underline hex numbers.
  • Fixed issue where GoTo would not navigate to classes without a constructor.
  • Fixed issue where suggestions could show suggestions for non-existent types.
  • Updated Create Account link to point to the correct page.
  • Added Alt+O to Recommended Keyboard Shortcuts as Visual Studio 2022 now uses that binding.

Send us a message or start a thread on the user forums for bug reports or suggestions.

Visit our download page to update to the latest release manually. Happy coding!

The post Visual Assist 2024.2 release post first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2024/03/28/visual-assist-2024-2-release-post/feed/ 0 3797
Visual Assist 2024.1 release post https://www.wholetomato.com/blog/2024/01/31/visual-assist-2024-1-release-post/ https://www.wholetomato.com/blog/2024/01/31/visual-assist-2024-1-release-post/#respond Wed, 31 Jan 2024 09:32:52 +0000 https://www.wholetomato.com/blog/?p=3725 The first release of the year is here with Visual Assist 2024.1. This update is headlined by the overhaul of our parser, which significantly reduces users’ initial startup times for projects. Also in this release:...

The post Visual Assist 2024.1 release post first appeared on Tomato Soup.

]]>
The first release of the year is here with Visual Assist 2024.1. This update is headlined by the overhaul of our parser, which significantly reduces users’ initial startup times for projects. Also in this release: key behavioral fixes for a few or VA’s navigation features, a UI update for the ubiquitous dropdown toolbar, and a plethora of bug fixes and QoL improvements.

Download the release now and get the benefits of VA 2024.1.

Significantly faster initial startup time

va initial parse startup speed update

Initial parse time is defined by how long it takes Visual Assist and Visual Studio to become fully active, starting from the moment a new file is loaded up for the first until it fully completes its initial parse (i.e. all features loaded and functional.)

Startup times just got extremely buffed in the first release of Visual Assist this year. The initial project parsing that Visual Assist executes when opening projects for the first time has now been significantly reduced. An example Unreal Engine project, when opened for the first time, used to take 15 minutes; it now takes just under two minutes instead! This is a huge improvement, and you will see this reflected in all projects that are opened and parsed.

More testing is underway to provide a better and more accurate performance number, but the developer team has found excellent results in their tests so far. Reports show a trend of having significantly reduced parse time for a sizable Unreal Engine project—with results averaging up to fifteen times faster initialization.

Update on Initial Parsing Time: More Testing Results

More testing results for Visual Assist’s updated parser are in! Here are the results:

Initial parsing time is defined as the point where the Visual Assist starts parsing up to the end where it completes it. This project used the latest Visual Studio 2022 version as of Feb 10 (VS 2022 17.8.6) on the Lyra sample game project provided by Epic Games. Two performance benchmarks on two different devices were done using the same methodology. 

Device 1  (High-end Desktop PC)

Run 1 Run 2 Run 3 Average
Visual Assist 2024.1 0:01:13 0:01:05 0:01:06 0:01:08
Visual Assist 2023.6 0:11:55 0:11:57 0:12:42 0:12:11

Device 2 (Gaming-class laptop)

Run 1 Run 2 Run 3 Average
Visual Assist 2024.1 0:02:12 0:02:17 0:02:10 0:02:13
Visual Assist 2023.6 0:29:37 0:28:52 0:30:09 0:29:33

Both test runs show very exciting results for the overhauled VA 2024.1 parser over its immediate predecessor VA 2023.6.

The test showed an average 1075% faster parse time using a high-end desktop PC; and 1333.08% faster parse using a powerful albeit relatively less performant gaming laptop. That’s 11 and 13 times faster, respectively. 

There is variance in the advantages gained between the two devices, with a significant performance edge on the less powerful laptop. We suspect the gains could be much larger on low and mid-end computers or laptops.

Curious to see how VA 2024.1 performs on your platform? Download a free trial of Visual Assist and try it for yourself now.

Navigate directly to a class constructor definition from an explicit constructor call

This neat addition to VA’s find reference and go to reference features allows users to find and navigate to a class’s constructor definition from a call to that constructor. 

Highlight or click over a constructor and use the shortcut Alt + G to navigate instantly to the default constructor.

Improved and expanded header selection when using Add Include

This release greatly improves VA’s Add Include detection and expands the number of actual includes supported. 

If you have not used this feature extensively VA can automatically add includes directives for you if it detects you are using an undeclared feature or type from a known library such as STL or even your own code elsewhere. Specifically, this update adds many new types baked into C++ such as std::stringstream and std::once_flag.

In essence, using Add include should automatically insert the correct include under many more circumstances.

Code completion dropdown toolbar now displayed by default 

The coding completion toolbar will now be turned on by default and will be displayed more frequently. This new quality of life change brings a visual UI as you write code. VA tries to predict your intended actions so the options shown will always be contextual apart from being accurate.

Furthermore, when you type code, the code completion UI will be shown by default regardless if you are hovering your cursor over the current portion of the code.

code completion toolbar visual assist

The code completion toolbar is displayed as you type code.

For very large projects and long source code, you can use the filter options (highlighted in the screenshot above) to select which options are shown in the new toolbar.

Bug fixes and improvements

For this release, we have severak fixes—both from examining recent features and user reports. The most notable of these improvements include functional visual changes to a plethora of features and better parser recognition of Unreal code.

  • Fixed visual issues with completion dropdown toolbar
  • Fixed issue where trial activation dialog could display an error and prevent activation
  • Fixed issue with new “Magic Numbers” detecting Code Inspection where it was highlighting only a portion of the constant
  • Fixed issue where logging could overflow and cause a crash when enabled alongside very large solutions
  • Fixed issue where preprocessor directives in shader files were sometimes colored as methods
  • Fixed issue where Unreal Engine Create***Subobject symbols were not recognized by our parser
  • Fixed issue where changing the signature of an Unreal Engine method which requires a *_Validate thunk would result in rewriting the return of the *_Validate thunk to void.
  • Fixed issue where typing a dot the start of the word in a few of our dialogs would result in no hits being displayed

Many thank to those who submitted their suggestions and error reports. Please continue reporting problems you may find along the way. To report bugs, you can send us a message or start a thread on the user forum.
You can also check our download page to update to the latest release manually. Happy coding!

The post Visual Assist 2024.1 release post first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2024/01/31/visual-assist-2024-1-release-post/feed/ 0 3725
Visual Assist 2023.6 release post https://www.wholetomato.com/blog/2023/11/28/va-2023-6-release/ https://www.wholetomato.com/blog/2023/11/28/va-2023-6-release/#respond Tue, 28 Nov 2023 06:58:29 +0000 https://blog.wholetomato.com/?p=3637 Visual Assist 2023.6 is here and is available to download! This release is filled to the brim with new functionality that improves upon your staple VA features and a new, convenient way to share source...

The post Visual Assist 2023.6 release post first appeared on Tomato Soup.

]]>
Visual Assist 2023.6 is here and is available to download! This release is filled to the brim with new functionality that improves upon your staple VA features and a new, convenient way to share source code with colleagues.

We also have a new code checker, support for two new C++ language features, and small but useful improvements to VA’s behavior. Read on further to get the complete details of the changes and improvements in this release, or download the release right away.

Share source code via email, GitHub, and more.

Starting from VA 2023.6, users can now highlight sections of code from the editor and open the Quick Actions and Refactoring (Shift + Alt + Q) menu, or right-click on the code and select the “Share with team member” option to instantly send code to other developers.

Select and share sections of code by highlighting it and using the Quick Actions
menu (Shift + Alt + Q).

Choose where and how you want to share your code. This new feature can work in conjunction with GitHub Gist and GitLab’s snippets feature, where you can instantly share and upload parts of your source code. You can also send your source code via email for more general-use purposes. 

Improvements to VA’s navigation features

This release provides a number of improvements and additional functionality to VA’s bread and butter navigation features, such as open file in solution and find symbol in solution.

  • Fuzzy search and uppercase search for opening files and searching symbols
    Fuzzy search is a technique used in searches and information retrieval to find approximate matches for a given query, accommodating variations like typos and misspellings. It employs string distance metrics to measure the similarity between strings.

    Visual Assist’s open file in solution and find symbol in solution will now employ this algorithm, so you can expect more results with fewer, less accurate search queries.

    Furthermore, besides fuzzy searching for inexact matches, VA will also match capital letters. If you have a class named MyClassName, searching for “mcn” would find it. It works similarly if you have a global variable named myGlobalVariable and type “mgv”. It is smart enough to count the lowercase “my” as if it were MyGlobalVariable leading to expected results.

    Enable fuzzy search and see smarter search results using approximate string matching.

     

     

  • Select all items in open file in solution (Ctrl + A)
    You can now select and highlight multiple files and open them simultaneously when using open file in solution. The usual shortcut Ctrl + A works.

    Select and open all files with the new select all shortcut.

Improved support for Braced Initialization Lists / Uniform initialization (C++ 11)

2023.6 also improves support for braced initialization of lists and/or uniform initialization. Brace initialization lists and uniform initialization provide a more consistent and flexible way to initialize objects in C++. 

These features  improve code readability and reduce the chances of certain types of errors. Visual Assist’s parser will recognize these lists and highlight and suggest auto corrections within them.

Improved support for constexpr, consteval and constinit  (C++ 20)

These features are related to compile-time evaluation and initialization. They have specific use cases and are used to enforce certain behaviors at compile time. If you haven’t been using these, here’s a quick breakdown:

  • constexpr used to indicate that a function or variable can be evaluated at compile time.
  • consteval a stricter version, ensuring that the function or expression is only evaluated at compile time and cannot be evaluated at runtime.
  • constinit is used to indicate that a variable must be initialized at compile time and, once initialized, its value cannot be changed during the program’s lifetime.

When using these features, Visual Assist will recognize what you are trying to accomplish such as refactoring commands mainly. Refactorings such as Create From Usage will now properly handle these keywords.

New code inspection for detecting “magic-numbers”

This new Clang-based code inspection checks for instances of magic numbers—or numeric literals that are used without any definition—that are advised against by many coding guidelines for readability sake.

Enable code inspections by navigating to Extensions ->> VAssistX ->> Code Inspection ->> Enable code inspections.  This specific code inspection is disabled by default because some users may be intentionally using it and are not interested in “fixing” it.

Then you can either click on detected issues underlined in blue, use the Quick Refactoring Menu (Shift + Alt + Q) while on the highlighted issue, to allow VA to do it for you. In this case, there is no automatic fix so it will prompt you to define a variable with that number as its value and use the variable instead. 

Protip: VA can help do that for you with the introduce variable feature. If you highlight the number, then use the Quick Actions menu and select Introduce Variable it will ask you for a name and pull the number out into a variable for you.

You can read more about the readability-magic-numbers code checker on Clang’s documentation

New move class feature

You can now move entire classes into different files with the new move class feature included in 2023.6. 

For example, if you have a class named MyClass, with its declaration in MyClass.h and its definition in MyClass.cpp, you can move the entire class into a new pair of files, MyClassNew.h and MyClassNew.cpp. 

This is useful if you have a header and source file pair (.h and .cpp) that contain multiple classes and you want to break that up into multiple files.

Bug fixes and improvements

For this release, we have a couple of fixes based on user requests. The most notable of these improvements include a fix for file exclusion instructions using .json configs similar to a previous release, a parser improvement for Unreal Engine 5, and improved auto-detect logic for Unity.

  • Fixed multiple issues with file exclusion logic when reading from “.vscode\settings.json” configs.  
  • Our parser now better understands Unreal Engine 5.0 (specifically that build) types, such as FVector.
  • Fixed Create from Usage behavior when used inside const inline methods. 
  • Fixed coloring of [[fallthrough]] marked enum items. 
  • Attempted to fix rare temporary hang when debugging C# Unity projects.
  • Code Inspections options dialog now displays much more quickly. 
  • Improved Unity engine auto detect logic to reduce false positives.

Thanks to those who submitted their feedback and bug reports. Please continue sending them our way. Send us a message or start a thread on the user forums for bug reports or suggestions.

You can also check our download page to manually update to the latest release. Happy coding!

 

 

The post Visual Assist 2023.6 release post first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2023/11/28/va-2023-6-release/feed/ 0 3637
Visual Assist 2023.4 now released https://www.wholetomato.com/blog/2023/08/17/visual-assist-2023-4-released/ https://www.wholetomato.com/blog/2023/08/17/visual-assist-2023-4-released/#respond Thu, 17 Aug 2023 20:44:35 +0000 https://blog.wholetomato.com/?p=3336 VA 2023.4 is now published and is now available to download!  This release marks a major milestone in Visual Assist’s history as it starts its official support for Unity engine development. Also in this release:...

The post Visual Assist 2023.4 now released first appeared on Tomato Soup.

]]>
VA 2023.4 is now published and is now available to download

This release marks a major milestone in Visual Assist’s history as it starts its official support for Unity engine development. Also in this release: start of support for CUDA development for C/C++ and numerous parser improvements. Read on further to get the complete details of the changes and improvements in this release.

Start of official support for Unity

It’s been a long time coming but Whole Tomato is glad to announce that the upcoming 2023.4 build will feature the first of many Unity-specific features. Nope, not the hivemind—we are of course talking about the very versatile game engine and game development platform.

For those unaware, the Unity engine is the backbone of both 2D and 3D games ranging from wildly popular and suspicious games, all the way to full blown highly-acclaimed triple A titles.

Visual Assist has been popular for helping game developers deal with complex C++ code. Starting from the upcoming release, Visual Assist will expand its focus to C# game development. Users can expect VA staples such as refined navigation, intelligent autocomplete, code refactoring, and the like to work as well for C# work.

Furthermore, users can also submit feature requests specific for Unity development. We are starting with shaders—more on this below—but if you have any suggestions as to what features are missing in your Unity development, do let us know by emailing support.

Shaders for Unity

The start of official support for Unity development is headlined by shader file support. Similar to our previous addition of supporting HLSL, we are kicking off Unity updates by adding its shader files to our list of supported languages.

CUDA C/C++ Development

If you are a data scientist, software engineer, or a plain hobbyist looking to harness the power of your GPU for general purpose programming tasks, then you would most likely know about Compute Unified Device Architecture (CUDA). This programming model developed by Nvidia allows programmers to utilize the multi-core performance of graphics cards for other non-graphic applications (although it’s perfectly fine to use for 2D/3D too!)

If you are interested in CUDA, then rejoice! VA 2023.4 also marks the start of official support for CUDA development. Visual Assist’s can now parse and analyze CUDA related syntax, libraries, and APIs so you can have IntelliSense-like features, navigation, and highlighting for CUDA (.cu) files.

A CUDA file with proper syntax highlighting and code analysis features.

Parser Improvements: template functions with auto / trailing return type and std::tuple autocompletes 

With VA 2023.4 will now properly highlight and parse trailing return type features that bypasses a C++ limitation where the return type of a function template cannot be generalized if the return type depends on the types of the function arguments. This release specifically deals with some of the edge cases reported by our users.

Trailing return type features can be used by declaring a generic return type with the auto keyword before the function identifier, and specifying the exact return type after the function identifier. Learn more about it here.

The parser is aware of sum and proper syntax highlighting and navigation features are applied.

Also fixed in this release are initializations of std::tuple autocompletes. This improves how the VA parser handles certain templated types. In the end, users will find better completion suggestions when you are typing in your codebase, such as when typing std::tuple.

Better Add Include logic

Visual Assist can add include directives for headers that resolve unknown symbols in the current C++ source file. The underlying logic for add include has been improved for better context-awareness resulting in better predictions on where to place the new include.

Add include now inserts new lines in most logical place.

Add include can be accessed by hovering over unknown symbols and opening the quick actions and refactoring menu ( Shift + Alt + Q ).

Some other spring cleaning-type improvements

We’ve also made some changes to a few minor things to the UI and the options in the app that you should know about. Firstly, our shader support has been available for a few rounds of releases already and we’re excited to announce that it has finally finished its beta phase and will now be enabled by default. 

Secondly,  we’ve streamlined our game Development tab of our options dialog. This is to make room for upcoming additions (stay tuned!)

Thirdly, we’ve tweaked some tomatoes and icons along the way to better respond to your actions and better display what options are available to you. Relevant options and menus will be emphasized when they are needed; secondary options will subtly fade into the background otherwise. This is in line with our commitment to distraction free coding.

Lastly, if you’ve missed or haven’t installed the latest version yet, you may have noticed that the Visual Studio marketplace listings for the 32 and 64-bit versions of Visual Assist have now been combined. Versions 2010 – 2022 will now be accessible from one listing.

Bug Fixes

  • Fix for ‘VaMenuPackage’ package error affecting VS2022 17.7.0 3.0 load
  • Fixed issue where some types with leading macros before template definitions were not parsed correctly.
  • Fixed issue where autocomplete of some types, such as std::tuple, would produce partial results.  
  • Fixed rendering of suggestion list tomato icons in Visual Studio 2022. 
  • Fixed issue where the VA Navigation Bar could become smaller than intended.
  • Fixed Code Inspections error that could happen in some cases in Visual Studio 2022 17.6+. 

Thanks to those who submitted their feedback and bug reports. Keep ‘em coming. Send us a message or start a thread on the user forums for bug reports or suggestions.

Contrary to the preview blog statement, VA 2023.4 is a bit different as it will be released simultaneously—no rolling release mechanism as it includes some crucial updates we want to share to everyone as fast as possible. You can also check our download page to manually update to the latest release too. Happy coding!

 

The post Visual Assist 2023.4 now released first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2023/08/17/visual-assist-2023-4-released/feed/ 0 3336
Visual Assist 2023.2 released https://www.wholetomato.com/blog/2023/05/17/visual-assist-2023-2-released/ https://www.wholetomato.com/blog/2023/05/17/visual-assist-2023-2-released/#respond Wed, 17 May 2023 16:00:51 +0000 https://blog.wholetomato.com/?p=3218 The second update to Visual Assist in 2023 is here. This update features an extensive series of upgrades to code inspections, shader extension support, and a number of quality fixes to the IDE. Download the...

The post Visual Assist 2023.2 released first appeared on Tomato Soup.

]]>
The second update to Visual Assist in 2023 is here. This update features an extensive series of upgrades to code inspections, shader extension support, and a number of quality fixes to the IDE. Download the latest version of Visual Assist now.

Greatly expanded code inspections with over 100 new Clang Tidy checks

The biggest item in this release is the added support for all code checks available from Clang Tidy. Code inspections are semi-automatic checks that prompt the user when Visual Assist’s engine recognizes outdated syntax or an otherwise correctable code issue. 

For context, Visual Assist’s code inspection is based on a series of checks from LLVM Clang Tidy. And before we add support for a new check, we rigorously test it for accuracy and compatibility. This process ensures that the check will give consistent suggestions for almost all use cases. In fact, this is the process undertaken for the two new added code inspections in this release—more on them later.

What we’ve added is the ability to use unevaluated Clang Tidy checkers as Code Inspections straight from Visual Assist. This greatly expands the types of code issues that can be detected with code inspections enabled. There is a slight tradeoff in that you may need to do some manual testing when using unvetted checks. Take a look at the full documented list of Clang Tidy checks.

The latest addition to our list of vetted code inspections are for bugprone-swapped-arguments and bugprone-argument-comment. These checks look for potentially swapped arguments by looking at implicit conversions and detect typos in argument comments and suggest automated fixes for them, respectively.

Lastly, we’re also announcing that code inspection is officially out of beta and is now running on Clang engine version 15.0. The beta label is mostly a formality and all functionality should function the same. If you haven’t, we highly advise enabling code inspections.

group code inspection by severity

Protip: When running comprehensive code inspection checks in a file, you can sort and group issues by level. Code inspection levels refer to an arbitrary metric representing severity given to a code check. Level one signifies critical, level five being on the level of a reminder, and zero refers to unflagged checks.

Extended Shader File Customization

Visual Assist 2023.2 better Shader Support

Due to consistent demand and great feedback, a significant portion has also been given to further improve our support for shader files. In fact, as of this release, it is in the last phases of beta testing and will most likely be available for general support very soon.

In this release, you can now use custom shader file extensions (there are no longer extensions considered “default”). Coloring and syntax highlighting has also been drastically improved, with almost all bugs ironed out as well.

Enable support for shader file parsing by accessing Visual Assist Options ->> Game Development ->> Enable support for shader files.

Enable Visual Assist Shader Support

Integrated-style extensions menu (pre-Visual Studio 2019)

In Visual Studio 2019, the toolbars and plugins were rearranged. Instead of being able to access your plugins in the main toolbar, you had to instead go under the Extensions menu. 

For the most part, this made sense—it’s easier to find all installed plugins and access their features correspondingly. However, for users who had one or a handful of plugins or are more comfortable using the mouse instead of shortcuts, the extra step might be bothersome (e.g. mouse users with only VAX installed).

Some users expressed interest so we’ve added the option for an integrated-style menu for extensions (similar to the pre-VS 2019 setup). 

This new menu mode can be enabled via Extensions ->> VAssistX ->> Visual Assist Options ->> Display ->> Switch to Legacy Style Main Menu.

Implement Virtual Methods context menu option to check / uncheck all.

The last of the new features in this release is a quality of life change. Inheriting from other classes is made much easier and intuitive using the Implement Virtual Methods feature.

While in the dialog, we added a small tweak that allows users to check and uncheck all possible methods using a simple checkbox. Neat little addition, we hope.

Visual Assist’s Implement Virtual Methods feature provides a neat little dialog to make inheriting from other classes quick and intuitive.

 

Bug Fixes

  • Fixed issue where installer exe could report errors after a successful install.
  • Improved auto type deduction for const, pointers and chained function calls.
  • Fixed issue where Code Inspections could fail with the latest MSVC includes.
  • Fixed issue where shader coloring may not be applied to the correct file extensions.
  • Fixed issue where shader coloring sometimes not applied to files opened automatically on solution load.
  • Fixed issues which could lead to the VA Navigation Bar being drawn incorrectly.  
  • Fixed issues which could lead to missing icons.
  • Improved tab completion in C# to interact better with build in tooling.
  • Fixed minor visual theming issues in various VA dialogs. 

Much thanks to those who submitted their feedback and bug reports. Keep ‘em coming. Send us a message or start a thread on the user forums for bug reports or suggestions. Happy coding!

The post Visual Assist 2023.2 released first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2023/05/17/visual-assist-2023-2-released/feed/ 0 3218
Visual Assist 2023.1 released https://www.wholetomato.com/blog/2023/02/15/visual-assist-2023-1-released/ https://www.wholetomato.com/blog/2023/02/15/visual-assist-2023-1-released/#respond Wed, 15 Feb 2023 16:46:31 +0000 https://blog.wholetomato.com/?p=2978 The first update to Visual Assist for 2023 is here. This update features an extensive list of improvements and bug fixes for a variety of users. And if you haven’t, download the latest release here....

The post Visual Assist 2023.1 released first appeared on Tomato Soup.

]]>
The first update to Visual Assist for 2023 is here. This update features an extensive list of improvements and bug fixes for a variety of users. And if you haven’t, download the latest release here. We hope you find them useful! 

Improved parser auto type deduction for pointers

This release updates how Visual Assist handles auto type specifiers, particularly when reference is coming from a pointer. Previously, there was a change that when auto assignments are used, any flags (such as const) may be ignored. With this release, VA now has better pointer deduction avoiding such instances.

Parser support C# tuple deconstruction

This update is useful for those using the C# equivalent of the previously released tuple deconstruction for C++  to avoid verbose initialization of variables.

Visual Assist C# tuple deconstruction

What this update does is that when you assign multiple variables at once using a predefined struct, VA will be able to recognize those variables. Consequently, this allows its features such as syntax highlighting and navigations to function properly. 

Add parser support for C++ 17’s structured binding from a constructor

This is a simple fix for an edge case for structured bindings that happens when a constructor is used. Similar to the last fix on tuple deconstruction, what this update does is that when you use the auto function to assign variables from a struct, it will now function properly even when a constructor is called.

Support for custom shader file extensions

When we added shader language and HLSL support, one of the most prominent user requests was to be able to enable support for non-standard/custom shader extensions. 

custom shader file support extension

With 2023.1 you can now add custom files by adding the extension in a text field under Options ->> VAssistX ->> Game Development ->> General.

Better code formatting and behavior for Unreal Engine copy-paste

Users can recall that when typing Unreal-specific code, there is unintended indentation behavior as a result of VS not understanding UE specifiers such as UFUNCTION and UMACROS.  

With Visual Assist enabled, the automatic indentation present in default Visual Studio is disabled. And in this release, we’ve improved on this behavior by extending it to copy-paste. What this means is that when copying or cutting blocks of Unreal Engine code, the pasted code will still have the correct indentation in place.

unreal engine text format pasting visual studio

New UI in Find References results

Previously, when using find references, the default scope of the search was the currently opened project or file. This update is for those who found that results shown by find references seem to be incomplete— it is now more apparent that you have the option to specify the scope of the search (ie. just the open project or the entire solution).

In this release, there is a newly added notification after every search that prompts the user to redo the operation for the whole solution.

Code inspections for bugprone-inaccurate-erase and bugprone-bool-pointer-implicit-conversion

Lastly, we’ve added two new code inspections based on clang tidy for bugprone-inaccurate-erase and bugprone-bool-pointer-implicit-conversion.

The first one is useful if you use std::vector and you are using remove() or erase() which often uses hard to read/type syntax. This inspection makes sure that when you use erase(), it works properly. 

The second one is useful when you have a pointer as an argument to an if statement (or anything resembling a bool). This is because it has to be dereferenced first or else it will default to a True. This check notifies the user if the pointer has not been dereferenced. 

Both of these checks are useful because in both of these instances, the code will still compile successfully—giving a false impression that everything would work as intended.

Bug Fixes

We also have a couple of bug fixes. And although they are small bugs, we hope this would be beneficial to users who encountered problems around the following:

  • Fixed issue where icons may be missing in Visual Studio 2022.
  • Fixed issue where folders / JSON files may be unnecessarily created when hovering the mouse cursor over symbols.
  • Fixed convert suggestion listbox keyboard shortcut display to update when the shortcut is changed. Note: shortcuts shown are now dynamic.

Keep the reports coming. Send us a message or start a thread on the user forums for bug reports or suggestions. Happy coding!

The post Visual Assist 2023.1 released first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2023/02/15/visual-assist-2023-1-released/feed/ 0 2978
Visual Assist enters G2 Awards as High Performer https://www.wholetomato.com/blog/2023/01/02/visual-assist-enters-g2-awards-as-high-performer/ https://www.wholetomato.com/blog/2023/01/02/visual-assist-enters-g2-awards-as-high-performer/#respond Mon, 02 Jan 2023 20:36:29 +0000 https://blog.wholetomato.com/?p=2789 We are glad to announce that in the second quarter since listing, the popular Whole Tomato Visual Assist plugin for Visual Studio broke into the G2 Software Awards as the top scorer in the static...

The post Visual Assist enters G2 Awards as High Performer first appeared on Tomato Soup.

]]>
We are glad to announce that in the second quarter since listing, the popular Whole Tomato Visual Assist plugin for Visual Studio broke into the G2 Software Awards as the top scorer in the static code analysis segment. Visual Assist received good reviews from users and high scores in various ratings. Click here to read Visual Assist reviews on G2.

What is a High Performer and How does G2 Determine It?

A high performer is a user satisfaction indicator that signifies high efficiency and capability of software.  The efficiency score is determined using special algorithms based on user feedback. It calculates an average user satisfaction score that depends on the software’s quality and existing features. In addition, the number and quality of received reviews are also taken into account.

A high performer award means that the majority of a program’s users have rated the software highly effective for its tasks.  It is something that lives up to its claims and more. The only thing separating a high performer from industry leader status is a higher review count.

What does Visual Assist do?

Visual Assist is a productivity plugin for Microsoft Visual Studio that improves IDE functionality using a variety of techniques such as static code analysis. Visual Assist fills gaps in the coding experience of Visual Studio and allows developers to code faster, easier, and with fewer errors. It provides code understanding, code correction, code assistance, code suggestions, and code inspection features.

The main features provided by Visual Assist:

  • Syntax highlighting.
  • Enhances code suggestions.
  • The ability to easily navigate to any file, method, symbol, or reference in your projects and solutions.
  • Automatically code generation.
  • Code refactoring tools.
  • The possibility of using ready-made code snippets.
  • Code auto-completion.
  • Identifies and fixes typical programming errors.
  • Ability to check spelling in comments.
  • Support development for Unreal Engine.

Visual Assist Enters G2 Awards As High Performer

How did users reviews for Visual Assist go?

In general, users highly rated the effectiveness of Visual Assist. They noted that this tool is necessary when working with a large code base, it significantly speeds up the process of writing code thanks to the IntelliSense system, fast navigation, powerful tools for refactoring, and code autogeneration.

Visual Assist received an overall score of 4.6 out of 5 stars. In other ratings, he has the following points:

  • Ease of use – 9.2 out of 10.
  • Quality of support – 9.1 out of 10.
  • Ease of admin – 10 out of 10.

Be sure to download a free trial of Visual Assist and leave us a review after!

The post Visual Assist enters G2 Awards as High Performer first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2023/01/02/visual-assist-enters-g2-awards-as-high-performer/feed/ 0 2789
Visual Assist 2022.4 now available https://www.wholetomato.com/blog/2022/11/09/visual-assist-2022-4-now-available/ https://www.wholetomato.com/blog/2022/11/09/visual-assist-2022-4-now-available/#respond Wed, 09 Nov 2022 16:37:39 +0000 https://blog.wholetomato.com/?p=2717 The fourth update to Visual Assist 2022 is here! This release updates some core Visual Assist behaviors, adds a key C++ language feature, and adds support for external configuration files. The release also continues initiatives...

The post Visual Assist 2022.4 now available first appeared on Tomato Soup.

]]>
The fourth update to Visual Assist 2022 is here! This release updates some core Visual Assist behaviors, adds a key C++ language feature, and adds support for external configuration files. The release also continues initiatives on shader code from the previous release.

If you haven’t updated yet, download the latest release here.

Parser changes

One of the highlights of this release is improvements to Visual Assist’s parser. The parser is core to how Visual Assist understands (and therefore suggests) code.

Numerous upgrades and fixes have been undertaken to make the parser smarter. This makes it recognize modern C++ code standards and practices, thereby minimizing unwanted behavior as well. Here are some of them:

  • Now distinguishes between std::get and std::tuple.
  • Now understands parameters declared with “out int” in C#
  • Fixed parser getting confused with case’1′ inside switch statement.

Expect a steady stream of updates to parser behavior. If you encounter any bugs or errors submit a bug report on our community forums.

Support for C++17’s structured bindings

With the parser changes, VA 2022.4 also includes added support for C++17’s structured bindings. Structured bindings enable users to declare multiple variables initialized from a tuple or struct, simplifying and improving code readability.

VA’s improved parser recognizes structured bindings introduced in C++17, adding support for VA features such as code suggestion and navigation.

With this change, variables that are contained within the binding are now recognized. For example, typing a dot will now be properly colored and displayed on the navigation bar. You can also rename, search, and perform all the other actions you would expect from VA.

Continued HLSL improvement

The recently-added High Level Shading Language (HLSL) support has been augmented with coloring support for a variety of file types. This includes matrix types double4x2 and fixed3x4, and some base types such as min10float3. Because HLSL typically lacks corresponding header files, a more sophisticated understanding of code was required.

For those who are unaware, official HLSL support shipped with the previous release. HLSL and Unreal’s USF and USH files now integrate with VA’s core features.

Respecting VSCode excludes config files

Visual Assist now includes an option to consider configuration instructions similar to those used in VSCode settings .json files. This comes at the request of those who wish to skip unnecessary parsing when building solutions. 

This means that you can open a file without needing to parse an entire project or a solution, saving precious time. This is a way to essentially tell Visual Studio and Visual Assist to “open a file but do not parse anything else apart from a specific part.”

Enable the option to detect and honor exclude settings via ticking a checkbox in Visual Assist options. Here is an example of a configuration file with exclude settings:

An example configuration that VA will now recognize. Note: The actual JSON files are often configured in VS Code itself through a UI.

A new code inspection

This release also adds an inspection for bugprone-string-integer-assignment—a check based on LLVM/Clang-Tidy. It checks for easy-to-miss instances of assigning an integer to  std::basic_string<CharT> (std::string, std::wstring, etc.).

Access other code inspections by accessing the following:
(If you are not seeing options, please remember to enable code inspections!)

  • Quick Actions and Refactorings menu ( Shift + Alt + Q
  • VAssistX ->> Code Inspection (beta) ->> VA Code Inspection Results

Minor bug fixes

  • Fixed comments getting duplicated in tooltips.
  • Fixed issue where VA’s tooltips would not appear if IntelliSense was disabled
  • Fixed issue where VA Outline tooltip spreads across two monitors with different DPI settings could cause the system to freeze.
  • Fixed issue where tomato icon may become black on hover in VS 2022
  • Fixed issue where class method name that begins with “using” is missing from MIF.

For more information about the changes in this release, head on over to the documentation. We hope you find these changes useful. Happy coding!

The post Visual Assist 2022.4 now available first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2022/11/09/visual-assist-2022-4-now-available/feed/ 0 2717
Visual Assist 2022.3 now available https://www.wholetomato.com/blog/2022/08/18/visual-assist-2022-322-3-now-available/ https://www.wholetomato.com/blog/2022/08/18/visual-assist-2022-322-3-now-available/#respond Thu, 18 Aug 2022 21:18:07 +0000 https://blog.wholetomato.com/?p=2584 Visual Assist 2022.3 is out with new graphics shaders support, code inspection checks, and new navigation options

The post Visual Assist 2022.3 now available first appeared on Tomato Soup.

]]>
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.

Visual Assist HLSL support

High-level shader language (HLSL), while vaguely similar to C in syntax, is a distinct language and thus most native Visual Studio features may behave differently.

This may bring some frustration, and that’s what VA intends to fix! We’ve had some manual registry edits to let VA work with shaders, but that hasn’t been well-known and we’ve also wanted to improve our internal support before officially supporting the language.

Which is why we’re excited to announce that Visual Assist ‘s features will now work for HLSL, USH and USF files—the latter two being the Unreal Engine-specific shader files.  This includes:

  • Code navigation features
  • Syntax highlighting 
  • Context-aware smart suggestions
  • Automatic code generation prompts
Visual Assist support HLSL

Basic HLSL syntax highlighted by Visual Assist.

Please note that support is still in early beta – marking ‘beta’ is standard practice for us for key new features – and that some complex features like refactoring may have some issues. We ask that when you work with HLSL and Visual Assist to send feedback our way to improve behavior.

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’re using.

VA enable HLSL support

Note: Because it’s in beta, shader file support is disabled by default. To enable it, go to Visual Assist Options ->> Game Development ->> Enable support for shader files

Two new code inspection updates

The first check involves flagging constructors with incomplete initialized fields. Constructors don’t always initialize all fields. And some types don’t have initialization that leaves them in a ‘good’ state – one example is a pointer type. This check flags constructors that leave fields of those types uninitialized.

The second checks for a common mistake when using std::string::compare (or other string types like wstring) method to compare strings. To elaborate, the compare 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.

visual assist code inspection for std::string::compare

Check for std::string::compare

 

 

 

 

 

Access Visual Assist’s code inspections by accessing the following:
(If you are not seeing options, please remember to enable code inspections!)

  • Quick Actions and Refactorings menu ( Shift + Alt + Q
  • VAssistX ->> Code Inspection (beta) ->> VA Code Inspection Results

 

New Linux-style navigation in Open File in Solution

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. 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.

And for those who are unaware, Open File in Solution also accepts the following:

  • Negative filtering ( – )
  • Multiple entries ( , )
  • BeginsWith filter ( .string)
  • EndsWith filters ( string. )

You can learn more about available options in the documentation.

Even more

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 documentation.

We hope you find the new inspections and shader support useful, and as always, happy coding!

The post Visual Assist 2022.3 now available first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2022/08/18/visual-assist-2022-322-3-now-available/feed/ 0 2584
Visual Assist 2022.2 is here https://www.wholetomato.com/blog/2022/05/12/visual-assist-2022-2-is-here/ https://www.wholetomato.com/blog/2022/05/12/visual-assist-2022-2-is-here/#respond Thu, 12 May 2022 15:02:45 +0000 https://blog.wholetomato.com/?p=2346 Visual Assist 2022.2 has just been released! We have a well-rounded update this time— a number of new features as well as some much needed fixes. Unreal Engine 5 Support The biggest announcement in this...

The post Visual Assist 2022.2 is here first appeared on Tomato Soup.

]]>
Visual Assist 2022.2 has just been released! We have a well-rounded update this time— a number of new features as well as some much needed fixes.

Unreal Engine 5 Support

The biggest announcement in this release is the the start of official regression and other testing related to Unreal Engine 5. This also comes with some modifications to the IDE UI to make it apparent that our features work with both engines.

We’ve also updated VA’s  behavior when used alongside Unreal’s core redirect function. This adjustment allows UE devs to rename classes in their C++ code and allows their Blueprint code to find the renamed classes by editing a redirect file for them. 

Visual Studio 2022 Icon Updates

Visual Assist in Visual Studio 2022

Visual Studio 2022 introduced some style and UI changes so Visual Assist’s UI (no matter how sparse) has been updated to complement those changes. Bonus: This was admittedly the most difficult part of the release according to our amazing dev team. 

Here’s what it looks like in the IDE:

Complete view of Visual Assist 2022.2 in Visual Studio 2022

More ubiquitous code assistance

A few of Visual Assist’s popular code assistance features now work in more file types by default. For example, sorting selected lines will now work in plain text files (they were only active in source files before). Spell check will have some UI prompts (shown as underlines) that will now appear by default.

Code Inspection improvements

We also added 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.  It will now detect and correct a few easy and potentially performance costing mistakes when using std::move.

The second check for performance-move-const-arg validates user defined move constructors to ensure they are properly marked noexcept, which would prevent them from being used.

Some notes from our dev team

This release caps some long-term items we had in our pipeline. In the future, however, we would like to revert to working on less long running tasks. This helps keep our small team’s development direction agile, and thus allows better and prompt answers to user expectations.

So, if you have any suggestions, or encounter anything that needs a fix, please send support a message or post on our user forums.

For more information about the changes in this release, please read the documentation.

Happy coding!

The post Visual Assist 2022.2 is here first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2022/05/12/visual-assist-2022-2-is-here/feed/ 0 2346
Visual Assist 2022.1 has arrived https://www.wholetomato.com/blog/2022/02/04/visual-assist-2022-1-has-arrived/ https://www.wholetomato.com/blog/2022/02/04/visual-assist-2022-1-has-arrived/#respond Fri, 04 Feb 2022 18:59:53 +0000 https://blog.wholetomato.com/?p=2114 It’s a new year for Visual Assist! This was slightly earlier than expected, but in the interest of making sure that updates and fixes get to you as quickly as possible, we’ve decided on an...

The post Visual Assist 2022.1 has arrived first appeared on Tomato Soup.

]]>
It’s a new year for Visual Assist!

This was slightly earlier than expected, but in the interest of making sure that updates and fixes get to you as quickly as possible, we’ve decided on an early release! You can download the latest version of VAX here.

New features

We’ve added a few notable changes in this release. The first one is adding syntax support for  C++20’s feature, nested inline namespace definitions. For those who regularly use this feature, you can be assured that VAX will function accordingly.

The next change is for those transitioning to VAX from ReSharper. Our code inspection will fully recognize the clang-tidy skip directives annotated by ReSharper. This means that your code check directives, which you might have spent a lot of time adding, will be retained and understood when you move.

Quality Fixes

We’ve also identified and fixed an instance where the Visual Assist plugin installer might crash when Visual Studio 17.1 Preview 2.0 or later has been installed.

Lastly, the issue with CMake Build menu items showing incorrectly (or not showing at all) while trying to build, rebuild, or install projects has also been resolved.

All in all, this was a slim release but we released early in order to get the benefit of these changes to you sooner. For more information about the changes in this release, please head on over to the documentation.

Happy coding!

The post Visual Assist 2022.1 has arrived first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2022/02/04/visual-assist-2022-1-has-arrived/feed/ 0 2114
Visual Assist support for Visual Studio 2022 Previews! https://www.wholetomato.com/blog/2021/08/12/visual-assist-support-for-visual-studio-2022-previews/ https://www.wholetomato.com/blog/2021/08/12/visual-assist-support-for-visual-studio-2022-previews/#comments Thu, 12 Aug 2021 17:48:00 +0000 https://blog.wholetomato.com/?p=1996 Visual Assist 2021.3 is out now, and includes beta support for the Visual Studio 2022 Previews!

The post Visual Assist support for Visual Studio 2022 Previews! first appeared on Tomato Soup.

]]>
There’s a lot of interest in the developer community about the new version of Visual Studio, which is in preview currently. This week we released Visual Assist 2021.3 (build 2420), and Visual Assist includes beta support for the Visual Studio 2022 Previews.

VAssistX menu open in the Visual Studio 2022 Extensions menu
Visual Assist 2021.3 running inside Visual Studio 2022 Preview 3

Visual Studio Preview

Visual Studio (VS) 2022’s main change—and it’s a significant one—is that it will become a 64-bit process. Since Visual Assist (VA or VAX) runs as a plugin, in-process, we needed to build a 64-bit version of our plugin DLL. Those who have upgraded 32-bit code to 64-bit code before know that, even in well-architected code, it takes some work even just to review code to ensure it is correct. In addition, the new version adds and modifies a number of APIs we rely on to interact with the IDE. Adapting to those was the most significant change for us.

We’ve tested fully against VS 2022 Preview 2, and in fact the installer says ‘Preview 2’. There are some known regressions:

  • VA Quick Info not appearing when triggered by keyboard in VS 2022 [case: 146063]
  • Source Links example plugin does not load in VS 2022 [case: 146012]
  • Changing from Cascadia to another font for italicized system symbols requires restart in VS 2022 [case: 145979]
  • plus a few others.

Visual Studio 2022 Preview 3 was released two days ago—overlapping timing with our release—and our regression tests are showing some failures. Currently we believe those are because of changed behaviour in a Visual Studio API which we use when verifying in-IDE behaviour (ie not an issue in VAX itself), but it is always possible that once that is resolved further test failures will need to be resolved. However, we believe the current build is well worth trying out on Preview 3 as well.

Performance

Many of our customers strain the Visual Studio IDE, with many plugins and SDKs installed. Both to help them, and because we believe it’s part of being a good member of the Visual Studio ecosystem where our plugin sits alongside others, last November we greatly reduced the in-process memory usage largely through (spoiler: the full blog is worth reading) use of memory-mapped files.

Now that Visual Studio 2022 is a 64-bit process, that work is not necessary for VS2022. For older versions of Visual Studio, those techniques are still used, so if you’re using VS 2019 or even VS 2005 with Visual Assist 2021.3, you’ll still benefit from the lighter memory impact within the IDE.

When we did that work, we also focused on performance to ensure that the changes to memory access had either zero or a positive impact. The blog notes that for heavy usage, we had equal performance; for small projects, VAX actually was a bit faster. Despite no longer needing the memory usage code we added, VS 2022 benefits from that performance work as well, plus some more work we’ve done while adding support. Since it’s a beta build, and Visual Studio itself is in preview, we do not have hard numbers. But a rough guideline is that an operation like Find References that previously may have taken (say) two minutes will now take about one minute twenty seconds, or about two thirds the time.

Overall

It’s historically been very important to us to have swift support for new versions of Visual Studio, and this work is our foundation for quickly officially supporting Visual Studio 2022 when it is officially released. While the main focus of this release was VS 2022 support, there are other changes as well in 2021.3, which we’ll document in the What’s New. We know we have many customers using older versions of Visual Studio, and as well as those improvements today you can look forward to further improvements focusing on other, non-VS areas as we switch back to a more normal focus in our next release.

We’re really happy to be able to ship beta support for the Visual Studio 2022 previews, and providing an even faster Visual Assist is a happy bonus. We’ll continue to work and look forward to shipping full support when Visual Studio publishes its final release.

Visual Assist 2021.3 is available for download on our website now, and will be on the Visual Studio Marketplace in a few days. Enjoy!

The post Visual Assist support for Visual Studio 2022 Previews! first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2021/08/12/visual-assist-support-for-visual-studio-2022-previews/feed/ 2 1996
Visual Assist Build 2393 is Here! https://www.wholetomato.com/blog/2020/11/20/visual-assist-build-2393-is-here/ https://www.wholetomato.com/blog/2020/11/20/visual-assist-build-2393-is-here/#respond Fri, 20 Nov 2020 04:13:44 +0000 http://blog.wholetomato.com/?p=1743 New Build Available:
Massive Memory Reduction, Huge Performance and Speed Gains, Updated Code Inspection, More UE4 Specific Suggestions.

The post Visual Assist Build 2393 is Here! first appeared on Tomato Soup.

]]>

We’re really making an effort to keep blogs more instructional or industry related, but man o’ man is this release worth a few lines. Our team has been working behind the scenes for much of the year on performance improvements. And sure, we could’ve just done a few things here and there over time to make it feel like we were consistently improving (which we are), but with this release we decided we were ready to go all out.

Essentially we parse all of your source code and store that information in a database. Of course the larger your code base, the larger the database. And this can bottleneck you pretty bad in Visual Studio. So we’ve moved a portion of the database out of process decreasing the available memory we consume inside of Visual Studio and increasing the available memory. Yes, this is an over simplification of what we’ve done and doesn’t do justice to our developers, but download the latest, give it a whirl and let us know what you think.

Of course we didn’t stop there. We’ve updated our code inspection tool, LLVM/Clang, to the latest and greatest. We also added Code Inspection for performance-inefficient-algorithm clang checker. And we added more suggestions for UE4 macros. You can check out our full release notes here and be sure to download. Remember, maintenance must be current as of 2020.10.28.

Whether you’ve been using Visual Assist for a while or you’re brand new, you’re going to notice a difference with this build. Happy Coding!

The post Visual Assist Build 2393 is Here! first appeared on Tomato Soup.

]]>
https://www.wholetomato.com/blog/2020/11/20/visual-assist-build-2393-is-here/feed/ 0 1743
Visual Assist Build 2375 https://www.wholetomato.com/blog/2020/05/20/visual-assist-build-2375/ https://www.wholetomato.com/blog/2020/05/20/visual-assist-build-2375/#respond Wed, 20 May 2020 18:15:54 +0000 http://blog.wholetomato.com/?p=1703 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...

The post Visual Assist Build 2375 first appeared on Tomato Soup.

]]>
  • 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.

    Check out the full release notes and be sure to download. Remember, maintenance must be current as of 2020.05.09 

    The post Visual Assist Build 2375 first appeared on Tomato Soup.

    ]]>
    https://www.wholetomato.com/blog/2020/05/20/visual-assist-build-2375/feed/ 0 1703
    Visual Assist Build 2366 is Available! https://www.wholetomato.com/blog/2020/03/06/visual-assist-build-2366-is-available/ https://www.wholetomato.com/blog/2020/03/06/visual-assist-build-2366-is-available/#respond Fri, 06 Mar 2020 14:45:47 +0000 http://blog.wholetomato.com/?p=1668 Build 2366 is all about keeping the lights on and letting you code faster and more effectively. While the release includes tons of bug fixes, you’ll find that we’ve added a few new items as...

    The post Visual Assist Build 2366 is Available! first appeared on Tomato Soup.

    ]]>
    Build 2366 is all about keeping the lights on and letting you code faster and more effectively. While the release includes tons of bug fixes, you’ll find that we’ve added a few new items as well. In keeping with the latest and greatest, we’ve updated to LLVM/Clang 9.0.1. Other notable items include per monitor DPI awareness, Indentation fix for UE4 RIGVM_METHOD() and GENERATED_BODY() macros, and my personal favorite, Open File in Solution is now available during initial solution parse! Check out the full release notes and be sure to download. Remember, maintenance must be current as of 2020.02.20.

    The post Visual Assist Build 2366 is Available! first appeared on Tomato Soup.

    ]]>
    https://www.wholetomato.com/blog/2020/03/06/visual-assist-build-2366-is-available/feed/ 0 1668
    Visual Assist build 2358 is available! https://www.wholetomato.com/blog/2020/01/23/visual-assist-build-2358-is-available/ https://www.wholetomato.com/blog/2020/01/23/visual-assist-build-2358-is-available/#respond Thu, 23 Jan 2020 18:35:59 +0000 http://blog.wholetomato.com/?p=1639 New Year, New Build! Welcome to 2020 and 2358. This release was driven largely to fix an issue with our licensing server and some corruption that may have been experienced by Unity users, but why...

    The post Visual Assist build 2358 is available! first appeared on Tomato Soup.

    ]]>
    New Year, New Build! Welcome to 2020 and 2358. This release was driven largely to fix an issue with our licensing server and some corruption that may have been experienced by Unity users, but why stop there?

    • NEW Goto Related now allows hopping between *_Implementation and *_Validate implementations in UE4.
    • FIX Goto from a method declaration will now list *_Validate as a target in UE4.
    • NEW Added option (on the Goto page of Visual Assist Options dialog) to prefer implementations when executing Goto (Alt+G) (execution on the implementation will continue to go to the declaration as before).

    Take a look at the full list of features and bug fixes here. And of course be sure to update!

    The post Visual Assist build 2358 is available! first appeared on Tomato Soup.

    ]]>
    https://www.wholetomato.com/blog/2020/01/23/visual-assist-build-2358-is-available/feed/ 0 1639
    Visual Assist build 2353 is available https://www.wholetomato.com/blog/2019/11/11/visual-assist-build-2353-is-available/ https://www.wholetomato.com/blog/2019/11/11/visual-assist-build-2353-is-available/#respond Mon, 11 Nov 2019 15:55:19 +0000 http://blog.wholetomato.com/?p=1612 This release represents a turning point for our development team. We’ve made great strides in fixing bugs associated with Visual Studio 2019 and have focused our attention on the future. A major lift in this release was our move to Clang 9. Future releases will leverage Clang in new ways so stay tuned! But Build 2353 wasn’t all about groundwork, Code Inspection has some nifty new features

    The post Visual Assist build 2353 is available first appeared on Tomato Soup.

    ]]>
    This release represents a turning point for our development team. We’ve made great strides in fixing bugs associated with Visual Studio 2019 and have focused our attention on the future. A major lift in this release was our move to Clang 9. Future releases will leverage Clang in new ways so stay tuned! But Build 2353 wasn’t all about groundwork, Code Inspection has some nifty new features:

    + 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.

    + 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.)

    For the full list of features and bug fixes take a look at our release notes, or download the installer.

    Build 2353 requires software maintenance through 2019.11.07

    The post Visual Assist build 2353 is available first appeared on Tomato Soup.

    ]]>
    https://www.wholetomato.com/blog/2019/11/11/visual-assist-build-2353-is-available/feed/ 0 1612