2010-10-26 14 views
8

In VB Classic, VBA e anche in Visual Studio è possibile fare doppio clic sul margine sinistro di un blocco di codice e selezionerà l'intero blocco corrente (sub , funzione ecc.). In Visual Studio questa area cliccabile è adiacente ai numeri di riga sulla sinistra.Tasti di scelta rapida in Visual Studio per selezionare il blocco corrente

C'è una scorciatoia da tastiera che farà lo stesso lavoro? ovvero, selezionare il "blocco corrente".

risposta

1

Per C#, è possibile ottenere un effetto simile posizionando il cusrsor accanto a una parentesi di apertura e premendo Shift-Ctrl-} per selezionare tutto il codice tra le parentesi. Questa e altre cose buone here.

Oppure, per VB, una macro di Visual Studio da selezionare ovunque si posizioni il cursore sull'occorrenza successiva di End Sub. Applicare questo alla vostra scorciatoia da tastiera e si dovrebbe avere qualcosa di molto praticabile:

Sub SelectToEndSub() 
    Dim objSel As TextSelection = DTE.ActiveDocument.Selection 
    Dim lStartLine As Long = objSel.TopPoint.Line 
    objSel.FindPattern("End Sub") 
    Dim lEndline As Long = objSel.TopPoint.Line 
    objSel.GotoLine(lStartLine) 
    objSel.LineDown(True, lEndline - lStartLine + 1) 
End Sub 
+0

c'è qualcosa di simile per vb.net? – hawbsl

+0

Scuse; Avrei dovuto capire che stavi parlando di VB. Non riesco a trovare una scorciatoia da tastiera ma sarebbe possibile con una macro. Potrei tornare da te ... –

+0

senza scuse necessarie, provato comunque la tua cosa e anche provato possibili equivalenti vb ma senza dadi. anche il collegamento era interessante. – hawbsl

3

che stavo cercando la stessa cosa quando mi sono imbattuto in CodeRush Xpress (gratuito) da DevExpress. È possibile ottenere ulteriori informazioni qui: http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/

Dopo aver installato CodeRush Xpress, è possibile selezionare blocchi di codice premendo una scorciatoia da tastiera. La cosa fantastica di questa implementazione è che consente di aumentare o diminuire l'ambito della selezione con ogni pressione di un tasto.

Ad esempio:

Private Sub MySub() 
    If myBooleanValue Then 
    txtResult.text = "The quick brown fox jumps over the lazy dog" 
    Else 
    txtResult.text = "nevermind" 
    End If 
End Sub 

Posizionare il cursore prima della "z" in "pigro", quindi aumentare la portata della selezione con la scorciatoia da tastiera (la mia ho legato al "+" sul numberpad ,) ripetutamente aumentando la portata della selezione, si ottengono i seguenti selezioni:

  • Premere 1: The quick brown fox jumps over the lazy dog ​​
  • Premere 2: "la volpe marrone rapido si sposta oltre i pigri cane "
  • Premere 3: txtResult.text = "Il quick brown fox salta sul cane pigro"
  • Premere 4: (intero Se Then selezionato)
  • Press 5: (intera Sub selezionato)

Premendo la scorciatoia da tastiera per diminuire la selezione avremo l'effetto inverso.

I ALTAMENTE consiglio di controllare CodeRush Xpress out. Mi è piaciuto così tanto che ho comprato la versione completa (che è stato vale ogni centesimo.)

4

Utilizzando ReSharper, premere repeatly Ctrl-w che sarà selezionare rapidamente il campo di applicazione desiderata.

Problemi correlati