Supports general text operations in the environment for documents and files.
Assembly: EnvDTE (in EnvDTE.dll)
The object allows you to search for and replace text in places of the environment that support such operations, such as the Code editor.
It is intended primarily for macro recording purposes. The editor's macro recording mechanism uses rather than TextSelection.FindPattern so that you can discover the global find functionality, and because it generally is more useful than using the TextSelection object for such operations as Find-in-files.
The Visual Studio environment has a global find state that is shared across all its tools that provides search capabilities. For example, all Visual Studio elements share the history of search patterns used during a session and whether the next Find operation for open documents should be forwards or backwards. The object's properties interact with and track the global find state. When you set properties on the object, you also set the global find state. If users perform a Find operation through the environment, the object reflects the kind of search they performed. Because automation code runs synchronously with the environment's UI thread, you do not need to set some of the properties and have the user perform a search before you can call the Execute.
The Execute method performs a Find operation based on the settings of the object. You can also pass arguments to the FindReplace method to perform a search without affecting the global find state. It is important for automation clients to be able to perform a search without affecting the global find state or interfering with the end user's model of the environment's state.
Sub FindExample() Dim objTextDoc As TextDocument Dim objEditPt As EditPoint Dim iCtr As Integer Dim objFind As Find ' Create a new text file. DTE.ItemOperations.NewFile("General\Text File") ' Get a handle to the new document and create an EditPoint. objTextDoc = DTE.ActiveDocument.Object("TextDocument") objEditPt = objTextDoc.StartPoint.CreateEditPoint objFind = objTextDoc.DTE.Find ' Insert ten lines of text. For iCtr = 1 To 10 objEditPt.Insert("This is a test." & Chr(13)) Next iCtr ' Set the find options. objFind.Action = vsFindAction.vsFindActionReplaceAll objFind.Backwards = False objFind.FilesOfType = "*.txt" objFind.FindWhat = "test" objFind.KeepModifiedDocumentsOpen = True objFind.MatchCase = False objFind.MatchInHiddenText = False objFind.MatchWholeWord = True objFind.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral objFind.ReplaceWith = "NEW THING" objFind.ResultsLocation = vsFindResultsLocation.vsFindResultsNone objFind.SearchPath = "c:\temp" objFind.SearchSubfolders = False objFind.Target = vsFindTarget.vsFindTargetCurrentDocument ' Perform the Find operation. objFind.Execute() End Sub