Visual Studio Revert-to-saved macros

I often run into situations where I’d like to undo all the work I’ve done in a file.  Some applications refer to this as Revert-to-saved.  Visual Studio 2005 does not seem to have a function to do this.  So, I’ve written a couple macros to do this.


The first, RevertToSaved simply calls Undo until it can’t undo anymore.  This is much faster than holding the Ctrl-Z key down, and keeps your undo buffer.



    Sub RevertToSaved()


        While DTE.ActiveDocument.Undo() = True


 


        End While


    End Sub


The second, RevertToSaved2, is a little more brute force–it simply closes the current project item and reopens it, attempting to return to the same cursor location.



    Sub RevertToSaved2()


        Dim projectItem As EnvDTE.ProjectItem = DTE.ActiveDocument.ProjectItem


        If Not projectItem Is Nothing Then


            Dim activeLine As Integer = DTE.ActiveDocument.Selection.ActivePoint.Line


            Dim lineCharOffset As Integer = DTE.ActiveDocument.Selection.ActivePoint.LineCharOffset


            DTE.ActiveDocument.Close(vsSaveChanges.vsSaveChangesNo)


            Dim window As EnvDTE.Window = projectItem.Open()


            If Not window Is Nothing Then


                window.Activate()


                window.Document.Selection.MoveToLineAndOffset(activeLine, lineCharOffset)


            End If


        End If


    End Sub


Enjoy!

Leave a Reply

Your email address will not be published. Required fields are marked *