Click here to Skip to main content
13,249,174 members (35,725 online)
Click here to Skip to main content
Add your own
alternative version


45 bookmarked
Posted 25 Jul 2002

SmartHelp 3.04, a multi-functional VS.NET add-in

, 25 Jul 2002
Rate this:
Please Sign up or sign in to vote.
A handy VS.NET add-in that adds a bunch useful utilities

Sample Image


Here are the features contained within the SmartHelp3 add-in:


This extension will automatically insert a closing brace as the opening one is being typed. If you'd like to do so, there is the ability to write-through those inserted closing braces automatically.

Auto-complete on TAB

This extension will allow you to use the TAB key in order to do the Complete Word action, commonly assigned to the clumsy ctrl-space combination. Note that you will still be able to use the TAB key's original function of inserting tab characters.

Auto-open header

You'll be familiar with this extension if you have used the WndTabs add-in in previous Visual Studio versions. It will always open a source file together with its matching header file. Also, there is a possibility to automatically close them together.


As its name suggests, this extension will automatically save all currently modified files in desired intervals.


By invoking the Cast action, a dialog will open for you to determine the target and the cast type for the cast expression which is to be inserted afterwards. Although it is not particularly useful, this could come in handy for performing additional casting within large expressions, especially if you are using the Grapple tool found within the Small commands extension.

Current line highlighter

It will colour the line in which the cursor currently is.

Extra output line

As the displays before your eyes are regularly too small, you might appreciate this simple extension - it will bring you one more line in the Output tool-window.

File layout

With this extension, you will get another Class View-like tool-window which might come in handy. It's purpose is to make browsing through a file easier by displaying the current file's layout and constantly marking the cursor's location within it.

Another usage of this extension is to quickly switch to a desired function/class by displaying the class layout after invoking a hotkey.

Help layout recorder

You'll be familiar with this extension if you have used previous versions of SmartHelp (series 1.x and 2.x). Every time you code something, your MSDN is active and its contents tree is opened in accordance to the context you are working on. If you, at some point, stop and decide to close the current solution, the next time it is brought up, the state of the MSDN's contents tree will be lost. You might get irritated by this since all those relevant topics cannot always be found again easily. If you comply to the presented situation at least occasionally, you'll be happy with this extension which simply stores MSDN's contents tree's layout on shutdowns and restores it once you have resumed your work.

An another feature that is offered is Favourites, a collection of your favourite documents, tools and MSDN topics. I'm aware of a great overlap with Internet Explorer's favorites, but I find the idea of mixing internet and coding related links together silly.


After invoking the Override hotkey, a window with a list of all overrideable (virtual) functions available at the current context will come up on your screen, grouped by interface/base class they came from. Override action is just a double-click away.

Small commands

As its name suggests, this extension contains many small related and nonrelated commands. A collection includes the following:

  • the possibility to sort selected lines

  • the possibility to reverse selected lines

  • a command for toggling between a source and a header file (a classic Flip Header feature)

  • a command for toggling between a document and a MSDN help window

  • a command for inserting #if-#endif pair to a header file as a portable solution to the Microsoft's #pragma once statement

  • a command that extends the current selection to the next parentheses (scope) level

  • a command for inserting a GUID

  • the possibility to exchange the current selection with a clipboard contents

  • the possibility to toggle read-only file attribute

  • a command to maximize VS.NET (potentially useful in conjunction with Startup extension)

  • a command to refresh VS.NET by unswapping all its memory - response times will become much faster if your VS.NET has been minimized for a long time

  • a command to garbage collect VS.NET (useful if you are developing an add-in with mixed managed and unmanaged code; completely useless otherwise)

  • the possibility to turn on the theme support in VS.NET (don't expect miracles here)

Smart exceptions

This extension greatly improves a way of handling exceptions. Debug/Exceptions dialog is very nice and useful, but occasionally it becomes kind of limited for it only gives you a rudimentary exception control (you had surely noticed this, for example, if you use both exceptions for an error handling and a flow-control) - you can easily miss some important exceptions, or get irritated by a debugger which breaks too often. Smart exceptions extension allows you to fine-tune conditions where a debugger breaks or continues. You are now able to override the Debug/Exceptions settings in manually selected files, classes, functions and code blocks.

An another treat you'll receive is an exception history window where all broken and continued exceptions will get logged, along with variables state at the precise moment.

Smart outliner

Since my Amiga-days, I have greatly missed the Outlining editor feature. I was astonished when I saw it finally implemented in the Visual Studio, but I automatically got vastly disappointed since no information about an outlined block were saved between sessions. Although not exactly perfect, this could be accomplished using this extension.

There are two ways in which the Outlining works:

By default, automatic outlining is on, which means blocks are automatically placed by some VS.NET's algorithm. Unfortunately, SmartHelp's solution for this mode is kind of dirty - it could require even several seconds during for file close operation to get all needed data and there is a small chance that saving folds state won't succeed. Sad, I know.

In contrast to the previous mode which requires very little or no time at all to get accustomed, manual mode expects some patience and discipline at first. However, you'll have much better control over a folded block, and as a reward, you'll get your folds perfectly stored (via this extension, of course) and, later, restored.

Spy++ on top

If you are a regular user of Spy++ utility that came along with the Visual Studio, there is a great possibility you have missed the classic stay-on-top feature at least once. So, here it is.


This extension will allow you to bind an execution of some commands with any of the few basic VS.NET's events (VS.NET's startup, open/close solution and changes between design and debug modes). According to the initial configuration, here are a few ideas you might realize with this extension:

  • VS.NET can always get maximized on startup

  • you can get same tool-windows visible while going to the debug mode

  • the ViewWhileSpace option will turn on automatically

  • ...

Whole line select

This simple extension will give you the possibility of having whole lines selected on a triple click. You can also choose to be brought back to the previously used document by a triple click on a help window.


For more information, more support options, more frequent version updates and even more features, please visit


3.04, 2002-07-21, A bugfix release (with source code).

3.03, 2002-06-21, A small bugfix release.

3.02, 2002-05-05, First release version.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Goran Mitrovic
Croatia Croatia
No Biography provided

You may also be interested in...

Comments and Discussions

GeneralSorting. Pin
Peter Hendrix27-Apr-04 22:37
memberPeter Hendrix27-Apr-04 22:37 
GeneralRe: Sorting. Pin
Goran Mitrovic11-Jan-05 21:30
memberGoran Mitrovic11-Jan-05 21:30 
General100% CPU for me Pin
JTrack3D7-Aug-03 9:28
memberJTrack3D7-Aug-03 9:28 
GeneralRe: 100% CPU for me Pin
JTrack3D7-Aug-03 9:32
memberJTrack3D7-Aug-03 9:32 
GeneralNothing happened after I've installed this add-in( Pin
Autov M25-Jul-03 2:59
memberAutov M25-Jul-03 2:59 
GeneralRe: Nothing happened after I've installed this add-in( Pin
Goran Mitrovic27-Jul-03 0:20
memberGoran Mitrovic27-Jul-03 0:20 
GeneralRe: Nothing happened after I've installed this add-in( Pin
Allixria16-May-05 21:47
sussAllixria16-May-05 21:47 
General:) Pin
Perica Zivkovic29-Jul-02 22:09
memberPerica Zivkovic29-Jul-02 22:09 
GeneralProject wont compile after installing Smarthelp :( Pin
leppie27-Jul-02 7:57
memberleppie27-Jul-02 7:57 
GeneralRe: Project wont compile after installing Smarthelp :( Pin
Goran Mitrovic27-Jul-02 9:49
memberGoran Mitrovic27-Jul-02 9:49 
GeneralRe: Project wont compile after installing Smarthelp :( Pin
leppie27-Jul-02 14:27
memberleppie27-Jul-02 14:27 
GeneralWhere's.... Pin
Darren Schroeder26-Jul-02 17:27
memberDarren Schroeder26-Jul-02 17:27 
GeneralRe: Where's.... Pin
Goran Mitrovic27-Jul-02 2:53
memberGoran Mitrovic27-Jul-02 2:53 
GeneralRe: Where's.... Pin
mrsnipey14-Sep-05 16:01
membermrsnipey14-Sep-05 16:01 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.171114.1 | Last Updated 26 Jul 2002
Article Copyright 2002 by Goran Mitrovic
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid