有没有办法在visual studio 2010中创建一个“环绕”代码段呢?我知道如何创建替换类型的代码片段。一个简单的带代码段的环绕可以用asp:hyperlink包围一个文本块。类似于默认的“surround with”代码段可以用asp:panel包围代码块的方式。
发布于 2011-05-06 01:24:44
请看一下creating snippets上的MSDN文章。这应该会给你一个好的开始。创建代码段时,请确保为其提供SurroundsWith的SnippetType,以使代码段环绕选定的代码。
对于最新的Visual Studio (目前是2017),除了Walkthrough: Creating a Code Snippet,还有Code Snippets on Microsoft Docs。
发布于 2011-10-19 06:39:42
事实证明,有一些预定义的ID没有很好的文档记录。对于SurroundWith类型的代码段,有一个ID $selected$。因此,例如,#if代码片段是:
...
<Code Language="csharp">
<![CDATA[#if $expression$ $selected$ $end$ #endif]]>
</Code>
...$end$ ID指示环绕功能完成时光标的放置位置。这真的是所有的事情了。当然,请记住将SurroundsWith作为SnippetType包含在内
有关更多示例,请尝试查看C:\Program Files\Microsoft Visual Studio10.0\Snippet\1033中的预定义代码段。
发布于 2017-09-28 17:19:29
关于VS2017的示例和一些建议(基于前面的答案):
该示例是针对XML片段的,但我猜测这或多或少适用于任何语言。
XML将下面的代码粘贴到一个文件中,并保存为example.snippet
一个标签将被放置在文本之前和之后。
如果包含一个尾随的换行符,则在文本之后会出现一个额外的空行,并且结束标记后面的文本将出现在与结束标记相同的行上。如果你仔细想想,这是有道理的。
如果在一行中只选择了文本的一部分,那么您可能会也可能得不到所需的内容。代码片段可能需要调整。
<?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中代码片段行为的评论,只说这种实现对于现代微软工具团队来说是不寻常的。尤其要注意有关快捷键功能的声明。据我所知,他们没有做任何有用的事情。
https://stackoverflow.com/questions/5901366
复制相似问题