创建自己的代码片段(CodeSnippet)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建自己的代码片段(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
欢迎转载,转载请注明出处!
以上是关于创建自己的代码片段(CodeSnippet)的主要内容,如果未能解决你的问题,请参考以下文章
django-ckeditor添加代码功能(codesnippet)
此 Canon SDK C++ 代码片段的等效 C# 代码是啥?