Compartilhar via


UndoContext.Open Method

Starts a new undo operation.

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

Syntax

'Declaration
Sub Open ( _
    Name As String, _
    Strict As Boolean _
)
void Open(
    string Name,
    bool Strict
)
void Open(
    [InAttribute] String^ Name, 
    [InAttribute] bool Strict
)
abstract Open : 
        Name:string * 
        Strict:bool -> unit
function Open(
    Name : String, 
    Strict : boolean
)

Parameters

  • Name
    Type: System.String

    Required. Represents the name of the procedure for which to provide an undo context.

  • Strict
    Type: System.Boolean

    Optional. Indicates whether the undo stack linkage is strict. Default value is False.

Remarks

If the UndoContext object is already open when the Open method is performed, it produces an error.

If undo stack linkage is strict, all the linked undo sibling stacks must be undone together or not at all. A strict linked undo operation is usually necessary for simultaneous text changes across multiple files, such as a header file and a Visual C++ file. This is, in fact, the model used in Visual Studio. For more information about undo stack linking, see the OpenLinkedUndo method.

Examples

Sub OpenExample()
   ' Before running, select text in an open document.
   Dim txtSel As TextSelection
   Dim strTS As String, boolWasOpen As Boolean
   txtSel = DTE.ActiveDocument.Selection
   strTS = txtSel.Text

   ' Check to see if UndoContext object is already open.
   If DTE.UndoContext.IsOpen = True Then
      boolWasOpen = True
   Else
      ' Open the UndoContext object to track changes.
      DTE.UndoContext.Open("RemoveNewLines", False)
   End If

   ' Perform search for newline characters and remove them.
   If strTS <> "" Then
      txtSel.Delete()
      strTS = Replace(strTS, vbNewLine, "", Compare:=vbTextCompare)
      txtSel.Insert(strTS)
   End If

   ' If UndoContext was already open, don't close it.
   If boolWasOpen = False Then
      ' Close the UndoContext object to commit the changes.
      DTE.UndoContext.Close()
   End If
End Sub

.NET Framework Security

See Also

Reference

UndoContext Interface

EnvDTE Namespace