Finally I was able to get around to re-evaluating Whole Tomato Visual Assist X (10.6.1845.0). Here is my final opinion.
I used the points mentioned in the email to me from Kevin Sikes (See review #2) as a starting point and working through a project to get a feel for the other features.
What was good or better
Open File in Solution
This feature doesn’t seem like much when used on a small solution so I made sure to use an extremely large solution and it was excellent. Normally when I need to get to a specific file I have to navigate the solution tree. Since I over organize my projects this means going down a few levels. When the solution has 10 or more projects this can become time consuming.
Using the Open File in Solution feature of Visual Assist X it was extremely simple to find the file I wanted to open. The dialog initializes with an entire list of files in the solution and as you type what you want it narrows down the list using a ‘contains’ type of search so even if you’re not 100% sure what the file name is, you still have a good chance of finding it.
Visual Studio already has this feature built in and includes a bunch of options that Visual Assist X doesn’t. However, the Visual Studio implementation is annoying and cumbersome. Visual Assist X quickly encapsulates a field without any annoying dialogs. The end result isn’t exactly how I like to encapsulate my fields since I like to rename the private field prefixed with an underscore and then set the property name to the original field name. Visual Assist X uses a proper case version of the field name. The problem is that if the field is already proper case, you will get a dialog asking what to call it.
You can change the snippet for the encapsulation using the ‘Edit VA Snippets’ dialog so you can add your modifications as you see fit.
Note: For those familiar with dFactor, the Visual Studio add-in I developed, you know that I prefer to rename the field using an underscore prefix. This prevents any possible name collisions. I also added many variates of this method such ‘Add Backing’ for properties with no backing. I would like to see more of these features available in Visual Assist X.
As I stated in previous reviews, I like the spell check. It seemed kind of silly at first, but it isn’t. After typing long strings for error messages, you start to wonder if you’ve spelled everything correctly. Visual Assist X checks your strings for misspelled words and provides red squiggles when you have a misspelling. Spell check is smart enough to know when you’ve entered the name of a member which is nice because if you’ve ever typed code into Word, you know that member names usually get red squiggles.
Comments: /* */
If you’ve ever needed to comment out just a portion of code you have either used the ‘Comment out the selected lines’ option in Visual Studio or you’ve surrounded the code with /* */ manually. Visual Studio doesn’t allow commenting portions of code. It comments out the entire line(s) using //. Highlighting a bit of code and pressing the * key, Visual Assist X will surround the bits with /* */ for you. Very convenient.
Refactoring code using VA Outline
The VA outline window gives you a view of the class definition (methods, properties, regions, etc). The VA Outline window allows you to select multiple methods at a time. From the ‘Surround’ context menu, you can wrap the selected methods in a region or comment them out. Other options include copy/cut/paste items as well as deleting them.
This is extremely helpful if you are trying to remove or comment out large methods or you’re trying to organize code using regions. The overall refactoring options are a bit limited but the ones that are there are very useful.
Reordering code using VA Outline
Using the VA Outline window, you can drag & drop members of the class to change the physical location of the declarations in the class file. The most beneficial part of this is that the VA Outline window shows regions. You can drag multiple members into the regions right from the VA Outline window. Doing this manually in code is usually time consuming and painful if you have large classes.
VA Navigation bar & List Methods
Visual Studio already has this functionality, but only to a certain degree. Where Visual assist X shines is that it gives you an outline of the members in the file, not just the current class, but it also shows you where you are inside of a construct. For example, if you’re deep inside of nested if/else/loops etc it gives you an indication of which construct you’re in. Kind of like a ‘You are here’ feature. For example, if you’re inside of an if/else if/else statement that is 100 lines long, you can click on a line of code and see which construct the code is contained in. My only complaint is that it doesn’t show the hierarchy, just the current location. I would like to see not only which construct I’m in, but also the construct parent and siblings so I can navigate quickly to the other constructs.
This is great because Visual Studio doesn’t have a snippets editor and Visual Assist X gives you a nice dialog to edit or create new snippets and assign the shortcut keys. No more manually editing files. Although the editor does give syntax highlighting, there is no intellisense but you can get a list of macros that can be inserted by right clicking in the code window or you can find a list on their web site http://www.wholetomato.com/products/features/vasnippets.asp.
Visual Assist X does have more features than Visual Studio does such as the ability to place the cursor after the snippet has been inserted, access to the clipboard, inserting date/time and even creating GUIDs. With the extended functionality VA Snippets provide, they are very powerful.
I liked this feature the more I used it even though it functions the same as Visual Studio intellisense, by default it limits what you see to the current solution. For example, in a small project containing a few classes I typed ‘S’. Visual Studio gave me a large list of items containing ‘S’ where as Visual Assist X only showed me a list of 5 items. However, if I’m needing to ‘search’ or ‘browse’ intellisense to find an item, Visual Studio intellisense is a better choice. Visual Assist X allows you to switch to the Visual Studio intellisense using ctrl+space.
What was questionable
Change Definition features
These features don’t offer anything special for .NET developers and are still more for C++ developers.
What was a fail
Still not dark theme friendly
I turned off the default syntax highlighting to give me back my original theme, but there were still some issues such as the brace matching turns the curly braces black so I can’t see them. This was easily fixed in the config by setting ‘Display’ option to ‘min’.
Create Similar Member
When using the refactor option ‘Create Similar Member’ for a constructor, it doesn’t work the same as it does on a method or field. It adds a declaration to the current class like it was a field. By default if my constructor/class is called ‘SimpleClass1’ and I used Create Similar Member on it, it would add to the bottom of the class
If I remove ‘class’ from the declaration it still adds the new member in the same way just without the ‘class’ bit. Create Similar Member doesn’t work on properties either. Not sure why, but it doesn’t.
Overall, Visual Assist X is getting more useful for .NET developers. Whole Tomato is going in the right direction, but I think they should focus on providing features Visual Studio doesn’t have. At the end of the day, you’re going to have to give it a try yourself and see if it’s worth the investment or not.
Visit http://www.wholetomato.com to get a trial or Visual Assist X.