2013-12-15 7 views

Antwort

1

Ok hier ist die Antwort als Makro, das ich gebaut habe, was es tut (Toggle) einschließlich gehen zu konzentrieren:

Hier ist die Demo:

enter image description here

Und hier ist die Code, viel Spaß!

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 
3

ich hörte, dass ctrl + ] den Trick

+2

Nein, wenn sich der Cursor '< body> aaaaaa' und Sie drücken 'ctrl]' es wird Sie nehmen '> aaaaaa' und nicht ' aaaaaa </body>' als –

+2

gewünscht @ RoyiNamir +1 für Ihre Bemühungen in Kommentaren :) – nawfal

+0

Yeah Strg +] bringt Sie zur schließenden Klammer, nicht das schließende Tag. Ich habe eine andere Methode veröffentlicht, die du verwenden kannst. –

5

Von dem, was ich gesammelt habe für diese keine Abkürzung gibt es entweder in ReSharper oder Visual Studio. Eine "Umgehung" wäre es, das Tag mit Ctrl + M + M zu reduzieren und dann mit Start- oder Ende-Taste zum Anfang oder Ende der Zeile zu gehen. Wenn Sie es erneut mit Strg + M + M öffnen, befinden Sie sich entweder oben oder unten am Tag.

  • Ctrl + M + M
  • Startseite/End (Je nachdem, ob Sie auf die Start- oder End-Tag gehen wollen)
  • Ctrl + M + M
Verwandte Themen