It often happens that you need to swap the operands of an assignment. For example, say that you have this set of assignments:
p1.FirstName = m_FirstNamep1.LastName = m_LastName
and later in your source code you want to add a similar set of assignments, but with reversed operands:
m_FirstName = p1.FirstNamem_LastName = p1.LastName
Here’s a macro that lets you perform this operation automatically:
Sub SwapOperands() DTE.ActiveDocument.Selection.StartOfLine _ (vsStartOfLineOptions.vsStartOfLineOptionsFirstText) DTE.ExecuteCommand("Edit.Find") DTE.Find.Action = vsFindAction.vsFindActionFind DTE.Find.FindWhat = "=" DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument DTE.Find.MatchCase = False DTE.Find.MatchWholeWord = False DTE.Find.Backwards = False DTE.Find.MatchInHiddenText = False DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral DTE.Find.Execute() DTE.Windows.Item(Constants.vsWindowKindFindReplace).Close() DTE.ActiveDocument.Selection.Delete() DTE.ActiveDocument.Selection.StartOfLine _ (vsStartOfLineOptions.vsStartOfLineOptionsFirstText, True) DTE.ActiveDocument.Selection.Cut() DTE.ActiveDocument.Selection.EndOfLine() DTE.ActiveDocument.Selection.Text = "= " DTE.ActiveDocument.Selection.Paste()End Sub
For best usability, you should store this macro in a macro module, then assign a convenient shortcut to it, for example (two keystrokes): Ctrl-Shift-V, Ctrl-Shift-V. You can do this assignment from the Keyboard page in the Tools-Options dialog box. To execute the macro, place the caret on the assignment statement and press the shortcut you assigned to it.