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

前言

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

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

一、模板文件在哪

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

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

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

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

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

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

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

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

二、模板文件格式

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

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

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

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

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

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

三、模板文件导入

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

作者:Vulper

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

上一篇:windows server 证书的颁发与IIS证书的使用 Dapper入门使用,代替你的DbSQLhelper Asp.Net MVC中Action跳转(转载)


下一篇:HTML+JS中网页跳转的写法