创建自己的代码片段(CodeSnippet)
前言
工作中经常会写一些重复的代码片段,如自动属性、for循环、Action等等,针对这种情况,VisualStudio已经给我们提供了一个非常方便的功能——代码片段,是我们可以简单的输入几个字母就能生成大段代码。
但是,工作中总会遇到一些重复代码是VisualStudio没有提供的,这时就需要我们自己去编写片段模板了,本文我将简单讲一下如何创建并使用自己的代码片段。
一、模板文件在哪
在工具-代码片段管理器(快捷键Ctrl+K,B)可以打开代码片段管理器,如下图:

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

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

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

二、模板文件格式
打开后的模板文件是这样的(这里以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
欢迎转载,转载请注明出处!
创建自己的代码片段(CodeSnippet)的更多相关文章
- Visual Studio使用技巧,创建自己的代码片段
1.代码片段的使用示例 在编写代码中常会使用代码片段来提高我们的编写代码的效率,如:在Visual Studio中编写一个 for(int i = 0; i < length;i++) { } ...
- 2019-01-29 VS Code创建自定义Python代码片段
续前文[日常]Beyond的歌里最多是"唏嘘"吗? - Python分词+词频最后的想法, 发现VS Code支持用户自定义代码片段: Creating your own snip ...
- 微信小程序代码片段
微信小程序代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验.展示组件和 API 的使用.复现开发问题等等.分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段. ...
- visual studio code开发代码片段扩展插件
背景 visual studio code编辑器强大在于可以自己扩展插件,不仅可以去插件市场下载,也可以按照官方的API很方便的制作适合自己的插件: 自己最近在开发一个手机端网站项目,基于vant项目 ...
- visual studio制作代码片段
使用 Visual Studio 的代码片段功能,我们可以快速根据已有模板创建出大量常用的代码出来.ReSharper 已经自带了一份非常好用的代码片段工具,不过使用 ReSharper 创建出来的代 ...
- Sublime Text自定制代码片段(Code Snippets)
在编写代码的整个过程中,开发人员经常会一次又一次的改写或者重用相同的代码段,消除这种重复过程的方法之一是把我们经常用到的代码保存成代码片段(snippets),这使得我们可以方便的检索和使用它们. 为 ...
- VS Code项目中共享自定义的代码片段方案
VS Code项目中共享自定义的代码片段方案 一.问题背景 项目中注释风格不统一,如何统一注释风格 一些第三方组件库名称太长,每次使用都需要找文档,然后复制粘贴 部分组件库有自己的Snippets插件 ...
- subllime text 创建可复用的代码片段
对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程. 在菜单上点 ...
- Sublime Text 2创建可复用的代码片段
对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程.在菜单上点击 ...
随机推荐
- for循环 重点题
1.冒泡排序 (特别重要): <script type="text/javascript"> var attr=Array(); for(var i=0; i< ...
- Java基础——抽象类和接口
之所以将抽象类和接口放在一起做笔记,是因为他们之间很难区分又各自独立.在学习完Java程序设计的三大特点(封装.继承.多态)之后,我最大的收获是,慢慢理解了Java语言这种面向对象程序设计的优越性,它 ...
- MYSQL导入数据报错|MYSQL导入超大文件报错|MYSQL导入大数据库报错:2006 - MySQL server has gone away
导SQL数据库结构+数据时,如果数据是批量插入的话会报错:2006 - MySQL server has gone away. 解决办法:找到你的mysql目录下的my.ini配置文件(如果安装目录没 ...
- Python模块之subprocess--使用Popen来调用系统命令
当我们需要调用系统的命令的时候,最先考虑的os 模块.用os.system()和os.popen()来进行操作.但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命 令的输 ...
- Spring Mvc Url和参数名称忽略大小写
在开发过程中Spring Mvc 默认 Url和参数名称都是区分大小写的 比如:www.a.com/user/getUserInfo?userId=1 www.a.com/user/getuserIn ...
- Redis客户端管理工具,状态监控工具
TreeNMS是一款Redis web客户端管理工具,采用JAVA开发,实现基于web方式对Redis数据库进行管理.监控.数据维护. 功能包括:数据库的状态监控,库表的展示,key,value的展示 ...
- .NET C#到Java没那么难,Servlet篇
前言 .NET C#到Java没那么难,都是面向对向的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到MVC,都是一样一样的,只是JAVA的配制项比较多而已,只要配好一个,后面都 ...
- jquery 表格行计算
表格行计算 总金额: function jisuanTrJinE(obj){ var curTab = $(obj).closest("table"); var curTr = $ ...
- maven下配置pom.xml
博主原创,转载请注明. 遇到的问题: 缺少依赖库.解决办法: 在build标签中添加: <plugin> <groupId>org.apache.maven.plugins&l ...
- 门控开关项目--使用Multism仿真
可以修改桥式整流电路的电容,发现容值不合适的时候,直流不平稳.