Update: Please see the latest post about Visual Assist X https://programmersunlimited.wordpress.com/2011/01/13/whole-tomato-visual-assist-x-review-part-2/

Whole Tomato Visual Assist X Review


For the last few .NET user group meetings, we’ve given away the Whole tomato product “Visual Assist X” as a raffle prize. The problem is, it’s the last to be selected and it’s only because no one knows what it is or what it does. I’m going to spend some time and go over the product and review its features.

Visual Assist X is a Visual Studio add-in. Whole Tomato claims that Visual Assist X will allow developers to write code faster, better and with less bugs.

My first impression on Visual Assist X was that it seems to be focused on C++ as it makes many references to C++ and header files. Looking at their web site, you can see that they have a working version for Visual C++ 6 and in a lot of their screen shots you can see that is what they are using.

After I installed Visual Assist X and opened a solution in visual Studio 2008, I was appalled by the color scheme changes. I have a very specific dark theme that I spent time customizing. Class names, strings, local variables and everything else you can imagine had changed to vibrant reds, yellow and blues. I quickly went into the Visual Assist X configuration and there is a check box to turn off the “helpful” colors which was a relief as I didn’t have my color scheme backed up.

Even though I saved my colors, there are still some “helpful” features which make my Visual Studio 2008 look more like Visual Studio 2010 such as highlight matching for braces and symbols. I don’t like it in 2010 and I don’t like it in 2008. The problem is you can’t configure the colors and the default colors don’t go with my theme. This isn’t a deal breaker though. Let’s have a look at the other features.


Visual Assist X adds in its own refactoring menu in the code editor right click menu. Most of the features are already available in Visual Studio and work much the same such as

  • Rename
  • Extract method
  • Encapsulate field

Change signature
Back in C++ days you had to declare the method signature at the top of the file, then you’d have a separate are for the actual declaration. This refactoring feature is really only useful for C++. It’s almost useless in C#. A dialog pops-up with a generic text box to allow you to make your changes and after you click ok, you’re given a “Find all references” window to show you all of the locations that reference the method. Renaming the method can be done with the built in Visual Studio rename method and will update all references. I changed the order of the parameters and all I got was a warning box. Not useful at all.

Move Implementation to Source File
This is a feature I thought would be great since I can write what I need to then go back later and move classes into their own files instead of doing it all manually (Visual Studio 2010 will do this for you). Unfortunately this is only available for C++ users as it’s meant for “Implementations”. With C++ you can have your signatures and implementations in different files.

Add Similar Member
This is a feature that I thought was a nice to have but could use some more enhancements. If you declare a method, instead of copy/paste, you can ‘Add similar member’ and the method signature will be copied for you. This doesn’t really save that much time, if any over copy/paste if you are good with keyboard shortcuts in Visual Studio. All it does it adds brackets for you so you don’t have to.

Add Member
Add member was kind of nice because you can select a class instance and then ‘Add Member’ which will give you a dialog to enter a new member. The new member will be added to the class and you stay where you are so you can start using the new member. This is a time saver as you don’t have to switch back and forth between pages or ‘Go to definition’. However, the generic text box doesn’t really cut it. A better editor would make this feature so much nicer. Visual Studio 2010 already has this feature built in.

Document method
This is a useless feature. Simply placing your cursor above the method and typing /// will produce the exact same results. This feature could have been a great feature if only it would have included the tags automatically. Since I have to manually add them, it doesn’t save any time and Visual Studio already has this feature built in.

Create from usage
This is a somewhat useful feature, but it also needs enhancements. With this feature, you are able to consume-first. But, the generic text dialog is limited and the default is to make the variable a class level field instead of making it default to local scope. Visual Studio 2010 has this built in and is more advanced.
The rest of the refactoring features are mostly meant for C++ developers so I won’t bother reviewing them.

Read Code Faster

As stated in the intro, Visual Assist X will change the color scheme in an attempt to make code more readable, but in reality, people are used to their color schemes and these color changes would make it harder to read until the user adjusted.

Local symbols in bold
This actually only highlights them, no bold which I would have preferred over the highlight.

Stable symbols in italics
I could not get this to work. No highlighting or italicizing of the symbols.

Highlight braces {} & []
This feature is already available in Visual Studio 2008. Also, the Visual Assist X configuration for the highlight did not work. I wanted red and magenta but the settings never took effect.

Column indicator
This feature was available in Visual Studio 2005 but you had to hack the registry. With Visual Assist X you don’t have to hack the registry.

Highlight current line
I could not get this to work.

Highlight find results
This works and could be useful if you have a lot of results on a code page. When you hit the Find button the first time, all other matches on the code page will be highlighted too.

Write Code Faster

There are more worthwhile features in the section the others.

If you have a method called ‘ThisIsATestMethod()’, you can type in ‘tiatm’ and Visual Assist X will suggest that you are wanting the ‘ThisIsATestMethod()’. I tried to trick it by making the method name all lower case and it still suggested the correct method. It’s useful if you have long method but I can only see this being useful under specific circumstances.

This feature is nice to have in Visual Studio 2008 and earlier (it’s already available in Visual Studio 2010 though). Normal intellisense uses ‘Starts with’ searches. Shorthand will use ‘Contains’ searches in order to display the intellisense results.

Surround selection
This feature allows you to surround a block of code with comments or directives. This feature is already implemented in Visual Studio in many different and enhanced ways.

VA Snippets
Snippets are already a part of Visual Studio and there is even a built in manager. This feature by Visual Assist X requires that you have the entire line selected for the surround to work. Visual Studio does not.

Insert of },),]
Once you get used to it happening, this is a useful feature and one that I like. It automatically puts in the closing brace, parenthesis and/or bracket.

Format after paste
Formats code that is pasted. Visual Studio already supports this.

Multiple Clipboards
Visual Studio as well as Office products support a clipboard ring. However, in Visual Studio, there is no visual ring after Visual Studio 2003. Visual Assist X provides a context menu when you press Ctrl+Shift+V to paste and you can select from a list of all the previously copied/cut text. This is a nice to have.

Auto using and Add Include Directives
This feature has been available in Visual Studio since 2005.

All of the rest

Basically to sum it up, Visual Assist X would be a sweet tool to have if I were still developing in Visual Studio 6 because it would give features available in Visual Studio 2010. But, since everyone in my local user group is a .NET/C# developer and uses Visual Studio 2008 and 2010, this product is just redundant and does not provide any added benefit that can’t be had by better products such as Resharper or just using the built in features of Visual Studio.

For $99 it just isn’t worth the buy. If you can get it for free, give it a whirl but I don’t recommend purchasing this product.