web-dev-qa-db-ja.com

VisualStudioコードスニペットカーソル

Visual Studioでは、スニペットを挿入してリテラルの挿入を終了すると、カーソルがスニペットの先頭にジャンプします。

それでは、後でカーソルをどこに置くべきかをVisualStudioに伝えたいと思います。私はウェブを検索しましたが、実際にこれが可能になることはほとんど期待できません。

説明のために、次のスニペットがあるとします。

<Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[this.SyncThreadRunInvoke(() =>
            {

            });]]>
    </Code>

次に挿入後:

this.SyncThreadRunInvoke(() =>
            {
            []<- I want the cursor here
            });
56
Stormenet

次のc#の「if」スニペットに示すように、$ end $変数を使用します。

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.Microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>if</Title>
            <Shortcut>if</Shortcut>
            <Description>Code snippet for if statement</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>expression</ID>
                    <ToolTip>Expression to evaluate</ToolTip>
                    <Default>true</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[if ($expression$)
    {
        $selected$ $end$
    }]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>
80