Main Page
News

Features
History
FAQ

Order
Downloads

WWhizInterface

Support
Links

Other Add-ins
Misc. Code

History

2/19/2002 - Version 2.15 Beta 3

Features/Changes

  • Ctags: Upgraded to Exuberant Ctags 5.2.2.

Programming Interface

  • A v-table problem was corrected.

4/12/2001 - Version 2.15 Beta 2

Features/Changes

  • Autocomplete Tags: The window is draggable with the mouse (just click a gray area).
  • Files: Global File Open dialog now determines the platform type and opens the correct set of global include and source directories (such as Win32 vs. Xbox).
  • Files/Tags: Combo box histories are stored for all the edit fields.
  • Extra Files: The Extra Files dialog can toggle whether a given project should be refreshed on each task switch or just loaded once and ignored.
  • Tags: Ctags.exe has been sped up and stripped down to just the C/C++ parser.
  • Tags: Tag writing is faster.
  • Tags: New Ignore Tokens list results in better tag parsing.

Bugs Fixed

  • Autocomplete Tags: Failed when restoring a tag in the middle of another tag.
  • Files/Tags: Sometimes weird crashes would cause the values for the column widths in the dialogs to go screwy and nothing would show, although the columns could be adjusted back into place. An attempt to compensate for the problem has been made, although the source of the problem is unknown.
  • Files: Context menu uses the case sensitive filename.
  • Header Flip: Put the flipping order back the way it used to be, which was: 1) Check the project, 2) Check the workspace, 3) Check the same directory, and 4) Check the global files.
  • History: A crash bug involving certain combinations of history usage has been fixed.
  • History: The X and Y columns were flipped. Fixed.
  • Tags: Sometimes the tag list would become corrupt. Fixed.
  • Tags: The context menu was retrieving the wrong values for copying the tag name or tag parent to the clipboard.
  • Tags: Find tag at cursor was broken when the caret was at the end of a word and a space followed.
  • WWhizInterface: Better relative path resolving, especially for CvsIn.
  • WWhizInterfaceInstaller: Incorrectly identified the Visual C++ 6.0 path on some installations.
  • Other miscellaneous bug fixes.

1/1/2001 - Version 2.12

Features/Changes

  • Extra Files: Support for wildcards in the Extra Files filenames. Bug: Can't uncheck a wildcarded Extra Files.
  • Files: If a comma or colon follows a filename being typed (as filename.ext:Line# or filename.ext,Line#), the number following the comma or colon is the exact line number to go to.
  • Files: Right-clicking on a file in the file list gives the additional options of copying the path or full path (including filename) to the clipboard.
  • Files: Reads Visual C++ 7.0 .vcproj files.

Bugs Fixed

  • Files: When using the left/right arrow keys in the edit field, the key was passed onto the list control, causing it to scroll left/right. Fixed.
  • Tags: The Autocomplete Tags dialog showed multiple identifiers of the same name. Fixed.
  • Tags: File tags removed from tag autocompletion.
  • Tags: Autocomplete identifiers at the beginning of the line were sometimes not retrieved properly. Fixed.
  • Tags: Fixed counting of packing for tag files.

Programming Interface

  • ObjModelHelper::EndOfDocument() added.
  • For Debug builds, a registry setting at HKLM\Software\WWhizInterface\DebugPath gives the path to the WWhizInterface2D.mod file.
  • WWhizInterface assigns default file extensions, tag extensions, and ignore tokens at startup.
  • WWhizInterface uses a Ctags.exe that resides in the same directory as WWhizInterface2(D).mod.
  • Added two new add-ins to the source distribution: Src/Samples/BackupProjectsAddin and Src/Samples/ShowFunctionsAddin.
  • In the Shared/ directory, Node.* and XmlFile.* added.
  • In the Shared/ directory, major updates for the VirtualDrive classes.

12/8/2000 - Version 2.11

Features/Changes

  • Extra Files: The Extra Files filename is now {ActiveWorkspace}.ExtraFiles.WW. This solves a variety of problems related to multiple workspaces in the same directory.
  • Extra Files: It is no longer possible to turn off an Extra File project that is a member of the active workspace. The Extra Files dialog will show it as turned off, but the option is ignored.
  • Templates: Can toggle on/off a template group. Useful for hiding template groups.

Bugs Fixed

  • Files: DevStudio automation is no longer used to retrieve the active projects. They are read directly from the active .dsw.

Programming Interface

  • WWhizInterface::GetWorkspaceFullPath() added.
  • WWhizTemplateGroup::IsActive() and SetActive() added.
  • WWhizTemplateManager::Get() renamed to WWhizTemplateManager::GetTemplateGroup().
  • Projects immediately within the active workspace are considered workspace projects.
  • WWhizFile::IsWorkspaceFile() added.

11/13/2000 - Version 2.10 Final

Features/Changes

  • *** eMbedded Visual C++ 3.0 support! ***
  • Extra Files: The Browse button in the dialog now has filters for projects and workspaces.
  • Extra Files: Workspaces can be checked off in the Extra Files dialog.
  • Files: WWFileOpenAtCursorDlg removed.
  • Files: Readded File Open prefix field.
  • Files: Added a file counter to the title bar, like the tag dialogs.
  • Files: The Find File dialog now allows the file context menu to be accessed through the keyboard (via the context menu key on the right side of the keyboard).
  • Files: The directories specified in the global Include and Source paths are recursively searched for the Global File Open dialog.
  • General: File date/time checking has been drastically improved. Saving a file is updated almost instantly. All files are checked when Visual Studio is switched away from.
  • Header Flip: Header flip checks the current file's directory first.
  • History: To more closely duplicate Internet Explorer keystrokes, History Back and History Forward now have the default key assignments of Alt-Left Arrow and Alt-Right Arrow, respectively.
  • Tags: New implementation of the tags system uses far less memory, is tons faster, and doesn't rebuild tags for projects you've already built tags for.
  • Tags: Upgraded to a modified Exuberant Ctags 4.0.3.
  • Tags: The status fields in the Find Tag dialog will horizontally scroll if they have the focus and a selection is in progress.
  • Tags: The namespace of a tag is resolved in most cases.
  • Tags: Retrieves and shows the implementation type of a tag: virtual, pure virtual, or normal.
  • Tags: Retrieves and shows the access of a tag: public, protected, private, or friend.
  • Tags: Added tag declarations (or prototypes) so the tag in the class definition can be gone to.
  • Tags: Added new command WWTagFlip which flips between the tag's declaration and definition.
  • Tags: Right click on a tag in the Find Tag dialog lets you go to the tag's declaration or definition.
  • Tags: Shift-Enter on a tag in the Find Tag dialog goes to the tag's declaration.
  • Tags: Handles * for wildcard (substring) searching (identical to the slash).
  • Tags: Multiple search strings may be specified on a tag search by using more than one / (slash) or * (asterisk).
  • Tags: New ' symbol in tag finds. When the ' symbol is specified, all current tag types being shown are cancelled. The letters that follow the ' symbol, up to a closing ' symbol, turn on tag types.
  • Tags: Files show up as tags in the tag dialog (almost invalidating the need for the Workspace File Open dialog).
  • Tags: Since Find Tag at Cursor is more widely used that Tag Flip, their default key bindings have been flipped. Find Tag at Cursor is now assigned to Ctrl-Space and Tag Flip is assigned to Ctrl-Shift-Space.
  • Tags: Because of the key bindings change for History Back and Forward, Tag Find Previous and Tag Find Next now have the new key assignments Alt-Shift-Left Arrow and Alt-Shift-Right Arrow.
  • Tags: The Find Tag dialog now allow the tag list context menus to be accessed through the keyboard (via the context menu key on the right side of the keyboard).
  • Tags: The Find Tag dialog's Refresh Tags button performs an automatic File->Save All. This is useful if the preference for automatically saving all files per each tag command is turned off.
  • Tags: When using the Find Tag at Cursor Dialog, the parent identifier is inserted into the parent field of the dialog, instead of being tacked onto the end of the tag.
  • Tags: Scanning of changed files due to a task switch (Alt-Tab, etc) may be turned on/off in the Preferences->Tags dialog.
  • Tags: Save All is performed for Find Tag at Cursor.
  • Tags: Autocompletion of a tag shows the number of matches on the status line.
  • Templates: Added Sel command.

Bugs Fixed

  • Files: Workspaces and projects can now have their read-only flag toggled from with the File Open dialog.
  • Files: The current workspace and all projects are added to the file list.
  • Files: .dsp files are more accurately parsed. Project Custom Build steps are ignored.
  • Files: If there is no extension on a filename, a period is not appended.
  • Files: Directories with periods in the names now properly resolve the filename.
  • Files: When resolving filenames, \\machinename\directory was broken.
  • General: Fixed all known memory leaks.
  • General: The Help dialog isn't modal over DevStudio anymore.
  • Tags: When performing a Find Tag at Cursor, lines with tabs were calculated incorrectly, causing some symbols to not be matched properly. Fixed.
  • Tags: The Autocomplete Tag dialog properly saves its column width settings to the registry now.
  • Tags: The Autocomplete Tag dialog's gripper is always easily accessible now.
  • Tags: Corrupt tag files are better detected and repaired.
  • Tags: Reorganized the tag system to consume far less memory. MFC tags, for instance, use about 10 megabytes less memory (from Beta 1). Another test case, involving approximately 175,000 tags, saved around 60 megabytes of memory.
  • Tags: The Alt-F keyboard shortcut referred to two commands in the Find Tag dialog. Fixed.
  • Tags: Tag autocompletion will remove the parent tag if no match is found.
  • Tags: Tags are more accurately found now by line number.
  • Tags: Fixed the Ignore Tokens list.
  • Tags: Optimized tag loading, saving, and sorting.
  • Tags: Find Tag at Cursor matches exact (not partial) tags now
  • Tags: Fixed the execution of a tag command performing a SaveAll and not identifying the file as changed until the next tag command.
  • Tags: Fixed a crash bug when autocompleting a tag.
  • Tags: When autocompleting a tag that has only one match, repeatedly performing the autocompletion continued to fill the Undo buffer. Fixed.
  • Tags: When adding/removing Extra Files, certain combinations of Extra Files usage would cause Workspace Whiz! to not identify the new files. Fixed.
  • Tags: Crash bug fixed when saving a file, removing it from the project, and opening the Find Tag dialog.
  • Tags: Tag saves aren't done as often as before.
  • Tags: Crash fixed in when reading certain combinations of lines for autocompletion.
  • Tags: Sped up tag parsing a bit.
  • Templates: Caret position on lines with tabs were calculated incorrectly. Fixed.
  • Templates: The @@(Caret)@@ command didn't work if an ExecuteCommand SelectionFormat was issued and the text changed positions. Fixed.
  • Templates: When right clicking on a template in the selection dialog, if it was a branch, the dialog exited. Fixed.
  • Templates: !!if @@var@@ == "" works.

Programming Interface

  • AIC: Removed the AIC command GetWWhizInterface. Added the AIC command GetWWhizInterface2.
  • In the class WWhizTag, the functions GetShortIdent(), GetIdent(), GetFilename(), GetSearchString(), and GetNamespace() now return LPCSTR instead of const CString&..
  • Removed the unused WWhizConfig::GetDoTagExactMatch(), SetDoTagExactMatch(), GetDoTagExactMatchExactLen(), and SetDoTagExactMatchExactLen().
  • Added WWhizConfig::GetScanFilesTaskSwitch() and SetScanFilesTaskSwitch().
  • Multiple WWhizInterface initializations not allowed (caused crash in new CvsIn).
  • Added reusable VirtualDrive and VirtualFile classes.
  • WWhizTag::Access added.
  • WWhizTag::Type::DECLARATION added.
  • WWhizTag::GetAccess() added.
  • WWhizTag::GetNamespace() added.
  • WWhizTag::GetBuddy() added.
  • WWhizTag::GetImplementationType() added.
  • WWhizInterface::GetTagScope() added.
  • WWhizFile::GetOrderedTagList() added.
  • WWhizInterface::Initialize() removed.
  • WWhizInterface::GetWorkspaceName() added.
  • Added WWhizInterfaceHelper.pkg file for workspace name detection.
  • Implementation of ObjModelHelper::SaveAll(), which is used in place of ExecuteCommand("SaveAll") when saving for a tag command.
  • Removal of WWhizInterface::HeaderFlip(). Moved to Commands.cpp.
  • ObjModelAuto.h renamed to ObjModelHelper.h.
  • WWhizInterface.mod renamed to WWhizInterface2.mod.
  • WWhizInterface2.mod has a mini-installer for redistribution. Get it from the Workspace Whiz! web site.
  • WWhizCreate() renamed to WWhizInterfaceCreate().
  • WWhizDestroy() renamed to WWhizInterfaceDestroy().
  • New ObjModelHelper class shields the user from VC++ 5/6 and EVC++ 3 automation.

9/29/2000 - 2.10 Beta 1

General

  • The Alt-F keyboard shortcut referred to two commands in the Find Tag dialog. Fixed.
  • The Help dialog isn't modal over DevStudio anymore.
  • Added WWhizInterfaceHelper.pkg file for workspace name detection.
  • Files: Directories with periods in the names now properly resolve the filename.
  • Files: Header flip checks the current file's directory first.
  • Files: Readded File Open prefix field.
  • Files: Extra Files dialog now has filters for projects and workspaces.
  • Tags: The namespace of a tag is resolved in most cases.
  • Tags: Retrieves and shows the implementation type of a tag: virtual, pure virtual, or normal.
  • Tags: Retrieves and shows the access of a tag: public, protected, private, or friend.
  • Tags: Added tag declarations (or prototypes) so the tag in the class definition can be gone to.
  • Tags: Added new command WWTagFlip which flips between the tag's declaration and definition.
  • Tags: Right click on a tag in the Find Tag dialog lets you go to the tag's declaration or definition.
  • Tags: Shift-Enter on a tag in the Find Tag dialog goes to the tag's declaration.
  • Tags: Tag autocompletion will remove the parent tag if no match is found.
  • Tags: New ' symbol in tag finds. When the ' symbol is specified, all current tag types being shown are cancelled. The letters that follow the ' symbol, up to a closing ' symbol, turn on tag types.
  • Tags: Tags are more accurately found now by line number.
  • Tags: Fixed the Ignore Tokens list.
  • Tags: Optimized tag loading, saving, and sorting.
  • Tags: Handles * for wildcard searching (identical to the slash).
  • Tags: Find Tag at Cursor matches exact (not partial) tags now.

Programming Interface

  • Multiple WWhizInterface initializations not allowed (caused crash in new CvsIn).
  • Added reusable VirtualDrive and VirtualFile classes.
  • WWhizTag::Access added.
  • WWhizTag::Type::DECLARATION added.
  • WWhizTag::GetAccess() added.
  • WWhizTag::GetNamespace() added.
  • WWhizTag::GetBuddy() added.
  • WWhizTag::GetImplementationType() added.
  • WWhizInterface::GetTagScope() added.
  • WWhizFile::GetOrderedTagList() added.
  • WWhizInterface::Initialize() removed.
  • WWhizInterface::GetWorkspaceName() added.

8/14/2000 - Build 081400

General

  • Tags: Fixed the execution of a tag command performing a SaveAll and not identifying the file as changed until the next tag command.
  • Tags: Fixed a crash bug when autocompleting a tag.
  • WWFileOpenAtCursorDlg removed. Be sure to allow the Workspace Whiz! installer to uninstall the previous version.
  • Tags: When autocompleting a tag that has only one match, repeatedly performing the autocompletion continued to fill the Undo buffer. Fixed.
  • Tags: When adding/removing Extra Files, certain combinations of Extra Files usage would cause Workspace Whiz! to not identify the new files. Fixed.
  • Templates: When right clicking on a template in the selection dialog, if it was a branch, the dialog exited. Fixed.
  • Templates: Added Sel command.

Programming Interface

  • Implementation of ObjModelHelper::SaveAll(), which is used in place of ExecuteCommand("SaveAll") when saving for a tag command.
  • Removal of WWhizInterface::HeaderFlip(). Moved to Commands.cpp.
  • ObjModelAuto.h renamed to ObjModelHelper.h.

8/11/2000 - Build 081100

General

  • Support for eMbedded Visual C++ 3.0 built in. Should automatically install under EVC++ 3.0, if it exists.
  • The directories specified in the global Include and Source paths are recursively searched for the Global File Open dialog..
  • .vcp is handled the same as .dsp.
  • .vcw is handled the same as .dsw.
  • Crash bug fixed when saving a file, removing it from the project, and opening the Find Tag dialog.
  • . and -> support from Build 071400 removed.

Programming Interface

  • WWhizInterface.mod renamed to WWhizInterface2.mod.
  • WWhizInterface2.mod has a mini-installer for redistribution. Get it from the Workspace Whiz! web site.
  • WWhizCreate() renamed to WWhizInterfaceCreate().
  • WWhizDestroy() renamed to WWhizInterfaceDestroy().
  • New ObjModelHelper class shields the user from VC++ 5/6 and EVC++ 3 automation.

7/14/2000 - Build 071400

General

  • File date/time checking has been drastically improved. Saving a file is updated almost instantly. All files are checked when Visual Studio is switched away from.
  • Tags: Tag saves aren't done as often as before.
  • Tags: Save All is performed for Find Tag at Cursor.
  • Crash fixed in when reading certain combinations of lines for autocompletion.
  • Tags: Sped up tag parsing a bit.
  • When resolving filenames, \\machinename\directory was broken.
  • Tags: Upgraded to Exuberant Ctags 4.0. Feel free to use any Exuberant Ctags build after 4.0.
  • Templates: !!if @@var@@ == "" works.
  • Workspaces can be checked off in the Extra Files dialog.
  • Tags: Autocompletion of tags tries to better resolve the tag scope by using the . and -> operators.

6/10/2000 - Workspace Whiz! 2.00 Final Release!

General

  • If the Tags.WW file was write protected, bad things happened. Fixed.

6/8/2000 - Gold Master Candidate #1

General

  • Templates: When executing a movement command immediately after the template begin, the Template Complete functionality didn't destroy the template key in the text file.
  • Templates: Conditional statements like !!If @@var@@ == "" properly handled now.

6/6/2000 - Release Candidate 2

General

  • Paste bug not fixed but has an acceptable workaround solution. Assign WWPasteFix to Ctrl-V.
  • Broke the keyboard assignments preference dialogs into 3 parts.
  • Tags: When autocompleting a tag, the / substring search symbol can be used.
  • Templates: @@blah:U:l40@@ -- Two colons hung DevStudio. Fixed.
  • Templates: Caret command should work 100% of the time now.
  • Templates: Date command accepts a parameter as a formatting string as described in the GetDateFormat() MSDN Help.
  • Templates: Time command accepts a parameter as a formatting string as described in the GetTimeFormat() MSDN Help.

6/5/2000 - Release Candidate 1

General

  • Find File and Find Tag's context menus take keypresses again.
  • Tags: Fixed an obscure bug where inherits lists were super long. Exuberant Ctags still parses them incorrectly, but Workspace Whiz! tries to make up for it.
  • Templates: !!Goto went to the correct place in the code, but wouldn't execute a !! command if it existed at the goto location.
  • Templates: Integer != comparison for !!If and !!ElseIf was broken.
  • Templates: StrFind command added.
  • Templates: StrLen command added.
  • Templates: StrLower command added.
  • Templates: StrSub command added.
  • Templates: StrUpper command added.
  • Templates: Any .WWTpl files in the Workspace Whiz!/Templates directory are automatically read.
  • Templates: Dialog command added.
  • Templates: Right-clicking on a template in the template selection tree now goes to the file properly (without left clicking first).
  • Templates: If a colon is used inside a substitution command @@sub ":":U@@ inside quotes, it is parsed properly.
  • Templates: If a !! is used inside a substitution command before the command name, the return value is ignored: @@(!!command)@@
  • Templates: Support enabled for extracting the left and right parts of a string through the substitution command flag 'l' and 'r', the normal left and right justification commands.
  • Templates: @@var:c##@@ command fixed.
  • Templates: The Call command can accept a return value through the Return command.
  • Templates: While executing the called template through !!Call, a variable called __Parent exists. It is the name of the calling template.
  • Templates: Added GUID command.

Programming Interface

  • WWhizTemplateCommandArgs::Return() added which takes an integer argument.

5/26/2000 - Beta 4e

General

  • Tags: The tag and parent edit fields in the Find Tag dialog now accept mixed case. When mixed case is used, a case sensitive match is automatically performed. The case sensitive match may be toggled off by inserting a dash - in the tag.
  • Tags: Special characters may be inserted at any point in the tag and parent edit fields of the Find Tag dialog. The + symbol turns case sensitive matching on. The \ symbol forces an exact length match of the tag. The = symbol forces an exact length match and case sensitive match. The - symbol turns case sensitive matching off.
  • Tags: Fixed the Find Tag title bar and status bar refresh problem after adding a new Extra Files project.
  • Templates: Inserting a %" will cause a quote mark to appear in the outputted text. %" should only be necessary when using quotation marks to surround large strings with spaces. See UsefulSamples.WWTpl for an example.
  • Templates: I made a huge error when implementing expression tags. Regrettably, any instances of @@!!Command@@ in your code must be changed to @@(Command)@@. The new syntax allows embedded tag parameters, whereas the old syntax couldn't allow it. The example below runs a command called Command with two arguments: the contents of variable and the return code from AnotherCommand.
  • @@(Command @@variable@@ @@(AnotherCommand)@@)@@

  • Templates: When using the old @@!!Command@@ syntax, Workspace Whiz! will report an error.
  • Templates: When an error occurs in a template, the line number is made available. Additionally, Workspace Whiz! will open the .WWTpl file with the error and position the cursor on the line causing the problem.
  • Templates: ConfigAddFileSettings command added.
  • Templates: ConfigRemoveFileSettings command added.
  • Templates: ConfigAddToolSettings command added.
  • Templates: ConfigRemoveToolSettings command added.
  • Templates: ConfigCount tag command added.
  • Templates: ConfigGet tag command added.
  • Templates: ProjectCount tag command added.
  • Templates: ProjectGet tag command added.
  • Templates: WWhizTemplateTest.WWTpl: Print Projects and Print configurations samples added.
  • Templates: UsefulSamples.WWTpl: Create a Custom Template Command added.
  • Templates: Right clicking on a template in the template tree view will open the appropriate .WWTpl file to that template for editing. (Bug: You must first left click on the template and THEN right click.)
  • Tries to autodetect the Workspace Whiz! toolbar.
  • Fixed the Preferences->Key Bindings pages to allow the Enter key to be pressed.
  • Fixed the DevStudio 5 first time registry key from the installer.
  • Fixed read-only toggling.
  • Shows "Checking for updates..." in the status bar.

Programming Interface

  • WWhizTemplate::GetLineNumber() added.

5/15/2000 - Beta 4d

General

  • When Tools->Options->Workspace->Reload last workspace at startup was on, Beta 4c crashed.

5/15/2000 - Beta 4c

General

  • Avoids the WndTabs splash screen clashing problem by moving the registration dialog further into the startup process.
  • Fixed an issue where some variants of registration keys didn't work.
  • Temporarily uses a custom version of Exuberant Ctags 3.5.2. Do not upgrade to another version manually at this time.
  • No longer searches #defines by line number.
  • Fixes first time Workspace File Open list column sizing.

5/9/2000 - Beta 4b

General

  • Fixed an installer bug where the directory was stored as the short filename.Added support for ignoring tokens when processing tags (see Preferences->Tags).
  • Added a bunch of IgnoreTokens*() support functions to WWhizConfig.
  • Added a wait cursor when finding the tag under the cursor.
  • Fixed a crash in WWTagFindAtCursor.
  • Temporarily uses a custom version of Exuberant Ctags 3.5.2. Do not upgrade to another version manually at this time.

5/5/2000 - Beta 4

General

  • Tag-related items are logged to the status bar.
  • Time tracking and registration dialogs set up.
  • Find Tag at Cursor Dialog will automatically display the dialog if no file is open.
  • Added a Register button to the About dialog.
  • Switched to Exuberant Ctags 3.5.2.

4/15/2000 - Beta 3

General

  • Column widths for the Find File and Find Tag dialogs are saved and restored now. The History dialog will follow next time.
  • Fixed weird window sliding problem when Start menu was docked on the left side of the screen.
  • Projects and workspaces as Extra Files are allowed to be turned on and off through checkboxes in the Extra Files dialog.
  • Initial defaults are added to identify the two template files that ship Workspace Whiz! (WWhizTemplateTest.WWTpl and UsefulSamples.WWTpl)
  • Uninstallation is smarter and will allow the user to save their custom settings (from Beta 3 on).
  • Tags are saved on shutdown.
  • Added a UsefulSamples.WWTpl file.
  • When changing a .WWTpl file, the cursor in the template selection tree didn't position itself properly.
  • Added new command WWTemplateComplete.
  • New !!Key added to template file format.
  • New !!GetPos command added.
  • New !!MoveTo command added.
  • New @@!!Caret@@ tag command added for positioning the caret when the template code is parsed.
  • @@\ allows line continuations.
  • @@!!Env VAR@@ fixed.
  • Most help is hooked up.
  • Fixed a bunch of sizing dialog issues.
  • Fixed the Cancel button on the Find File and Find Tag dialogs to work better.

Programming Interface

  • Added WWhizTemplate::GetKey(). Returns the key phrase needed to autocomplete the code template.
  • WWhizInterface::GetFileList() returns the list of all files, including those in inactive projects. WWhizInterface::GetActiveFileList() returns just the files existing in active projects.
  • WWhizProjectList::Find() added.
  • WWhizProject::SetActive() added.

3/28/2000 - Beta 2

  • Fixed About dialog to point support@workspacewhiz.com to the correct email address.
  • Added the option to perform an automatic Save All before each tag command. Togglable via preferences.
  • Made WWhizFileList::FindExact, FindNext, and FindPrevious all work off the file title, not the short filename.
  • Header flip properly toggles between SObject.cpp<->SObject.h and _SObject.cpp<->_SObject.h when in the same directory.
  • Recursively adds .dsp and .dsw files embedded in another project.
  • Broke out ExtraFiles.WW into the registration module.
  • WWhizInterface is now usable outside of DevStudio.
  • New function: WWhizInterface::SetWWhizReg().
  • Upgraded to AddInComm 1.3.0.
  • WWhizInterfaceLoader's WWhizCreate() function has an additional parameter. The first parameter is the HINSTANCE (usually AfxGetInstanceHandle()) and the second parameter is a pointer to IApplication.
  • The Extra Projects dialog has been renamed to Extra Files.
  • The Extra Files dialog will accept ANY type of file now, not just projects or workspaces.
  • Moved the Header Flip to the registration module.
  • Fixed a bug when using the substring tag match where matches of the exact length were removed from the list. (i.e. CString and string. Typing /string only showed CString)
  • WWFindTagAtCursorDialog, WWFindTagAtCursor, WWTagCompleteNext, WWTagCompletePrev, WWTagCompleteRestore, and WWTagCompleteDlg have been fixed to not run when there isn't an open document.
  • WWFindTagAtCursorDialog will pull up a dialog when the cursor isn't on any text.
  • The last item inserted into a Template tree branch was not getting sorted properly. Fixed.
  • Templates that start with the minus symbol (-) are considered private and won't show up in the template tree.
  • When performing the !!FileNew command and the directory specified doesn't exist, WWhiz creates it.
  • Improperly terminated template variables @@var (no closing @@) are properly detected.
  • Templates make access environment variables through the @@!!env ENVIRONMENT_VARIABLE_NAME@@ function.
  • The template @@!!ProjectPath@@ function has been extended to allow inclusion of an optional project name: @@!!ProjectPath MyProject@@
  • Nested conditionals in a false conditional are properly dealt with.
  • New !!Call template function allows calling of another template. !!Call "Template Name" param1 "param1Value" param2 "param2Value"
  • New !!MessageBox template function.
  • If the !!FileNew template function was called with the 'dsp' parameter and no project was open, WWhiz crashed. Fixed.
  • !!ProjectFileAdd now takes an optional project name: !!ProjectFileAdd MyProject
  • Fixed a crash when the template file was deleted and DevStudio was loaded.
  • Documented every function in WWhizInterface.h.
  • Moved GotoTag to WWhizReg.
  • New WWhizTemplateManager public interface.
  • Upgraded to Hans Buehler's latest cdxCSizingDialog interfaces.
  • Autocomplete tags now handles matching all tags.
  • WWhizInterface::ResolveFilename better handles relative paths.
  • Properly supports saving a Tags.WW file with no tags.
  • When CTags.exe isn't present, the WWhiz no longer hangs.
  • When going to a tag where the source file was deleted from disk, WWhiz no longer crashes.
  • Conditionals in the templates accept ==, !=, >=, <=, >, or <.
  • !!Add and !!Sub commands added.
  • !!Label and !!Goto commands added.
  • Variables in the !!Params section can now resolve embedded variables.
  • When using the Find Next and Find Previous File commands, .dsp and .dsw files are opened as text.

3/2/2000 - Beta 1

  • Fixed a key bindings bug that caused all keys to assign, including unchecked keys.
  • Fixed the Toggle Read-Only Attribute for Current File.
  • Made Extra Projects work when there is no workspace open.
  • Fixed an Extra Projects environment variable resolution bug.
  • Fixed so Workspace Whiz! will autoinstall into Visual C++ 5.0 AND Visual C++ 6.0 on the same machine.
  • When closing the Find File or Find Tag dialogs with Current Project selected, it was impossible to show the Entire Workspace. Fixed.

2/16/2000 - Internal Alpha 7

  • Reworked the icons (thanks to David Brady).
  • Readded F5 Refresh key to Find Tag dialog.
  • Forced the installer to put the First Time variable in the registry.
  • Began work on the Workspace Whiz! registration module.
  • Removed Prefix and Extension fields from Find File dialog. If there is sufficient demand, they can be replaced.
  • Removed the skins. They were too much of a hassle to maintain.
  • Fixed Window Blinds compatibility.
  • Added a version resource to the WWhizInterface.mod file.
  • Renamed WWhizInterface.dll to WWhizInterface.mod so it can be installed in the DevStudio addins directory without problem.
  • Used the AggressiveOptimize.h file on WWhizInterface.mod.
  • Fixed a crash bug when tags were built and a new file was added to the project and the tags were accessed.
  • Find File and Find Tag dialogs size the initial list controls properly.
  • Freed the environment strings in the Extra Projects dialog.
  • Ensured that the environment variable resolution didn't pick up "partial" matches in the Extra Projects dialog.
  • Removed environment variable resolution from Extra Projects dialog when loading the ExtraProjects.WW file.
  • Added tag autocomplete dialog.
  • Added AddInComm loading support to WWhizInterfaceLoader.cpp.
  • Strips spaces after the SOURCE= token in .dsp files.
  • Made two key bindings dialogs.
  • Tags are right-clickable in the Find Tag dialog. The option to Goto the tag, copy the tag identifier to the clipboard, and copy the tag parent identifier to the clipboard exist.
  • Fixed display of Line number: ## in the Find Tag dialog.
  • Holding down Shift while pressing Enter or clicking OK in the Find Tag dialog pastes the currently selected.
  • Removed WWFixMultiplePrecompiledHeaders.
  • Made Find Tag dialog truly modal.
  • Added tag autocomplete.
  • Added WWhizInterface::GetLastTagRefreshTime().
  • Added WWhizInterface::GetLastFileRefreshTime().
  • Can copy from Find Tag dialog.
  • A major crash occurred if the length of the CTags generated line was greater than 512 characters. Now, lines may not exceed 4096 characters, which is greater than the limit of a DevStudio 5 & 6 line.
  • After adding a new project to the DevStudio workspace, the File Open and Find Tag command didn't properly update the list and crashed. Fixed.
  • Added IsWorkspaceProject() command to WWhizProject.
  • When using the Context Menu for files on a file that doesn't exist on the hard drive, Workspace Whiz! crashed. Fixed.
  • When using the Header Flip command from the Context Menu for files, flipping from a .h to a .cpp didn't work. Fixed.
  • When a header flip was performed on a file not in the project (when no workspace was open at all), Workspace Whiz! crashed. Fixed.
  • When a file that wasn't in the workspace was open and the Find Tag's Current Project option is set, Workspace Whiz! crashed. Fixed.
  • Fixed a crash bug using COMCTL32.DLL version 4.72.3612.1702 in the Find Tag dialog.
  • All dialog fields have keyboard shortcuts.
  • The Auto-Refresh Tags option was broken.

1/17/2000 - Internal Alpha 6

  • Fixed disappearing header flip extensions and tag extensions in the Preferences dialog. Also fixed Rebuild All tags problem where they all disappeared, which was related.
  • When the header flip can't find the proper file to flip to, it displays the File Open dialog with the current file synced up.
  • When a project was removed via the Extra Projects dialog or by hand through the DevStudio workspace, it (and its files and tags) weren't removed properly. Fixed.
  • The Find Tag dialog shows the current number of tags matched.
  • Wait cursors now appear during tag refreshes.
  • When a file that wasn't in the workspace was open and the Find Tag command is used, Workspace Whiz! crashed. Fixed.
  • The Find Tag title bar shows the file title and extension before the path.
  • Current File buttons disables itself when there is no active file (like it used to).
  • Made all dialogs have the same five buttons: OK, Cancel, Help, About, and Preferences.
  • Upgraded to CTags 3.4.
  • Auto-starts when DevStudio is opened.
  • New tooltips available by hitting F1.

1/13/2000 - Internal Alpha 5

  • DevStudio now shows up in the Alt-Tab menu when a Workspace Whiz! dialog is opened.
  • Sped up tag creation/loading considerably.
  • Fixed an obscure tag matching bug (when there were no matched tags) that could cause long delays in the list refresh.
  • When a template dialog was displayed without any editable fields, a crash occurred. Fixed.
  • Initial HtmlHelp integration.
  • Scripts now have comprehensive error detection.

12/16 - Internal Alpha 4

  • Icons donated by Jim Rittenhouse.
  • Fixed an NT ATL registration bug where the add-in long name didn't show up.
  • Fixed the keyboard preferences dialog so only pressing Assign will assign the keyboard keys.
  • Remapped a bunch of key bindings so the default Workspace Whiz! configuration wouldn't make DevStudio complain.
  • Replaced WWHeaderFlipDlg with WWOpenFileAtCursorDlg. Complain if you don't like it! :)
  • Added new WWFindTagSpecialDlg that will ultimately allow the user to assign custom permanent settings to the Find Tag Special dialog. For now, it just pulls up all the functions in the current file.
  • Made release build work with both DevStudio 5.0 and DevStudio 6.0.
  • Reorganized code to be able to release a large bulk of the source to the public.
  • New method of reading tags allows the title bar to be updated much more often.
  • For tags without a parent, the Find Tag dialog fills in the filename.
  • Find Tag at Cursor tries to resolve ClassName::Member.
  • Find Tag at Cursor does an EXACT tag search.
  • WWhizInterface.h contains all external interfaces for accessing Workspace Whiz information.
  • New AIC GetWWhizInterface command returns a pointer to an instance of WWhizInterface.
  • Upgraded to AIC 1.2.0.
  • Fixed a bug where Workspace Whiz! didn't remember the template tree state between sessions.
  • Opens groups of files in reverse order for better behavior in the new Window Tabs 2.50.
  • Use a '+' (plus) symbol at the start of the menu item: [+Menu 1|Submenu|Item] <- Expands this one. [Menu 2|Submenu|Submenu|Item] <- Doesn't expand.
  • The Find File dialog was crashing when a resource dialog was being edited. Fixed.
  • .dsp and .dsw files now insert themselves into the file list.
  • Added ability, through the Tags Preferences, to toggle the automatic refresh of tags on/off.
  • Fixed a bug where the tags extension list kept growing and growing.
  • Added new Refresh Tags button in Find Tag dialog to force a refresh.
  • Fixed a tag refresh bug where files with no tags caused CTags to run every access.
  • Added Current Project matching to the Find Tag Dialog (in addition to the Current File and Entire Workspace matching).
  • When there is more than one tag in the FindTagAtCursor command, the user can now select an Emacs-like approach or a dialog.
  • More accurate "context-sensitive" header flip (a matching header in the same project is considered first, then a workspace-wide search is done).
  • During an uninstall, the user is asked whether Workspace Whiz! custom key bindings should be removed.
  • Fixed uninstall so it doesn't remove both the VC6 AND VC5 versions.
  • Templates: Add command: Find.
  • Templates: Handles quoted strings.
  • Templates: For an !!if or !!elif, the variable must now be in variable notation @@var@@.
  • Templates: Added conditional comparison operators (== and !=).
  • Templates: Add command: ExecuteCommand.
  • Templates: Add command: ProjectNew .
  • Templates: Handles output sizes >64k without crashing.
  • Templates: Fixed preprocessor elif.
  • Templates: Default parameters with commands embedded in them are not saved to the registry.
  • Templates: Command !!Next in the Dialog section was broken.
  • More tooltips finished.
  • Added a tags autosave amount to the preferences dialog.
  • Changed the Find Tag dialog's Refresh button to a Rebuild Tags button.
  • Made the Extra Projects dialog resizable.
  • Fixed a header flip return code problem for AIC.
  • Fixed a resizing problem in the Template Wizard dialog.
  • Fixed the Find Tag dialog so you couldn't go to the file scope without having a file open.
  • Allows default parameters to use !! commands.
  • FileNew dsp portion was broken. Fixed.
  • Tags are sorted on a per project basis after running ctags.
  • DevStudio autoinstallation now properly #ifdef'ed for VS6 and VS97 versions.

11/12 - Internal Alpha 3

  • When there are no items in the tag list, the display is properly cleared.
  • A custom version of CTags with these two fixes is included in this release of Workspace Whiz! until Darren Hiebert can integrate the changes into the main code base.
  • Fixed CTags to allow spaces in filenames. Thanks go to Lee Hillman.
  • Fixed CTags to allow "class MY_EXPORT TestClass".
  • Auto-install to the Visual Studio addins registry entry.
  • Added tooltips to Extra Projects, Find Tag, and finished up Find File.
  • CTags.exe is searched for in the add-in's directory first.
  • Added skins preferences dialog.
  • Ability to affix a bitmap to each dialog.
  • Cool round buttons are turned off for now.
  • In the Find File dialog, the Extension: static text now resizes properly.
  • Crash bug in the History Dialog fixed.
  • Fixed the Global File Dialog from leaking memory.
  • Current project/entire workspace scoping in the Find File Dialog.
  • Right-clicking when there are no files in the Find File dialog's file list doesn't crash anymore.
  • Fixed Extra Projects OK button to do an automatic add.
  • Fixed WWFindNextFile, WWFindPrevFile, WWHeaderFlip, and WWHeaderFlipDlg to not clear out the last typed filename.
  • Templates: All @ commands have been changed to @@
  • Templates: All ! commands have been changed to !!
  • Templates: The ASSERT was removed when adding a file to the project failed.
  • Template Dialog: A crash was fixed when the user inserted a template, changed the template file, and reopened the dialog.
  • Templates: New command syntax for parameters: @@param@@
  • Templates: New command syntax for commands: @@!!date@@
  • Template Wizard Dialog: Better enumeration of HTML types.
  • Templates: @0@ changed to @@sel@@.
  • Template Wizard: Supports HTML INPUT tag types text, checkbox, and radio. Supports HTML SELECT type.
  • Templates: Added !!if, !!elif, !!else, and !!endif.
  • Templates: Added !!// for a comment in the !!Code section.

10/28 - Internal Alpha 2

  • Fixed history dialog to highlight the current position first.
  • Registry now uninstalls when unregistering the add-in.
  • New web address for Exuberant CTags (it's what the http://darren.hiebert.com resolves to).
  • The Find Tag Dialog now behaves more like a normal modal dialog and also restores its position properly.
  • Made all dialogs popup without a workspace open.
  • Added a new button in the Find File and Find Tag dialogs called Current File, which pops up a context menu for the current file.
  • Removed Select from file context menu.
  • If CTags.exe is not found, a dialog is popped up (soon to be replaced with the Tags Preferences property sheet).
  • If CTags.exe is not found the first time, the files will correctly generate tags when it is found.
  • Added Extra Projects button to the Find Tag dialog.
  • Made Preferences button work in the Find Tag dialog.
  • Removing projects from the Extra Projects dialog should now properly remove unneeded files.

10/27 - Internal Alpha 1

  • New look!
  • Fixed the Visual Studio 97 support.
  • Most dialogs are now resizable, through Hans Buhler's dynamic controls interface.
  • Fixed NT non-administrator registration (Thanks Oz!).
  • The About dialog contains clickable hyperlinks to various useful information. Thanks to Giancarlo Iovino's HyperLink code!
  • New add-in communication module allows external add-ins to call Workspace Whiz! functions. (Thanks Oz!)
  • A new WorkspaceCommands interface has been added to support external add-in communication.
  • ExcludeFiles.WU has been removed. There is no support for this anymore.
  • The File Open dialog's filenames are right-clickable. (Thanks Oz for the Send To menu code!)
  • Added file prefix and extension support to the file open dialog.
  • Fixed beginning of line GetWord() routine.
  • The Find Tag dialog shows the type of the tag in the list control.
  • The Find Tag dialog shows the filename and search string (or line number) of the tag in some text fields at the bottom of the dialog.
  • Added project/file scoping in the tags dialog (Thanks to Michael Sullivan.).
  • The Find Tag dialog will now display more than 1,000 items... and much more quickly than before.
  • The entire tag system has been rewritten. File changes are automatically detected on dialog entry, and the update time is very quick. In other words, the tag support should never fall out of sync with your workspace. In addition, a file is written to the workspace directory called Tags.WW, containing a binary representation of the CTags text output. MORE SPEED! Hooray!
  • Added .cxx header flipping support.
  • New header flip dialog matches all files that the header flipper will match to.
  • Checks are made for ExtraFiles.WW being read-only.
  • New code template support.
  • Added Multiple Precompiled Header support to VS97 (and revised it for VS6).
  • Added key binding support from a special preferences dialog.
  • Added a header flip preferences dialog.
  • Added a tags preferences dialog.
  • Added file history support

Copyright © 2000-2010 Joshua C. Jensen