web-dev-qa-db-ja.com

#endregionに同じ名前の#regionを自動的に作成します

#region Some Region #endregion Some Regionを作る方法はあるのでしょうか。それを行う方法がない場合は、Resharperで可能ですか?

私がここで達成しようとしていることが明確であることを願っています。

編集:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.Microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
    <Header>
        <Title>#region</Title>
        <Shortcut>#region</Shortcut>
        <Description>Code snippet for #region</Description>
        <Author>Microsoft Corporation</Author>
        <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
            <SnippetType>SurroundsWith</SnippetType>
        </SnippetTypes>
    </Header>
    <Snippet>
        <Declarations>
            <Literal>
                <ID>name</ID>
                <ToolTip>Region name</ToolTip>
                <Default>MyRegion</Default>
            </Literal>
        </Declarations>
        <Code Language="csharp"><![CDATA[#region $name$
    $selected$ $end$
#endregion $name$]]>
        </Code>
    </Snippet>
</CodeSnippet>
</CodeSnippets>

2番目の編集:これは機能しますが、挿入スニペットを作成した場合のみです。インテリセンスから、私が推測する他のスニペットを使用してこれを行います。

挿入スニペットメニューからではなく、インテリセンスから領域を追加する方法はありますか?

14
Harry89pl

あなたが達成しようとしているものが...

#region MyRegion
//...lots of code...
#endregion // end of MyRegion

これは、いわゆる「SurroundsWith」スニペットで行うことができます。これが私のライブラリの抜粋です...

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0"    
   xmlns="http://schemas.Microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>Enregions a block of code</Title>
    <Author>GJV</Author>
    <Shortcut>enr</Shortcut>
    <Description>Surrounds a block of code with region directives</Description>
    <SnippetTypes>
      <SnippetType>SurroundsWith</SnippetType>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal Editable="True">
        <ID>RegionName</ID>
        <ToolTip>Region Name</ToolTip>
        <Default>MyRegion</Default>
      </Literal>
    </Declarations>
    <Code Language="CSharp">  
    <![CDATA[
    #region $RegionName$
    $end$         
    $selected$    
    #endregion // end of $RegionName$ 
    ]]>        
    </Code>
  </Snippet>
</CodeSnippet>

Visual Studioで使用するには、スニペットを.snippetファイルに入れてスニペットディレクトリに保存し、[ツール] => [コードスニペットマネージャー] => [追加]に移動します。追加したら、標準のCTRK K + Xを使用してアクセスできます。

これにより、リージョンの組み込みスニペットに対して唯一提供されるのは、リージョンの終わりを示すために末尾のコメントを追加できる柔軟性です。さらに拡張を追加して、これをさらにカスタマイズすることもできます。

注:歩哨の$ end $は、操作が完了したときにカーソルを置く場所を示します。

11
Gayot Fow

Visual Studio 2017

タイプ #rTABTAB、次にリージョンの名前を入力します。

これは組み込みの動作です。

6
toddmo

VSCommands をお勧めします。

「Code Block End Tagger Improvements」の部分をご覧ください

2014年8月25日編集

コードブロック(メソッド名aso。)の始まりをコードブロックの終わりに明るい灰色のハイパーリンクとして配置します。クリック可能で、コードブロックの先頭に移動できるため、ハイパーリンクとして。

1
Dom84

Visual Studioの組み込みバージョンはCtrl K + Xです。

1
raminjacobson

#regionのReSharperデフォルトテンプレートを次のように変更できます。

#region $name$
    $END$
#endregion $name$

更新:

奇妙ですが、デフォルトの#regionテンプレートを変更しても何も機能しません。独自のテンプレートを定義し、そのスニペット(regなど)を設定して、上記のコードをその中に配置する必要があります。

1
rpeshkov

ctrl + K、Sを押して[地域]を選択します

0
iandavidson1982