2010-01-20 136 views
44

在Visual Studio中,當您插入片段並完成插入文字時,光標跳轉到代碼片段的開頭。Visual Studio代碼片段光標

現在我想告訴visual studio光標應該在哪裏出現。我已經搜索了網頁,並且實際上沒有希望這是可能的。

爲了說明,假設我有這樣的片段:

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

      });]]> 
    </Code> 

然後插入後:

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

回答

71

使用$結束$變量如在下面的 「如果」 代碼段爲C#。

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

我在猜測,也許$ end $ thingy可能是你正在尋找的東西。 –

+1

是的,我現在試過了,它肯定是你想要的$ end $。但有一點需要注意:如果您正在使用新代碼創建一個代碼片段,例如花括號或任何其他代碼,我認爲以下代碼會將光標*置於包圍代碼後面: $ selection $ $結束$ 但它沒有。它將光標立即*放在包圍的代碼之前。 –

+0

是的,這是訣竅。而且我沒有圍繞代碼,所以這對我來說不是問題。謝謝! – Stormenet

相關問題