Visual Sidekick by Syntaxia TechnologiesWriting about Visual Sidekick is a little bit more difficult. Not that it's complex... it's more difficult because it replaces a feature that is already in Visual Studio. Also, some features are contained in other tools that I review.
Basically Visual Sidekick integrates improved code navigation and code generation. Let's see how this is done...
Integration and functionsAfter installation and upon the first start of Visual Studio, Visual Sidekick greets you with the key bindings it supports. These are split into different topics such as browsing, navigating, pane control and others. For each of these topics, you can select and de-select those you might want to use.
The browsing key bindings enable you to jump between the different Visual Sidekick views while the navigation key bindings allow you to quickly switch between header and source files, or to go to the next occurrence of a symbol.
The pane control keys open different windows such as Sidekick's solution view, the class hierarchy view or the current file symbols view. It's also possible to open a view containing the unmanaged C++ library symbols or the clipboard history.
Last but not least, the only key binding under "Other" is the possibility to automatically generate method bodies.
Once Visual Studio is fully started and you have opened your solution, Visual Sidekick parses your solution files and unmanaged libraries which might take some time.
Visual Sidekick integrates into Visual Studio in different ways: A toolbar, the above mentioned key bindings, the VSK menu and the VSK tool window.
The toolbar gives access to five basic functions such as quickly activating or deactivating VSK, browse the current symbol, switch between header and source, go to the next associated symbol or generating method bodies.
The VSK menu is quite basic and contains submenus to access the view panels, set the options, access the help system and handling file operations such as restarting the file parsing and importing unmanaged libraries to be parsed. It's also possible to access a solution statistics window through the view sub menu but my experience is that this feature is buggy with projects containing a lot of source files and a lot of lines of code (>1.000.000).
The real strength of Visual Sidekick is its view window. It's split into four parts:
- the top part contains some icons to select the view type you want to have (current file symbols, solution symbols, class hierarchy, unmanaged C++ library symbols and the clipboard history) and some (useless) helper buttons.
- Then you have the two edit fields which act as a combined filter for symbols searching.
- Next is the view content itself which will mirror the search result triggered by the text you entered in the two above mentioned edit fields.
- Finally there's the symbol information pane which will contain the filename, the project path, and additional information about the currently selected symbol.
The most impressive view is the solutions symbols view. If you have a basic Visual Studio, you know the class view or the object browser. Neither of them is particularly fast or intuitive. Before you actually see any result, you have to type in letters and then hit enter. Only then a search is started and you'll the results will appear.
Visual Sidekicks solution symbols view actually combines both and even surpasses them by making the result instantly visible while you're typing your letters!
Imagine you want to find a function name "onExit()". Once you start typing in the edit field, the results appear. In my current solution (which is SSCXML) I type in "on" and I instantly have not only all functions starting with "on" (such as OnClose(), OnDestroy(), OnExit(), onEntry(), ...) but also all classes starting with "on" (such as "OnEntry" and "OnExit") and all files in my solution starting with "on" ("OnEntry.cpp", "OnEntry.h", ...).
Those three different types of information are grouped and separated by a black line (Classes on top, then files and finally the functions). A double click on any of the entries opens the according file and, in case you double clicked on a class or a function, jumps to the implementation.
As you can see in the screenshot the view entries are tree nodes. Opening them enables you to access ie. class member functions, derived and base classes or the content of the entire file.
The symbol information pane tells you in which folder a file containing the function or class is located and to which project it belongs. If you have to work with a solution containing more than a thousand files in seven or eight different projects, this is very precious and saves a lot of time.
The current file symbols view basically contains the same information as the solution symbols view, but the content is pre-filtered to contain only entries concerning the currently opened source file. It also includes information about the files (and classes or functions) that have been included through header files.
The top part of the entries contain an improved file browsing region. You see the file and directory structure as it is on your hard drive and you actually can browse to a file and continue browsing down into the file to access classes or functions. Either I haven't yet fully grasped the use of this feature or this is only available because it is cool and we're all geeks ;)
The class hierarchy browser is a very improved version of the one included in Visual Studio. In the screenshot you can see a direct compare of the two. While the VSK class hierarchy view really shows the hierarchy, the derived classes, their base classes and the functions, the Visual Studio class view contains all classes in your solution. You have to search for your class, open it, see that it has derived types and base types, open those branches and go wherever you want. Again VSKs class hierarchy browser contains information about the file location and the project to which a class belongs. Easy and straightforward... and fast...
Another nice view I like a lot is the "View of the unmanaged C++ libraries". Sounds like a horror film but actually is powerful if you want to quickly find any given function of I.E. the base win32 library. Just type in the first the first letters (such as "dwPro" of "dwProcessId") and you instantly get a view of all symbols according to what you've entered including information to which structure or class it belongs, to which library and in which include file it is located. Through the options menu you can select and de-select the libraries you might want to include or not.
Finally, there's the clipboard history. While I'm actually not the guy who does a lot of copy and paste, I know people doing it constantly. Having this kind of history enables you to quickly access the "snippets" you might want to paste at any given position of the code. Put your cursor where you want it and double click on the entry in the history. Unfortunately, it's not possible to simply select an entry and then hit Ctrl+v.
Ah yes... another thing that is the automatic code generation. In fact, it simply generates method bodies for class member functions that you might just have added to the class in the header file. While it might have its appeal if you have entirely defined a class in the header and you want to move it over to the cpp-file, it's less useful for those who have just added one function or two. I think most of you, as I, have their "style" how to format the function implementation in the cpp-file. So the extra 10 seconds you gain when you just add one function...
There are certainly other tools that can handle code generation better than this tool.
To improve your workflowAs I said in the review above, the strength of Visual Sidekick resides in the view pane and its possibilities. So it helps less improving your workflow in the sense of writing your code more quickly or with less errors, but it certainly helps you to gain a better overview and better access to functions, classes and files. Specially if you have large solutions.
I don't really use the key strokes since I currently use Visual Assist in parallel.
OptionsTo be honest, there are not very much options to trigger. The only interesting ones are the unmanaged libraries you want to include into the parsing and the way the methods are displayed in the view (with or without parameter types and identifiers). But, as far as it concerns me, I don't really need more options.
It's possible to toggle the different key bindings but not to assign other keys to them. But then you can do this through Visual Studios key binding options.
A tip: Try using the right mouse button on the different entries and see which options are available. They range from different filtering options to copying the file name. Very useful...
PricingVisual Sidekick costs $29 for a single user license and $399 for a site license.
The price includes all updates until the next major release (current version number is 3.0.221) and one year of free email support after date of purchase.
I didn't say it before but any software that I review comes with a trial version. I don't buy a cat in a sack. So, if you want to try the software before you purchase, please refer to the softwares web site and make use of the trial version.
ConclusionVisual Sidekick is more than a good replacement for the build-in Visual Studio class browser. It's simply a great one. Finding classes, files or functions never was this quick and easy. And this is just so helpful if you have to maintain a large code base.
The different views have all their advantages and it's difficult to find a problem with them. The usage of the two edit fields is a bit un-intuitive in the beginning, but once you get used to it find start to find it helpful... but you can live without it. One edit field normally is enough to access anything you want.
The symbol information pane is a very good enhancement to the views because it gives you a good idea about where to find the file and to which project it belongs.
- Seamless integration into Visual Studio.
- Great replacement of the Visual Studio class and object browser.
- Super fast when filtering.
- A lot of "tools" accessible through the context menu.
- useless key bindings.
- useless code generation.
- not much options, but then who needs them.
- Had only 2 updates last year.
- No forum hence no visible community.
- No roadmap or whatever visibility about the future of this great product.
I hope you enjoyed the reading. Please don't hesitate to comment and to make suggestions on what to improve.
The next review is open to you... please make a comment which one I should review... here's the list:
- PC Lint by Gimpel Software
- Visual Lint by Riverblade
- UltraEdit by IDM Computer Solutions, Inc.
- UltraCompare by IDM Computer Solutions, Inc.
- WinMerge (Open Source)
- Enterprise Architect by Sparx Systems
- Team Foundation Server and Team Foundation Explorer by Microsoft
- AnkhSVN (Open Source)
- TortoiseSVN (Open Source)