web-dev-qa-db-ja.com

VS2008でコードブロックを中括弧{}で囲む方法はありますか?

私はいつもコードのブロックを中括弧で囲む必要があることに気づきます{}ですが、残念ながらそれはC#サラウンドコードスニペットに含まれていません。これは見落としのようです。独自のサラウンドスニペットを作成する方法も見つかりませんでした(他の種類のスニペットのみ)。

私も実際にResharperを実行していますが、この機能も持っていないようです(またはアクティブにする方法がわかりません)。

ifまたはelseの後に1行のコードを含めるというコーディング標準があります。中括弧で囲まれているので、Resharperに自動的にリファクタリングを行わせることができれば、さらに良いでしょう!

44
Jim McKeeth

ここにそれを行うための迅速で汚いスニペットがあります。

インストールするには:

コードをSurroundWithBraces.snippetとして"<my documents>\Visual Studio Version\Code Snippets\Visual C#\My Code Snippets"に保存します

使用するには:

テキストのブロックを選択します。
Ctrl+K, Ctrl+Sを押します
マイコードスニペット、中かっこを選択

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

ReSharper 4.5では、中括弧は組み込みの「サラウンドテンプレート」の1つとして含まれています。

  1. 中かっこで囲むテキストを選択します。
  2. ReSharper -> Code -> Surround With... -> {}

    または

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

    または

    Ctrl+E, U -> 7(Visual Studioスキーム)

    または

    Ctrl+Alt+J -> 7(ReSharper 2.x/IDEAスキーム)

37
Ray Vega

どうですか:

Ctrl-X, {, Ctrl-V, }

それをマクロにバインドすることもできます。

19
Jimmy

VS2015には、テキストを選択して}と入力することでサポートする実験的な機能があります。

ここ 有効にする方法を参照してください。

3
Serge

そのための独自のカスタムコードスニペットを作成します。 snippyを使用して独自の http://blogs.msdn.com/gusperez/articles/93681.aspx を作成するか、XMLエディターを使用して作成することができます。

ファイルをMyDocuments\Visual Studio XXXX\Code Snippets\C#\ My CodeSnippetsに配置します

1
helios456

Ray Vegaの答えを完成させるために、Resharperを使用している人のために、Resharperコマンドへのショートカットを関連付けることができると思いました。

次の手順を実行してください(私はVS 2010を使用しています)。

[ツール]-> [オプション]に移動します

リストボックスで、[環境]を拡張し、[キーボード]をクリックします。

[次を含むコマンドを表示する]の下のフィールドに「resharper.resharper_surroundwith」と入力します

[ショートカットキーを押す]の下のフィールドにショートカットを入力し(例:Ctrl + R、Ctrl + Sを選択)、[割り当て]をクリックしてから[OK]をクリックします。

それでおしまい。コードを選択し、そのショートカットを入力して、すべてのResharperSurroundWithコマンドを表示できます。中かっこを入れるには7を入力するだけです。

1
Shomron

次の方法でコードブロックを中かっこで囲むことができます

  1. コードブロックを強調表示する
  2. Ctrl e-> Ctrl u
  3. オプション7を選択

私はこれが古い質問であることを知っていますが、誰かに役立つことを願っています

参照: 複数のステートメントを中括弧で囲む

0
TheLukeMcCarthy

編集:これは、DevExpressのDxCoreの一部であることがわかります。他の人が気付くようにここを離れますが、基本的に私は間違っていました。この特定のメニューをなくすには、「アドイン」ダイアログで無効にします。独自のメニューからdevexpressをアンロードすると、基本サポートライブラリではなく、CodeRush/Refactorがアンロードされます。

これは(not!)組み込みの方法です。キーをバインドできるかどうかはわかりません。また、この埋め込みは、1行だけを選択した場合は何もしません。そのため、「if」の後の1行にコンテンツがある場合は、おそらく正しく機能しません。

  1. ブロックを選択します
  2. 右クリック
  3. 「埋め込み選択」を選択します
  4. 「ブロック{}」を選択します

注:DexExpressをインストールしていますが、このメニューはロードされていなくても表示され、インストールされていなくても表示されると断言できます。しかし、私が間違っていると...

これは正直なところ、r#に依頼するのが最善のように思えますが、おそらくユーザーの貢献ですか?

0
Andrew Backer