易简.道(ething)

爱在进行时
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

自定义创建Visual Studio 2005代码段

Posted on 2010-12-14 11:39  如是如是  阅读(284)  评论(0编辑  收藏  举报

 

自定义创建Visual Studio 2005代码段

作者:Tony Patton

上周的专栏里,我们介绍了Visual Studio 2005新的代码段编写特性。内置的代码段是很不错,但是Visual Studio 2005更进了一步,让你能够创建自己的代码段,并重复用在项目里。本周,我们要扩展这一概念,创建自定义的代码段,以便轻松地重复使用应用程序的通用代码块。

创建文件

代码段在XML文件里被定义,文件的扩展名是.snippet。微软发明了代码段XML架构(Code Snippet XML Schema,它用来定义代码段XML文件的结构,并指定你可能会用在代码段文件里的元素(及其属性)。

由于代码段都被定义为XML,所以你可以用你习惯的XML或者文本编辑器来创建和维护它们。Visual Studio 2005支持XML编辑,所以它可以被用来保留在通用环境里。

代码段示例

根据项目或者组织的不同,有很多可用的代码段供使用。这可能是一小段你可以在整个代码中重复使用的代码块(这也可以并入代码库)。此外,代码可能包括也可能不包括让你强制进行代码编写的可替换参数。

为了说明以上的观点,我将创建一个代码段,用来公布一系列用于使用SQL服务器的对象。这让开发人员能够插入和使用这些对象,同时节省输入的时间。下面就是C#代码段:

SqlConnection conn;SqlCommand comm;SqlDataAdapter sda;

列表A里是一个代码段XML

<?xml version="1.0" encoding="utf-8"?><CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"><CodeSnippet Format="1.0.0"><Header><Title>TechRepublic Sample Code Snippet</Title><Shortcut>trSample</Shortcut><Description>Code snippet sample</Description><Author>Tony Patton</Author></Header>
<Snippet><Code Language="CSharp"><![CDATA[SqlConnection conn;SqlCommand comm;SqlDataAdapter sda;]]></Code></Snippet></CodeSnippet></CodeSnippets>

列表B里是相应的VB.NET代码:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>TechRepublic Sample Code Snippet</Title>
<Shortcut>trSample</Shortcut>
<Description>Code snippet sample</Description>
<Author>Tony Patton</Author>
</Header>
<Snippet>
<Code Language="VB">
<![CDATA[
Dim conn As SqlConnection
Dim comm As SqlCommand
Dim sda As SqlDataAdapter
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

下面我们更加仔细地看看这个XML

  • 代码段由CodeSnippet元素来定义。CodeSnippets元素是根节点,它可以包含一个或者多个CodeSnippet元素。
  • 在高亮显示的时候,Description(描述)、Author(作者)和Shortcut(快捷方式)元素会出现在"代码段管理器(Code Snippets Manager"窗口里。由于这个原因,Description元素里包含的文本应该告诉使用者这个段代码是做什么用的。此外,Shortcut元素是在Visual Studio 2005里输入的、真正使用代码段(输入快捷方式并点击[Tab])的内容。
  • Code元素包括真正的代码段。在文本的例子里,没有用到可替换的参数。代码被放在CDATA属性里。
  • Code元素的Language(语言)属性用来定义代码所使用的语言。这些语言包括VBC#VJ#XML

你应该创建一个文件夹来存放你自己的代码段,并把这个示例保存在这个文件夹下面。下面一步是把它放到Visual Studio 2005里。

"代码段管理器"让你能够很容易地向编程环境里添加自己的代码段。要做到这一点,你就要按照下面的步骤进行:

  • "工具|代码段管理器(Tools | Code Snippets Manager"菜单里选择"管理器(Manager"窗口。
  • "语言(Language"选项里选择正确的语言。
  • 点击"添加(Add"按钮把你的代码段加到环境里。这会打开"代码段目录(Code Snippets Directory"窗口让你浏览存放有代码段文件的文件夹。你不用选择真正的代码段文件——选中文件夹的话,其中所有的代码段都会被添加进来。
  • 一旦添加好了目录,就可以选择它并浏览里面的文件了。

你可以通过在Visual Studio 2005里输入正确的快捷方式和点击[Tab]插入代码来测试它,你也可以右击,从上下文菜单里选择"插入代码段(Insert Snippet"。这让你能够在不知道它快捷方式的情况下浏览可用代码段目录找到需要的代码段。如果你在使用C#,你还可以使用"包围(Surround With"上下文菜单选项。这只是解决这个简单示例的一种方式。

更多示例

代码段XML架构包括可选的Declarations(声明)元素,你可以用它来为代码段里指定的代码指定文本和对象。这可能包括0个或者多个可以用来定义文本的Literal(文本)元素,以及0个或者多个用来定义代码里对象的Object(对象)元素。Literal元素和Object元素包括IDToolTipDefault三个元素,它们分别用来指定项目的名称、工具提示的文本,以及它默认的值。此外,Object元素还含有用来指定对象类型的Type(类型)元素。

ObjectLiteral元素用在Code元素的真正代码里。通过在文本或者对象ID元素的值的前后放置$符号,你可以参考在Declarations元素里声明的文本和对象。列表C里的VB代码段文件用这些元素来声明用在我们代码里的文本:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>TechRepublic Sample Code Snippet</Title>
<Shortcut>trVB2</Shortcut>
<Description>Code snippet sample</Description>
<Author>Tony Patton</Author>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>connString</ID>
<ToolTip>Insert your connection string.</ToolTip>
<Default>"connection string"</Default>
</Literal>
<Literal>
<ID>sqlString</ID>
<ToolTip>Insert your T-SQL string.</ToolTip>
<Default>"Select Statement"</Default>
</Literal>
</Declarations>
<Code Language="VB">
<![CDATA[
Dim conn As System.Data.SqlClient.SqlConnection
Dim comm As System.Data.SqlClient.SqlCommand
conn = New SqlConnection($connString$)
comm = New SqlCommand($sqlString$, $connString$)
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

在使用这个代码段的时候,会有绿色的框出现在美元代号($connString$$sqlString$)夹着的文本周围,供你插入正确的文本。本专栏里的示例代码段只是简要探索了创建过程,代码段XML架构里还有很多可用的功能。

导入代码段

虽然自定义创建代码段能够提供很强的功能和很大的灵活性,你还可以向Visual Studio 2005导入(你自己或者其他人创建的)代码段。这可以通过"代码段管理器""导入(Import"按钮做到。利用"代码管理器"就可以把代码段导入到已有的目录下。在选择完目标目录之后选择"完成(Finish"按钮。这个过程会把代码段文件复制到目标目录下。微软提供了大量的Visual Studio 2005代码段,你可以把它们下载和导入到自己的环境里。

第三方工具

编辑和创建XML文件是一项比较乏味的工作。当你必须知道可能用在代码段文件里的合法元素的句法和顺序时,这尤其显得麻烦。虽然Visual Studio 2005没有提供代码段编辑器,但是市面上有很多代码段编辑器工具可以使用:

自定义你的编程环境

创建自定义的代码段让你能够重复使用标准的编码元素并节省大量的输入的时间,从而自定义和简化你的开发环境。就用你喜欢的XML或者文本编辑器创建自己的代码段并把它们添加到Visual Studio 2005里以节省宝贵的时间吧。

Tony Patton的职业生涯始于应用程序开发员,现已获得JavaVBLotusXML认证证书。