2010-05-04 6 views
42

Je trouve toujours que j'ai besoin de placer un bloc de code entre accolades {}, mais malheureusement cela n'est pas inclus dans les extraits de code C#, ce qui semble être un oubli. Je n'ai pas pu trouver quoi que ce soit sur la construction de vos propres extraits (soit d'autres types d'extraits). Je lance aussi Resharper, mais il ne semble pas avoir cette fonctionnalité non plus (ou je n'ai pas compris comment l'activer).Un moyen d'entourer le bloc de code avec accolades {} dans VS2008?

Nous avons une norme de codage comprenant même une seule ligne de code après une si ou autre accolades, donc si je pouvais faire ReSharper faire cela refactorisation automatiquement ce serait encore mieux!

+0

si c'est juste pour refactoriser les liners un .. n'est pas un extrait surround plus de touches que de simplement taper dans le {}? Étapes: Cliquez sur début, {, FIN,} = 3 pressions, 1 clic. Sélectionnez le texte, ctrl k, s, premières lettres du nom de l'extrait, entrez = au moins 1 clic, 4 pressions minimum (mais seulement si intellisense vous amène à l'extrait en tapant 1 lettre) –

+1

dans le ***. J'aimerais simplement sélectionner le texte que je veux entourer, puis le personnage que je souhaite entourer, soit {, [, (ou ", comme je le fais sur PyCharm. Même avec ReSharper, il faut une quantité obscène de touches. Y at-il une quelconque mise à jour sur cette fonctionnalité dans les dernières versions? –

Répondre

44

Voici un extrait rapide et sale pour faire exactement cela.

Pour installer:

Enregistrez le code SurroundWithBraces.snippet dans "<my documents>\Visual Studio Version\Code Snippets\Visual C#\My Code Snippets"

Pour utiliser:

Sélectionnez le bloc de texte.
Press Ctrl+K, Ctrl+S
Mon Code Snippets a choisi, bretelles

<?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

Fonctionne bien! Pour éviter d'afficher le dossier My Code Snippets lorsque vous appuyez sur le raccourci, vous pouvez placer l'extrait juste à l'intérieur du stockage interne des extraits VS. Dans mon cas pour VS 2015 et C# le chemin est: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC# \ Snippets \ 1033 \ Visual C# – chviLadislav

1

Créez votre propre extrait de code personnalisé pour cela. Vous pouvez utiliser snippy pour créer votre propre http://blogs.msdn.com/gusperez/articles/93681.aspx ou simplement utiliser un éditeur XML pour en créer un.

Placez le fichier dans Mes documents \ Visual Studio \ XXXX Code Snippets \ C# \ My Code Snippets

0

Edit: Cela se révèle être une partie de DxCore, de DevExpress. Partant d'ici pour que d'autres remarquent, mais fondamentalement, j'avais tort de mal tort. Pour que ce menu particulier disparaisse, vous le désactivez dans la boîte de dialogue "Ajouter". décharger devexpress à partir de leur propre menu décharge juste CodeRush/Refactor, pas les bibliothèques de support de base.

Le (non!) est construit de manière à le faire. Je ne sais pas si vous pouvez lier une clé ou non. En outre, cette intégration ne fait rien si vous ne sélectionnez qu'une seule ligne, donc cela ne fonctionnera probablement pas correctement si votre contenu est sur une ligne après le "si".

  1. Sélectionnez le bloc
  2. Clic droit
  3. Choisissez "Intégrer sélection"
  4. Choisissez "bloc {}"

Note: J'ai DexExpress installé, mais ce menu est là, même quand il n'est pas chargé, et je pourrais jurer qu'il est là même quand il n'est pas installé. Cependant, si je me trompe ...

Cela semble honnêtement comme quelque chose qui serait préférable de demander r # pour, un contrib utilisateur peut-être?

+0

Cette option ne semble pas être dans ma version de VS2008, mais j'ai peut-être quelque chose de configuré différemment. ... "option, mais pas accolade dedans –

+0

Il s'avère qu'il fait partie de DxCore, le cadre de soutien pour DevExpress.J'ai remarqué quand je suis allé voir s'il y avait un autre addon mystère que j'ai oublié. Si vous désactivez le produit principal, il reste toujours, ce qui explique pourquoi je ne le trouve pas dans le menu –

+0

@Mark c'est la même chose que je vois. CodeRush. –

36

En ReSharper 4.5, les accolades sont inclus comme l'un des « Surround Modèles » intégré:

  1. Sélectionnez le texte que vous voulez bouclés accolades autour.
  2. ReSharper -> Code -> Surround With... -> {}

    ou

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

    ou

    Ctrl+E, U -> 7(schéma Visual Studio)

    ou

    Ctrl+Alt+J -> 7(ReSharper schéma 2.x/IDEA)

17

Que diriez-vous:

Ctrl-X, {, Ctrl-V, } 

Vous pouvez même lier cela à une macro.

+0

Raisonnable, mais cela met le texte sélectionné dans le presse-papiers. – devgeezer

+0

bon hack rapide et sale qui fonctionne juste! – Thomas

+5

J'aime ça! C'est encore plus simple dans les dernières versions VS qui complètent automatiquement la deuxième parenthèse pour vous ... Ctrl-X, {, Ctrl-V –

1

Pour compléter la réponse de Ray Vega, pour ceux qui utilisent Resharper, j'ai compris que vous pouviez associer un raccourci aux commandes Resharper.

Il suffit de faire ce qui suit (je suis en utilisant VS 2010):

Outils-> Options

Dans la zone de liste, étendre l'environnement et cliquez sur Clavier.

Dans le champ sous "Afficher les commandes contenant:" enter "resharper.resharper_surroundwith"

Dans le champ sous "touches de raccourci de presse" entrez votre raccourci (par exemple: je choisis Ctrl + R, Ctrl + S) et cliquez sur Attribuer, puis sur OK.

C'est tout. Vous pouvez sélectionner votre code et taper ce raccourci pour afficher toutes les commandes Resharper SurroundWith. Il suffit d'entrer 7 pour mettre des accolades.

0

Vous pouvez envelopper un bloc de code avec des accolades par

  1. Mettez en surbrillance le bloc de code
  2. Ctrl e -> Ctrl u
  3. sélectionnez l'option 7

Je sais que c'est un vieux question mais j'espère que cela aide quelqu'un

Ref: Wrapping multiple statements in braces

3

Dans VS2015, il existe une fonctionnalité expérimentale qui le supporte en sélectionnant le texte et en tapant}.

Voir here comment activer.

+0

Malheureusement, cela ne fonctionne qu'en C++, pas en C#. –

+0

* et * VS juste écrasé pour la première fois en jours, minutes après que j'ai activé les fonctionnalités expérimentales dans les options de l'éditeur C++ ... même si je n'ai pas de code CPP dans mon sln. –

+0

cela fonctionne pour ma solution C++, ce qui est assez complexe, mais cela dépend probablement de ce que vous choisissez d'entourer. – Serge

Questions connexes