Introduction
There already are some nice substitutions for the built-in replace dialog available, but none of them entirely satisfied my needs. This is why I've written yet another one.
This AddIn, in contrast to all others I know of, does the actual find and replace operation inside the DevStudio IDE, meaning that each file that gets scanned for replacements is acutally opened as a document. This way you can replace within serveral files and watch the result prior to saving them.
Installation
Simply put the binary into your %MSDevDir%\AddIns folder and enable it in the Tools | Customize | AddIns & Macros dialog.
Usage
The AddIn installs a toolbar icon. Simply click it or add a keyboard shortcut to its command to your profile.
New case option
Here is a brief description of the new option
All Cases
When enabled, the replace command replaces all three cases, i.e. as-is, lower-case and upper-case, of the find string with the same case of the replace string. For instance, if the find string is "Abc" and the replace string is "Def" then "abc" will be replaced with "def", "Abc" will be replaced with "Def" and "ABC" will be replaced with "DEF" while all other cases, e.g. "aBc", remain unchanged.
New replace locations
The new replace locations are enabled by selecting "Extended" in the "Replace where" group. Press the "Advanced" button to show the extended locations options. Here is a brief description of the new replace locations:
All open text files
Replaces all instances of the find string with the replace string in all open text documents.
All text files within current project
Replaces all instances of the find string with the replace string in all text documents belonging to the active project of the workspace.
All text files within current workspace
Replaces all instances of the find string with the replace string in all text documents belonging to either project of the workspace.
All text files in specified directory
Replaces all instances of the find string with the replace string in all files matching the filter provided by the "File Extensions" and "Directory" combo boxes. Check the "Recurse" option to extend the operatio to all sub directories.
All text files matching file and folder filters
Replaces all instances of the find string with the replace string in all files matching the filters provided by the "Filters..." dialog.
Global options
Press the "Options..." button to open the global options dialog
Confirm
Here you can specifiy when to ask your permission for replacement. Available options are: Never, Each Instance, Each File and Each Project. The "Only ask in extended mode" disables the confirmation dialog for the "oridnary" replace locations "Selection" and "Current File".
Documents
Lets you specify when to save and close documents that got modifed during the replace operation. Available modes are: Always, Never and Ask.
File and Folder Filter
Lets you specify the folders and file filters to use with replace location "All files matching file and folder filters".
Known Bugs
See the ReadMe.txt for Known Bugs and ToDo list.
Implementation
The AddIn incorporates a yet unfinished light-weight DevStudio Automation Model Interface wrapper library that aims at speeding up AddIn Development. Perhaps you might find it useful for your own AddIn projects.
Updates
SmartReplace 1.2
New Features
Added regular expression context menus (thanks to Daniel Beutler [chefsponk] for the code)
Moved DSWrapLib to a seperate project
SmartReplace 1.1
New Features
Enabled "Regular Expression"
Added Browse For Folder Button
Browse For Folder dialogs now open at current directory
"File Extensions" can now be entered manually
"File Mask" now supports multiple filters (i.e. "*.cpp;*.h")
Bug Fixes
"Cancel"-hang fixed
"Continue" and "Replace" now stop atfer all instances have been enumerated
"Match Whole Words" now works in all modes execpt "Selection"
"Regular Expression" now works in all modes execpt "Selection"
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.