TextDocument.ReplacePattern Method (String, String, Int32, TextRanges)


Replaces matching text throughout an entire text document.

Namespace:   EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

bool ReplacePattern(
	string Pattern,
	string Replace,
	int vsFindOptionsValue = 0,
	ref TextRanges Tags = null


Type: System.String

Required. The string to find.

Type: System.String

Required. The text to replace each occurrence of Pattern.

Type: System.Int32

Optional. A vsFindOptions constant indicating the behavior of ReplacePattern, such as how to search, where to begin the search, whether to search forward or backward, and whether the search is case-sensitive.

Type: EnvDTE.TextRanges

Optional. A TextRanges collection. If the matched text pattern is a regular expression and contains tagged subexpressions, then Tags contains a collection of EditPoint objects, one for each tagged subexpression.

Return Value

Type: System.Boolean

A Boolean value.

ReplacePattern for the TextDocument object replaces text like ReplacePattern for the TextSelection object, but it operates on the whole text document rather than just the selected text.

The ReplacePattern method for Visual Studio 2005 is incompatible with earlier versions of the ReplacePattern method, because regular expressions now have a different syntax.

public void ReplacePatternExample(DTE dte)
    // Create a new text file and insert 10 lines of text.
    dte.ItemOperations.NewFile(@"General\Text File", "", 
    TextSelection txtSel = (TextSelection)dte.ActiveDocument.Selection;
    TextDocument txtDoc = (TextDocument)dte.ActiveDocument.Object("");
    EditPoint editPnt = txtDoc.StartPoint.CreateEditPoint();
    for (int i = 1; i <= 10; i++)
        editPnt.Insert("This is a test." + Environment.NewLine);

    if (MessageBox.Show("Replace 'test' with 'done deal'?", "", 
        MessageBoxButtons.YesNo) == DialogResult.Yes)
        TextRanges dummy = null;
        txtSel.ReplacePattern("test", "done deal", 
            (int)vsFindOptions.vsFindOptionsNone, ref dummy);
Return to top