如何在Visual Studio 2010中创建“环绕声”类型的片段?

时间:2011-05-05 16:49:47

标签: c# visual-studio-2010 code-snippets

有没有办法在visual studio 2010中创建'环绕声'片段?我知道如何创建替换类型的代码段。带有片段的简单环绕声可以用asp:超链接围绕一个文本块。类似于默认的'环绕'片段可以使用asp:panel包围代码块的方式。

4 个答案:

答案 0 :(得分:32)

事实证明,有一些预定义的ID没有很好地记录。特别是对于 SurroundWith 类型代码段,有一个ID $ selected $ 。因此,例如, #if 代码段的代码为:

...
<Code Language="csharp">
    <![CDATA[#if $expression$ $selected$ $end$ #endif]]>
</Code>
...

$ end $ ID表示环绕声功能完成时光标的放置位置。 这就是它的全部内容。当然,请记住将 SurroundsWith 包含为SnippetType

有关更多示例,请尝试查看C:\ Program Files \ Microsoft Visual Studio 10.0 \\ Snippets \ 1033 \中预定义的代码段。

答案 1 :(得分:26)

查看creating snippets上的MSDN文章。它应该给你一个良好的开端。在您创建代码段时,请确保为其提供SurroundsWith的SnippetType,以使代码段环绕所选代码。

对于最新的Visual Studio(目前为2017年),有Code Snippets on Microsoft Docs以及Walkthrough: Creating a Code Snippet

答案 2 :(得分:2)

VS2017的示例和一些建议(基于之前的答案):

该示例适用于XML代码段,但我猜测这会适用于任何语言。

  1. 将下面的代码粘贴到文件中并保存为example.snippet
  2. 来自VS do Tools-&gt; Code Snippet Manager,选择XML语言,然后选择My XML Snippets
  3. 单击“导入”并选择example.snippet。
  4. 单击“完成”并单击“确定”
  5. 此时我重新启动了VS,但可能无法采取这种严厉的措施。
  6. 在XML文件中,选择要用para标签包围的文本。
  7. Ctrl + K,Ctrl + S,选择My XML Snippets,然后选择&#34; SurroundWith Snippet示例&#34;。
  8. A&lt; para&gt;标签将放在您的文字和&lt; / para&gt;之前后。

    如果您包含一个尾随的新行,那么您将在文本后面得到一个额外的空白行,并且结束标记后面的文本与结束标记位于同一行。如果你考虑它就有意义。

    如果您只选择一行中的部分文字,那么您可能会或可能不会得到您期望的内容。该片段可能需要调整。

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets
      xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>Example of a SurroundsWith snippet</Title>
          <Shortcut>shortcutsdontwork</Shortcut>
          <Description>
            complete example of SurroundsWith
            will put para tag on the line above selected text
            and /para end tag on the line below selected text
            will positon the cursor immediately after the
            closing angle bracket of the end tag
          </Description>
          <Author>mikedamay - TheDisappointedProgrammer</Author>
          <SnippetTypes>
            <SnippetType>SurroundsWith</SnippetType>
          </SnippetTypes>
        </Header>
        <Snippet>
          <Code Language="XML">
            <![CDATA[<para>
            $selected$
            </para>$end$]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>
    

    我将限制我关于VS2017中代码片段行为的编辑评论,说这对于现代Microsoft工具团队而言是不寻常的。特别要注意关于快捷方式的说法。据我所知,他们没有任何用处。

答案 3 :(得分:1)

来自上面有用的答案,这里是Code Snippets Schema Reference,这对于确定片段元素的有效值非常有用。