Useful Managers v1.0
Environment: VC6 SP3,Win98
Introduction
The Useful managers Visual Studio add-in provides a number of workspace-related functions for C++ programs.1) Tag indexing and search
- Tag Manager window provides a graphical view of classes and parent/children relationships in the workspace and additional directories (MFC source for example). Can find by name declaration of class, struct, template, function, union, enum, typedefs, defines, externs, variables, members, file includes, interfaces and files.
- One-click tag search: quickly finds declaration of selected tag (class, function, etc.) and positions cursor on it.
- Automatic #include insertion. Automatically adds #include statement for header file with declaration of selected tag.
- Window Manager presents much more convinient alternative to standard "Windows" dialog. Window list can be sorted by name, time, extension or directory. Grouped sorting is suppored, i.e. you can sort by one attribute withing groups sorted by another attribute.
- Session Manager saves sets of opened windows, and allows to switch between saved sets.
- Favorites Manager allows to quickly open files from a list of favorites.
- Auto-save option saves files automatically when switching from Visual Studio to another application.
- Header/source toggle button. Switches between .cpp or .c and .h. For .rc files switches between resource editor and text mode.
- Quickly build selected projects of the workspace without checking dependencies and then run the program in one mouse click.
Installing the Useful Managers
The process for installing the Useful Managers in the Visual Studio environment is described below.1. Close all instances of Visual Studio.
2. Extract the UsefulManagers.dll and UsefulManagers.reg from the .ZIP
file.
3. Double-click on UsefulManagers.reg file and answer "Yes".
4. Copy the UsefulManagers.dll to your DevStudio\SharedIDE\Addins directory
(Visual Studio 97) or Microsoft Visual Studio\Common\MSDev98\Addins directory
(Visual Studio 6.0).
5. Open Visual Studio.
6. Go to Tools->Customize->Add-ins and Macro Files.
7. Click the check on Useful Managers Addin.
8. Click Close.
Using Useful Managers
Overview You can set size and position of all resizeable windows
from add-in and they will be saved automaticaly.
Use options dialog to customize preferences for add-in.
Tags Manager
1. Run <Update> method to build tags database (ESC to cancel). The database will be placed in tags.dat file in the same directory as the workspace.There are two directories for recursive search: directory of your workspace (if any opened) and additional directory which you can choose (for example C:\DevStudio\MFC)
2. Please edit UsefulManagers.reg if you have such constructs as
class EXPORT MyObjectand yould like to skip EXPORT tag.
{
};
2. In tree view you will see parents and children of selected class -> double-click on parent or children to go to it, or source lines with this tag -> double-click on them to open file at specified line.
3. double-click on class (struct) to open file with its declaration.
Note: There is a limit - 32000 tags of each type. So if you select additional directory C:\DevStudio, please do not find defines. Do you know that there are more than 70000 defines in DevStudio\Include\*.h?
Preferences
a) Which tags to find:
class, enum, struct, and union names
typedefs
names defined by #define
enumerators (enumerated values)
function definitions, prototypes, and declarations
variables (definitions and declarations)
class, struct, and union members
file names
includes.
b) Files to search in:
"headers" - *.h, *.hpp
"sources" - *.cpp, *.c
c) Additional Directory
d) Update information:
"manual" - only when you run <Update> method
"auto" - when you try to use tags base for the first time
after opening of Visual Studio.
Find tag
Our team has about 30 projects in one workspace. So I can't use browse info - it is too slow. And how can I find declaration of unknown for me class? Look for it in all 30 project - that is not for me and I think for you.The solution is: select a word and run <Find tag> method - that's all.
You can run <Find tag> method without selection any word, you will see input dialog with text from clipboard in it. You can type your own word or part of it. Select "case-sensitive" option and "beginning" option - is it the beginning of what you want to find. Type "CO*Except" if you want to get this list:
c:\devstudio\mfc\include\afxdisp.h(266):COleDispatchException
c:\devstudio\mfc\src\ctlimpl.h(440):COleDispatchExceptionEx
c:\devstudio\mfc\include\afxdisp.h(243):COleException
You can use Unix-style (? * + . [] [^] \ $ () |) or Windows-style (? * ) regular expressions if you've forgot a name of your class.
Preferences
Unix-style or Windows-style regular expressions.
What tags to find ("class","struct", "function","enum","enum
const","union","define","interface","member","typedef","variable","extern",
"file","include").
Session Manager
1. Open some files.2. Run <Session Manager>.
3. Press insert key.
4. Rename session as you like.
Now you can close all your files, Run <Session Manager> and select your session (Enter or double-click) -> all that files will be opened.
Note: Nothing is closed when you select any session.
Favorites
Run <Favorites> method.You'll see list of your "favorite" files (empty at first).
Then you can add new file (active at this moment) using button "insert" or delete recent file by Del key.
Double-click (press "enter") on file to open it.
Insert Include
This method is useful when you get error message like this "D:\Project\File.cpp(33) error C2065: 'MyObject' : undeclared identifier".I suggest you to:
a) Double-click on error string in debug window.
b) Select word MyObject.
c) Run <Insert Include> method.
As a result you will see new line "#include "Objects.h" in File.cpp.
Of course you can run <Insert Include> method before getting error and type "MyObject" in input dialog.
Build And Run
Select by double-click some projects in options dialog.Then run <Build And Run> button. A new thread with high priority will be started which will build your projects and then try to run your program. This is useful when you often change files in one particular (not main) project.
AutoSave
Call "SaveAll" method of Visual Studio when switching to another task. Please be careful with this option, especially if you use something like VSS.Toggle files
Header/source switching (*.cpp,*.c <-> *.h,*.hpp; *.rc resources mode -> text mode).Windows Manager
Shows sortable list of windows (file name, directory, extension, last opened time).Click on column to select sort method (it will be remembered). If you'll select directory column than the name of a file will be used for the second formation check.
You can use Ctrl+A, Del, Enter keys.
Preferences
You can remove columns with directory,extension,time.
Close or not dialog immediately after selecting a file.

Comments
FIXED BUG on W2K
Posted by Legacy on 03/15/2001 12:00amOriginally posted by: Mike Melnikov
Fixed bug on W2K (WinNT) which "eat the keyboard input"
Latest Version 2.10
for downloads visit
http://zmanagers.chat.ru/index.htm
Please report me if it still falls on W2K (WinNT)
ReplySource code and latest verion (1.1 from 04.14.00)
Posted by Legacy on 04/15/2000 12:00amOriginally posted by: Mike Melnikov
Now you can download source files
http://zmanagers.chat.ru/UsefulManagers_src.zip
binary files
http://zmanagers.chat.ru/UsefulManagers_bin.zip
or visit http://zmanagers.chat.ru/index.htm
ReplyList dependencies of project
Posted by Legacy on 01/20/2000 12:00amOriginally posted by: Md hidayathulla
Thankyou for informative notes on vc++.
plz ge me details about how to list all the project dependencies.
i like to list through vc++ code.
awaiting for ur reply.
with regards
Replyhidayath.md
Great tool - but fails on W2k
Posted by Legacy on 01/06/2000 12:00amOriginally posted by: Carsten Orthbandt
This is just what I need. But I work mostly on
Win2k (US,RC3). Some things work, others crash.
If you need more precise information (probably :),
let me know. I'll try to find the problems with
the source.
CU,CO
ReplyTest, only with source ...
Posted by Legacy on 01/05/2000 12:00amOriginally posted by: Michael Lindig
I will test your add-in but only with source code !
Reply