Quickly swap assignment operands

Quickly swap assignment operands

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.

See also  How to Block Websites During Certain Hours on a Mac Computer

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist