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

Fiv*_*ols 37 c# visual-studio-2010 code-snippets

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

小智 35

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

...
<Code Language="csharp">
    <![CDATA[#if $expression$ $selected$ $end$ #endif]]>
</Code>
...
Run Code Online (Sandbox Code Playgroud)

$结束$ ID指示在何处将光标置于环绕声功能完成时.这就是它的全部内容.当然,请记住将SurroundsWith包含为SnippetType

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

  • 该答案包含Microsoft应该编写的文档。感谢您分享@DiamondBack。 (2认同)

Mat*_*ira 26

查看有关创建代码段的MSDN文章.它应该给你一个良好的开端.在创建代码段时,请务必为其创建一个SnippetType,SurroundsWith以使代码段环绕所选代码.

对于最新的Visual Studio(目前是2017年),Microsoft Docs上代码片段,以及演练:创建代码片段.

  • @Alex:我总是使用Resharper,它具有非常优越的代码片段支持,支持几乎所有其他内容. (2认同)

mik*_*may 5

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

该示例适用于 XML 片段,但我猜这或多或少适用于任何语言。

  1. 将下面的代码粘贴到一个文件中并保存在任何地方作为 example.snippet
  2. 从 VS do Tools->Code Snippet Manager,选择 Language of XML,然后选择 My XML Snippets
  3. 单击导入并选择 example.snippet。
  4. 单击完成并确定
  5. 在这一点上,我重新启动了 VS,但可能不需要这种严厉的措施。
  6. 在 XML 文件中,选择要用 para 标记括起来的文本。
  7. Ctrl+K、Ctrl+S,选择我的 XML 片段,然后选择“SurroundWith 片段示例”。

<para> 标签将放置在您的文本之前和 </para> 之后。

如果包含尾随新行,则在文本之后会出现一个额外的空行,并且结束标记后面的文本与结束标记位于同一行。如果你考虑一下,这是有道理的。

如果您只选择一行中的部分文本,那么您可能会也可能不会得到您所期望的。片段可能需要调整。

<?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>
Run Code Online (Sandbox Code Playgroud)

我将我对 VS2017 中代码片段行为的编辑评论限制为说该实现对于现代 Microsoft 工具团队来说是不寻常的。尤其要注意有关快捷方式功能的声明。据我所知,他们没有做任何有用的事情。