Перейти к закрытию тега в Visual Studio (используя Resharper)?

Я использую последний Resharper (v 8.1) с Visual Studio 2010.

Есть ли сочетание клавиш / функция "Перейти к закрывающему тегу"?

Например: если курсор находится на первом tr:

Я хочу, чтобы курсор пошел на закрытие tr который </tr>

Есть ли ярлык для этого?

(ps - что-то вроде goto matchine brace, но для тегов Xml/html)

3 ответа

Решение

Хорошо, вот ответ в виде макроса, который я построил, который делает это (переключение), в том числе перейти к фокусу:

Вот демо:

А вот и код, наслаждайтесь!

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.Windows.Forms

Public Module Module2
    Sub beginToEnd()

        'Place cursor somewhere in beginning tag, run macro, to select from beginning to End Tag

        DTE.ActiveDocument.Selection.SelectLine()
        Dim objSel As TextSelection = DTE.ActiveDocument.Selection
        Dim topPoint As TextPoint = objSel.TopPoint
        Dim lTopLine As Long = topPoint.Line
        objSel.GotoLine(lTopLine, False)
        '  DTE.ActiveDocument.Selection.StartOfLine()
        DTE.ActiveDocument.Selection.SelectLine()
        Dim line1 As String = DTE.ActiveDocument.Selection.Text()
        If InStr(line1, "/") Then

            ' MsgBox(line1)
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
            DTE.ActiveDocument.Selection.EndOfLine()
            DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText, True)
            objSel.GotoLine(lTopLine, False)
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")


        Else

            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
            DTE.ActiveDocument.Selection.EndOfLine(False)
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")

        End If
        DTE.ActiveDocument.Selection.SelectLine()
        Dim line2 As String = DTE.ActiveDocument.Selection.Text()
        Dim objSel3 As TextSelection = DTE.ActiveDocument.Selection
        Dim topPoint3 As TextPoint = objSel3.TopPoint
        Dim lTopLine3 As Long = topPoint3.Line
        objSel.GotoLine(lTopLine3, False)
        DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText, False)


    End Sub



End Module

Из того, что я понял, для этого нет ярлыка ни в reSharper, ни в Visual Studio. "Обходной путь" состоит в том, чтобы свернуть тег, используя Ctrl + M + M, а затем перейти к началу или концу строки, используя клавишу Home или End. Когда вы откроете его снова с помощью Ctrl + M + M, вы окажетесь либо вверху, либо внизу тега.

  • Ctrl + M + M
  • Home / End (в зависимости от того, хотите ли вы перейти к началу или концу тега)
  • Ctrl + M + M

Я слышал, что ctrl + ] делает трюк

Другие вопросы по тегам