2011-05-05 88 views
30

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

+0

略有不同的问题,但同样的答案:http://stackoverflow.com/a/2879206/93394 – kmote 2014-07-17 19:57:51

回答

23

查看关于creating snippets的MSDN文章。它应该给你一个好的开始。当你创建你的代码片段时,一定要给它一个代码段类型SurroundsWith以使代码片段环绕所选代码。

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

+0

我不知道你们是怎么做的,但片段从来没有为我工作!即使我替换内置代码并将它们放在适当的文件夹中也不行! (VsDir \ Code Snippets \ Visual Basic)或(VsDir \ Code Snippets \ Visual C#) – 2011-05-05 17:30:35

+2

@Alex:我总是使用Resharper,它具有非常优越的代码片段支持,其中几乎支持其他所有内容。 – 2011-05-05 17:32:36

+0

在这里寻找一个例子:http://www.blackwasp.co.uk/VSSnippetTypes.aspx – Sara 2011-06-23 12:52:36

29

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

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

$ END $ ID指示在何处将光标置于环绕声功能完成时。 这就是它的全部。当然,要记住,SurroundsWith作为SnippetType

更多的例子,尽量考虑看看在C预定义的片段:\ Program Files文件\微软的Visual Studio 10.0 \\片段\ 1033 \。

+0

VS2012不会在VS2010的相同位置存储代码片段。如果您打开代码片段管理器并单击一组片段,它会向您显示它们存储的路径。这不是几英里,但它仍然难倒我,直到我找到路径 – 2012-09-17 16:08:41

+0

C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC#\ Snippets \ 1033 \ Visual C# – SAm 2014-09-24 09:34:50

+1

此答案包含Microsoft应该写的文档。感谢分享@DiamondBack。 – Marcel 2017-01-13 08:08:41

0

一个例子,为VS2017一些建议(基于以前的答案):

的例子是一个XML片断,但我猜,这将适用于更多或更少的任何语言。

  1. 下面的代码粘贴到一个文件,并保存为example.snippet从任何地方VS
  2. 做工具 - >代码段管理,XML的语言选择,然后我的XML片段
  3. 单击导入并选择example.snippet。
  4. 点击完成并确定
  5. 在这一点上,我重新启动VS,但可能不需要这样严厉的措施。
  6. 在XML文件中,选择要用para标签围绕的文本。
  7. Ctrl + K,Ctrl + S,选择My XML Snippets,然后选择“SurroundWith 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的行为社论评论说,执行是不寻常的现代微软工具开发团队。特别要小心有关快捷方式的功能。据我所知,他们没有任何用处。

相关问题