web-dev-qa-db-fra.com

Est-il possible d'entourer un bloc de code avec des accolades Curly {} dans VS2008?

Je me trouve toujours dans l'obligation de mettre un bloc de code entre accolades {} , mais malheureusement, cela ne figure pas dans les extraits de code surround C #, ce qui semble être un oubli. Je n'ai rien trouvé non plus sur la création de vos propres extraits surround (juste d'autres types d'extraits).

En fait, je cours aussi avec Resharper, mais il ne semble pas avoir cette fonctionnalité non plus (ou je n’ai pas trouvé comment l’activer).

Nous avons une norme de codage consistant à inclure même une seule ligne de code après un si ou autre entre accolades, donc si je pouvais simplement faire en sorte que Resharper fasse cette refactorisation automatiquement, ce serait: encore mieux!

44
Jim McKeeth

Voici un extrait rapide et sale pour faire exactement cela.

À installer:

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

Utiliser:

Sélectionnez un bloc de texte.
Appuyez sur Ctrl+K, Ctrl+S
A choisi mes extraits de code, accolades 

<?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>
48
Igor Zevaka

Dans ReSharper 4.5, les accolades sont incluses dans l'un des "modèles Surround" intégrés:

  1. Sélectionnez le texte pour lequel vous voulez des accolades bouclées .
  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 (schéma ReSharper 2.x/IDEA)

37
Ray Vega

Que diriez-vous:

Ctrl-X, {, Ctrl-V, }

Vous pouvez même lier cela à une macro. 

18
Jimmy

Dans VS2015, une fonctionnalité expérimentale la prend en charge en sélectionnant le texte, puis en la saisissant}.

Voir ici comment activer.

3
Serge

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

Placez le fichier dans Mes documents\Visual Studio XXXX\Extraits de code\C #\Mes extraits de code

1
helios456

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

Faites juste ce qui suit (j'utilise VS 2010):

allez dans Outils-> Options

Dans la zone de liste, développez Environnement et cliquez sur Clavier. 

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

Dans le champ sous "Appuyez sur les touches de raccourci", entrez votre raccourci (par exemple: je choisis Ctrl + R, Ctrl + S) et cliquez sur Affecter, 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.

1
Shomron

Vous pouvez envelopper un bloc de code avec des accolades

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

Je sais que c'est une vieille question mais j'espère que cela aidera quelqu'un

Ref: Envelopper plusieurs déclarations entre accolades

0
TheLukeMcCarthy

Edit: Cela s’avère faire partie de DxCore, de DevExpress. Partir d'ici pour que les autres le remarquent, mais au fond, j'avais tort. Pour faire disparaître ce menu particulier, désactivez-le dans la boîte de dialogue "Ajouts"; le déchargement devexpress de leur propre menu décharge simplement CodeRush/Refactor, pas les bibliothèques de support de base.

Le est (pas!) une manière intégrée de 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 vos données sont sur une seule ligne après le "if".

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

Remarque: DexExpress est installé sur mon ordinateur, mais ce menu est disponible même lorsqu'il n'est pas chargé. Je peux jurer qu'il est présent même s'il n'est pas installé. Cependant, si je me trompe ... 

Cela semble honnêtement quelque chose qu'il serait préférable de demander à r #, peut-être qu'un utilisateur contribue?

0
Andrew Backer