Click here to Skip to main content
Click here to Skip to main content

Tagged as

Useful Managers

, 11 Aug 2001
Rate this:
Please Sign up or sign in to vote.
An add-in for Devstudio that provides tag indexing and search, window, bookmarks, session and other managers
<!------------------------------- STEP 3 ---------------------------> <!-- Add the article text. Please use simple formatting (

,

etc) -->

Introduction

"Useful Managers" (UM) is an add-in for Microsoft Visual C++. It is a collection of functions which are not implemented by Microsoft but exist in other tools, or that can decrease the workload for developers. It was made to simplify my own work and the work of my friends. I think it can be useful to other people too. The UM add-in is provided for free, with full source code.

Main features:

  • Tags, File, Project Manager.
  • Find tags, using regular expressions.
  • Save diagram of classes as a picture to a file.
  • Push, Pop bookmarks.
  • Remember the bookmarks set in a file and re-sets them back if the file is opened later in MSDEV.
  • Bookmarks Manager.
  • Windows Manager (with explorer-like menu).
  • Sessions Manager.
  • Favourites Manager.
  • Building only needed projects.
  • Save files when switching tasks.
  • Auto inserting necessary headers.
  • Save MSDEV settings.
  • and much more...
  • That's all only in 85K dll

These screenshots explain features:

The code demonstrates the following techniques:

  • Many (nearly all) techniques that are used in other add-ins on codeproject.com
  • Expansive using of STL, MFC and WTL
  • Providing set of iterators to manipulate MSDEV DocIterator, ProjectIterator and others.
  • Using lexer grammar.
  • Abstract class and implementation for redirecting child process's STDOUT and STDIN.
  • Using Thread, Timers and critical sections.
  • Changing dialogs at run-time.
  • Adding buttons with tooltips to a window caption.
  • Using OCX controls.

Feedback

I am sorry I can't enumerate all the classes here and show how to use them, but I'll answer any questions anybody has about my classes.

Note

Make sure to check out the my web site which is more likely to have updates and betas:
http://www.zmike.net

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Mike Melnikov
Web Developer
Russian Federation Russian Federation
Mike has been programming in C/C++ for 11 years and Visual C++/MFC for 4 years. His background includes pure and applied mathematics, engineering and physics, and he is currently based in Moscow, Russia.

Comments and Discussions

 
Generalfeature request PinmemberDanG28-Aug-01 17:19 
GeneralRe: feature request PinmemberMike Melnikov29-Aug-01 21:15 
Questionhow to get the Tags List to recognize Macros PinmemberDanG16-Aug-01 23:25 
AnswerRe: how to get the Tags List to recognize Macros PinmemberMike Melnikov17-Aug-01 5:35 
GeneralRe: how to get the Tags List to recognize Macros PinmemberDanG19-Aug-01 15:48 
GeneralRe: how to get the Tags List to recognize Macros PinmemberMike Melnikov22-Aug-01 5:17 
Hello DanG.
 
Your idea is good. I haven't think in this direction. And I'll try to describe, why.
 
I can write regular expression for class declaration and than apply your algorithm. But real parsers push in stack all tags they found and compare types of these tags with our grammar templates. The problem to understand type of a tag from its name. So we need to walk up and down our stack. And sometimes look "forward" for some steps (not all engines allow it). Engine I am using allow stack with fixed depth = 2. I am afraid I can't gather all words after keywords as class, struct and so on. I am not sure that you understand my muddled explanations but I hope understand main problem.
 
2 little examples:
I. templates:
class namespaceName::className1;
class className1::className2;
 
when we found "class A::B;" - A - is it class or namespace?
 
II. templates:
1. if (expression) expression1;
2. if (expression) expression1; else expression2;
 
when we find string "if (true) foo();" that coresponds template(1) should we add found statment or should we know about all other templates add found template(2) that have template(1) inside and continue parsing. If "else" not found we should return back for some steps.

Moreover my algorithm just remove known macros from scan process and we can have such macros anywhere in text. Parser just skip it.
 
I'll repeat again - your suggestion looks like easy to implement but regrettably it is not so.
Nevertheless, thank you for you attention.
 
Mike.
GeneralRe: how to get the Tags List to recognize Macros PinmemberDanG28-Aug-01 17:18 
GeneralFiles are missing PinmemberAnonymous13-Aug-01 0:03 
GeneralMirror site and new sources PinmemberMike Melnikov13-Aug-01 4:08 
GeneralFixed problem with CPU usage and some bugs - visit web site. PinsussMike Melnikov23-May-00 5:44 
GeneralRe: Fixed problem with CPU usage and some bugs - visit web site. PinmemberPreston L. Bannister4-Jun-01 8:23 
GeneralVery useful, but causes the CPU to max out at 100% PinsussPeter Kenyon21-May-00 18:47 

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

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

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.141223.1 | Last Updated 12 Aug 2001
Article Copyright 2000 by Mike Melnikov
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid