2010-05-04 12 views
42

Mi ritrovo sempre a dover inserire un blocco di codice nelle parentesi graffe {}, ma sfortunatamente non è incluso nei frammenti di codice surround C#, che sembra essere una svista. Non sono riuscito a trovare nulla nemmeno sulla creazione di frammenti di codice (solo altri tipi di frammenti).Un modo per circondare il blocco di codice con le parentesi graffe {} in VS2008?

In realtà sto eseguendo anche il Resharper, ma non sembra avere questa funzionalità (o non ho capito come attivarlo).

abbiamo uno standard di codifica di includere anche una sola riga di codice dopo un se o altro tra parentesi graffe, quindi se ho potuto solo fare ReSharper fare che il refactoring automaticamente che sarebbe ancora meglio!

+0

se si tratta solo di refactoring delle singole linee .. non è uno snippet surround più pressioni dei tasti rispetto alla sola digitazione in {}? Passaggi: Fare clic su inizio, {, FINE,} = quindi 3 pressione tasto, 1 clic. vs selezionare testo, ctrl k, s, prime lettere del nome di frammento, immettere = almeno 1 clic, minimo 4 tasti premuti (ma solo se intellisense ti porta al frammento digitando 1 lettera) –

+1

Che dolore nel ***. Mi piacerebbe semplicemente selezionare il testo che desidero circondare quindi il personaggio che desidero circondare, sia esso {, [, (o ", proprio come faccio su PyCharm. Anche con ReSharper è necessaria una quantità oscura di tasti premuti C'è qualche possibilità di aggiornamento su questa funzionalità nelle ultime versioni? –

risposta

44

Ecco uno snippet veloce e sporco per fare proprio questo.

da installare:

Salvare il codice come SurroundWithBraces.snippet in "<my documents>\Visual Studio Version\Code Snippets\Visual C#\My Code Snippets"

Per utilizzare:

Seleziona blocco di testo.
Press Ctrl+K, Ctrl+S
scelto il mio frammenti di codice, bretelle

<?xml version="1.0" encoding="utf-8" ?> 
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
    <Header> 
     <Title>braces</Title> 
     <Shortcut>braces</Shortcut> 
     <Description>Code snippet to surround a block of code with braces</Description> 
     <Author>Igor Zevaka</Author> 
     <SnippetTypes> 
     <SnippetType>Expansion</SnippetType> 
     <SnippetType>SurroundsWith</SnippetType> 
     </SnippetTypes> 
    </Header> 
    <Snippet> 
     <Code Language="csharp"> 
     <![CDATA[{ 
     $selected$ $end$ 
    }]]> 
     </Code> 
    </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 
+0

Funziona alla grande! Per evitare di mostrare la cartella Frammenti di codice personale quando si preme il tasto di scelta rapida, è possibile inserire lo snippet nella memoria interna dei frammenti VS. Nel mio caso per VS 2015 e C# il percorso è: C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ VC# \ Snippets \ 1033 \ Visual C# – chviLadislav

1

Crea lo snippet di codice personalizzato per farlo. È possibile utilizzare snippy per creare il proprio http://blogs.msdn.com/gusperez/articles/93681.aspx o semplicemente utilizzare un editor XML per crearne uno.

inserire il file nella cartella Documenti \ Visual Studio \ XXXX Frammenti di codice \ C# \ My Code Snippets

0

Edit: Questo risulta essere parte di DxCore, da DevExpress. Lasciando qui così gli altri se ne accorgono, ma in fondo mi sbagliavo sbagliando male. Per disattivare questo particolare menu, disabilitarlo nella finestra di dialogo "aggiungi"; scaricando devexpress dal proprio menu, scarica CodeRush/Refactor, non le librerie di supporto di base.

Il è (non!) un modo integrato per farlo. Non so se puoi legare una chiave o no. Inoltre, questo embed non fa nulla se selezioni solo una riga, quindi probabilmente non funzionerà correttamente se il tuo materiale è su una riga dopo "if".

  1. Selezionare il blocco
  2. tasto destro del mouse
  3. scegliere "Embed Selezione"
  4. Scegliere "Blocco {}"

Nota: ho installato DexExpress, ma questo menu è lì anche quando non è caricato, e potrei giurare che è lì anche quando non è installato. Tuttavia, se mi sbaglio ...

Questo onestamente sembra qualcosa che sarebbe meglio chiedere r # per, un utente contribuisce forse?

+0

Questa opzione non sembra essere nella mia versione di VS2008, ma forse ho qualcosa configurato in modo diverso. ... "opzione, ma nessuna parentesi graffa lì. –

+0

Si scopre che fa parte di DxCore, il framework di supporto per DevExpress. Notato quando sono andato a vedere se c'era qualche altro addon di mistero che mi ero dimenticato. disabiliti il ​​prodotto principale che rimane ancora, il che spiega perché non riesco a trovarlo nel menu –

+0

@ Mark che è la stessa cosa che sto vedendo. Sembra che mi ricordi di averlo visto mentre stavo usando DevExpress ' CodeRush. –

36

In ReSharper 4.5, parentesi graffe sono inclusi come uno dei 'Modelli Surround' built-in:

  1. Selezionare il testo che si desidera ricci parentesi graffe intorno.
  2. ReSharper -> Code -> Surround With... -> {}

    o

    ALT + R -> C -> S -> 7

    o

    Ctrl+E, U -> 7(schema di Visual Studio)

    o

    Ctrl+Alt+J -> 7(schema 2.x/IDEA ReSharper)

17

ne dite:

Ctrl-X, {, Ctrl-V, } 

Si potrebbe anche legarsi che ad una macro.

+0

Ragionevole, ma facendo ciò mette il testo selezionato negli Appunti. – devgeezer

+0

bel trucco veloce e sporco che funziona! – Thomas

+5

Mi piace! È ancora più semplice nelle ultime versioni VS che completano automaticamente la seconda parentesi per te ... Ctrl-X, {, Ctrl-V –

1

Per completare la risposta di Ray Vega, per coloro che utilizzano Resharper, ho capito che è possibile associare un collegamento ai comandi di Resharper.

Basta procedere come segue (sto usando VS 2010):

andare in Strumenti-> Opzioni

nella casella di riepilogo, estendere Ambiente e fare clic sulla tastiera.

nel campo sotto "Mostra comandi contenenti:" enter "resharper.resharper_surroundwith"

nel campo sotto "Premere i tasti di scelta rapida" inserire il collegamento (ad esempio: scelgo Ctrl + R, Ctrl + S) e fare clic su Assegna e quindi su OK.

Questo è tutto. è possibile selezionare il proprio codice e digitare tale shorcut per visualizzare tutti i comandi di SurroundWith di Resharper. Inserisci 7 per inserire le parentesi graffe.

3

In VS2015 esiste una funzione sperimentale che la supporta selezionando il testo e digitando}.

Vedere here come abilitare.

+0

Sfortunatamente, questo funziona solo in C++, non in C#. –

+0

* e * VS si sono bloccati per la prima volta in pochi giorni, pochi minuti dopo aver abilitato le funzionalità sperimentali nelle opzioni dell'editor C++ ... anche se non ho codice CPP nel mio sln. –

+0

funziona per me sulla mia soluzione C++, che è piuttosto complessa, tuttavia dipende più probabilmente da ciò che si seleziona per circondare. – Serge

Problemi correlati