在VS 2005中,新增加了许多新的特性和功能。其中在方便用户编程方面有了很大的改进,比如新增加了code snippets(代码片断助手)功能。所谓的code snippets,是用户可以在编程过程中,将经常要用到的一些常用代码或者值得收藏起来的代码保存起来,在要使用的时候就可以方便地调用出来。本文将介绍如何将vs 2005自带的code snippets加到已有的应用程序中去,以及如何建立自己的snipeets,如何使用开源的snippet editor。
在VS 2005中,新增加了许多新的特性和功能。其中在方便用户编程方面有了很大的改进,比如新增加了code snippets(代码片断助手)功能。所谓的code snippets,是用户可以在编程过程中,将经常要用到的一些常用代码或者值得收藏起来的代码保存起来,在要使用的时候就可以方便地调用出来。本文将介绍如何将vs 2005自带的code snippets加到已有的应用程序中去,以及如何建立自己的snipeets,如何使用开源的snippet editor。
如何使用code snippets。可以通过五种方式使用代码段:键盘快捷键,IntelliSense 自动完成,IntelliSense 完成单词列表,“编辑”菜单,上下文菜单。
l 通过键盘快捷键使用代码段
- 在 Visual Studio IDE 中打开要编辑的文件。
- 在“代码编辑器”中,将光标置于要插入代码段的位置。
- 键入 Ctrl+K、Ctrl+X。
- 从代码段插入器中选择代码段,然后按 Tab 或 Enter。
- 也可以键入代码段的名称,然后按 Tab 或 Enter。
l 通过 IntelliSense 自动完成使用代码段
- 在 Visual Studio IDE 中打开要编辑的文件。
- 在“代码编辑器”中,将光标置于要插入代码段的位置。
- 为要添加到代码中的代码段键入快捷方式。
- 键入两次 Tab 以调用代码段。
l 通过 IntelliSense 完成单词列表使用代码段
- 在 Visual Studio IDE 中打开要编辑的文件。
- 在“代码编辑器”中,将光标置于要插入代码段的位置。
- 首先为要添加到代码中的代码段键入快捷方式。如果已打开自动完成,则将显示 IntelliSense 完成单词列表。如果该列表未显示,则按 Ctrl+Space 激活它。
- 从完成单词列表中选择代码段。
- 键入两次 Tab 以调用代码段。
l 通过“编辑”菜单使用代码段
- 在 Visual Studio IDE 中打开要编辑的文件。
- 在“代码编辑器”中,将光标置于要插入代码段的位置。
- 从“编辑”菜单中选择“IntelliSense”,然后选择“插入代码段”命令。
- 从代码段插入器中选择代码段,然后按 Tab 或 Enter。
- 也可以键入代码段的名称,然后按 Tab 或 Enter。
l 通过上下文菜单使用代码段
- 在 Visual Studio IDE 中打开要编辑的文件。
- 在“代码编辑器”中,将光标置于要插入代码段的位置。
- 右击光标,然后从上下文菜单中选择“插入代码段”命令。
- 从代码段插入器中选择代码段,然后按 Tab 或 Enter。
- 也可以键入代码段的名称,然后按 Tab 或 Enter。
如何自定义snippets。首先研究下snippets的结构,以上文提到的属性snippets为例子,我们先在snippets管理器中,找到prop这个snippets,然后记下其所在的路径,然后再用编辑工具打开这个文件,可以看到如下的代码,注意是以xml格式组织的。
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>prop</Title>
<Shortcut>prop</Shortcut>
<Description>Code snippet for property and backing field</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>Property type</ToolTip>
<Default>int</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>Property name</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>The variable backing this property</ToolTip>
<Default>myVar</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[private $type$ $field$;
public $type$ $property$
{
get { return $field$;}
set { $field$ = value;}
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
在上面的代码中,其中的header部分简单描述了关于这个snippets的信息,如名称,快捷方式,作者,备注等。在<snippets>节点下,则逐个定义了在snippets中出现的属性,其中<default>指出了该属性默认的值。而在关键部分<code>,用<![CDATA]>的方式定义了snippets的基础架构,其中用$参数名的方式定义每个属性,十分简单。
如果要创建自己的snippets,是十分简单的,最简单的是使用比如记事本等编辑工具,新建一个后缀为snippet的 XML文件,仿照上面的格式就可以设计了。当完成后,可以在snippets管理器中通过导入完成的snippet就可以增加一个新的snippet了。此外,还可以到http://www.gotdotnet.com/codegallery/codegallery.aspx?id=b0813ae7-466a-43c2-b2ad-f87e4ee6bc39去下载一个snippet 编辑器,可以方便地进行编辑snippet。
Msdn网站也有很多Code Snippet库,可以到这个页面下载http://msdn.microsoft.com/vstudio/downloads/codesnippets/default.aspx。还有一位MVP J. Michael Palermo IV维护的一个开源的网站http://www.gotcodesnippets.com/ .利用这些资源和自己编写的Code Snippet,我们可以大大提高我们书写代码的效率。