2012-03-27 20 views
6

W Visual Studio mogę przeskakiwać z/do nawiasu otwierającego/zamykającego ze skrótem Control+].Usuwanie dopasowanych nawiasów klamrowych w Visual Studio

Czy istnieje skrót, który pozwoli mi usunąć jednocześnie oba nawiasy klamrowe (może z makrem/rozszerzeniem)?

np.

foo = (1 + bar() + 2); 

Kiedy jestem na pierwszym otwierającym nawiasem chciałbym go usunąć i jego dopasowanie klamra dostać

foo = 1 + bar() + 2; 
+0

podobnie jak zaćmienie – pylover

Odpowiedz

2

To nie jest tak proste, jak sugerował JaredPar, ale nie jestem Mac ekspert ro.

ten działa na()} i {[]

Sub DeleteMatchingBrace() 
    Dim sel As TextSelection = DTE.ActiveDocument.Selection 
    Dim ap As VirtualPoint = sel.ActivePoint 

    If (sel.Text() <> "") Then Exit Sub 
    ' reposition 
    DTE.ExecuteCommand("Edit.GoToBrace") : DTE.ExecuteCommand("Edit.GoToBrace") 

    If (ap.DisplayColumn <= ap.LineLength) Then sel.CharRight(True) 

    Dim c As String = sel.Text 
    Dim isRight As Boolean = False 
    If (c <> "(" And c <> "[" And c <> "{") Then 
     sel.CharLeft(True, 1 + IIf(c = "", 0, 1)) 
     c = sel.Text 
     sel.CharRight() 
     If (c <> ")" And c <> "]" And c <> "}") Then Exit Sub 
     isRight = True 
    End If 

    Dim line = ap.Line 
    Dim pos = ap.DisplayColumn 
    DTE.ExecuteCommand("Edit.GoToBrace") 
    If (isRight) Then sel.CharRight(True) Else sel.CharLeft(True) 

    sel.Text = "" 
    If (isRight And line = ap.Line) Then pos = pos - 1 
    sel.MoveToDisplayColumn(line, pos) 
    sel.CharLeft(True) 
    sel.Text = "" 
End Sub 

Then add a shortcut to this macro in VS.

2

Zrób makra naciśnij Ctrl +] dwa razy, a następnie Backspace, a następnie Ctrl + minus i usunięcie. Ctrl + minus przesuwa kursor w tył w czasie.

+0

Brzmi dobrze, ale nie mogłem tego uruchomić - ctrl + minus zawsze przeskakuje do innej linii. Czy muszę zmienić opcje VS? – laktak

+0

Och, może to być skrót Resharper ... Przejdź do Narzędzia> Opcje> Środowisko> Klawiatura: poszukaj "Widok.NawigowanyBackward" i upewnij się, że jest ustawiony na Ctrl + - (Globalny). – SimpleVar

3

Nie ma nieodłącznego sposobu, aby to zrobić z Visual Studio. W tym celu musisz zaimplementować makro.

Jeśli wybierzesz trasę makro, musisz zapoznać się z poleceniem Edit.GoToBrace. To jest polecenie, które przeskoczy cię z aktualnego do pasującego klamry. Zauważ, że faktycznie zrzuci cię po dopasowanym klamrze, więc być może będziesz musiał spojrzeć wstecz na jedną postać, aby znaleźć element do usunięcia.

Najlepszym sposobem realizacji tego jako makra jest

  • zapisać aktualną pozycję daszka
  • Execute Edit.GoToBrace
  • Usuń nawias po lewej stronie karetki
  • Usuń klamra na oryginalna pozycja opiekuna
+0

dziękuję, liczyłem na skończone makro :) ale postawiłem jedno – laktak

Powiązane problemy