2010-01-20 3 views
44

Visual Studio에서 스 니펫을 삽입하고 리터럴 삽입이 끝나면 커서가 스 니펫의 시작 부분으로 이동합니다.Visual Studio 코드 조각 커서

이제 Visual Studio에서 커서가 어디로 이동해야하는지 알려 드리고자합니다. 나는 웹을 수색했으며 실제로 이것이 가능할 것이라는 희망은 거의 가지고 있지 않다.

설명하기 위해, 나는이 조각이 있다고 가정 : 다음

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

      });]]> 
    </Code> 

를 삽입 한 후 : C#을위한 다음과 같은 "만약"조각 같이

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

답변

71

은 $ 엔드 $ 변수를 사용합니다.

<?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 $ $ end $ 하지만 그렇지 않습니다. 둘러싸인 코드 앞에 커서를 놓습니다. –

+0

그래, 그 트릭을했다. 그리고 저는 코드를 둘러싼 것이 아니기 때문에 저에게는 아무런 문제가되지 않습니다. 감사! – Stormenet

관련 문제