专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Visual Studio

创造自己的代码片段(CodeSnippet)

发布时间:2011-06-23 13:53:56 文章来源:www.iduyao.cn 采编人员:星星草
创建自己的代码片段(CodeSnippet)

前言

工作中经常会写一些重复的代码片段,如自动属性、for循环、Action等等,针对这种情况,VisualStudio已经给我们提供了一个非常方便的功能——代码片段,是我们可以简单的输入几个字母就能生成大段代码。

但是,工作中总会遇到一些重复代码是VisualStudio没有提供的,这时就需要我们自己去编写片段模板了,本文我将简单讲一下如何创建并使用自己的代码片段。

一、模板文件在哪

 在工具-代码片段管理器(快捷键Ctrl+K,B)可以打开代码片段管理器,如下图:

选择模板所属语言,之后就可以看到该语言所拥有的分组,点开分组就可以看到组内的片段模板了,如下图:

在这里就可以看到模板所在的路径了

从资源管理器进入该路径就可以看到后缀名为Snippet的模板文件了,该文件本质为XML文件,可以直接用VS或记事本打开编辑。

二、模板文件格式

 打开后的模板文件是这样的(这里以for为例),各个节点对应的含义我做出了备注

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 3     <CodeSnippet Format="1.0.0">
 4         <Header>
 5             <Title>for</Title>                              <!--显示在提示界面及管理器中的标题-->
 6             <Shortcut>for</Shortcut>                        <!--调用时的快捷代码及管理器中的快捷方式-->
 7             <Description>for 循环的代码片段</Description>   <!--显示在提示界面及管理器中的描述-->
 8             <Author>Microsoft Corporation</Author>          <!--显示管理器中的作者信息-->
 9             <SnippetTypes>                                  <!--显示管理器中的片段类型,这段一般只保留Expansion即可-->
10                 <SnippetType>Expansion</SnippetType>          <!--扩展类型,基本所有片段模板均包含此类型-->
11                 <SnippetType>SurroundsWith</SnippetType>      <!--外侧代码,可在光标所在代码外围插入该代码块,快捷键Ctrl+K,S-->
12         <!--有的模板还是Refactoring类型,该类型没有快捷键,也不包含Expansion类型,我们这里不多说明了-->
13             </SnippetTypes>
14         </Header>
15         <Snippet>
16             <Declarations>                                  <!--模板变量-->
17                 <Literal>
18                     <ID>index</ID>                              <!--变量ID,在模板中通过$ID$的方式调用-->
19                     <Default>i</Default>                        <!--变量默认值-->
20                     <ToolTip>索引</ToolTip>                     <!--焦点在变量上时变量的注释-->
21                 </Literal>
22                 <Literal>
23                     <ID>max</ID>
24                     <Default>length</Default>
25                     <ToolTip>最大长度</ToolTip>
26                 </Literal>
27             </Declarations>
28       <!--下面是模板内容-->
29             <Code Language="csharp"><![CDATA[for (int $index$ = 0; $index$ < $max$; $index$++)
30             {
31             $selected$ $end$
32             }]]>
33             </Code>
34         </Snippet>
35     </CodeSnippet>
36 </CodeSnippets>

 我们创建模板时可以直接导出一份VS自带的模板进行更改,代码主体写在Code标记处,用<![CDATA[和]]>括起来

 我们可以看到,上面的模板中还有两个标识并没有在Declarations中声明,分别如下

$selecteds$ 因为该代码片段是扩展类型,编码时可在当前选定代码外围添加(Ctrl+K,S),故此标识代表当前所选代码

$end$  此标识表示结束时(变量调整好后按Enter或者没变量片段的初始)光标所处位置

三、模板文件导入

 这个就简单了,将编辑好的模板直接拷贝到系统模板所在的路径下就可以了。

 

作者:Vulper

欢迎转载,转载请注明出处!

1楼lindexi
我也写了创建代码片的文章 [resharper 自定义代码片](http://lindexi.oschina.io/lindexi//post/resharper-%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%A3%E7%A0%81%E7%89%87/)
Re: Vulper
@lindexi,学习了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: