| |
通过包技术扩展Visual Studio 2005 |
|
时间: 2006-08-23 来自:天极yesky |
 |
|
四、一个详细的定制编辑器和命令的例子
在这个例子中,我们不是把新功能添加到现有IDE,而是创建一个新的编辑器。所以,你实质上是在重建一个IDE的核心方面。
那么,为什么要创建编辑器呢?当你想提供一个开发者可以在其中管理新文件类型或是全新语言的定制工作空间时,你可以构建一个编辑器。为了说明你能够完成的各种任务,我们可以把编辑器划分为四个类型:
标准的基于文件的编辑器—一个通用编辑器,提供简单的文本编辑功能,并且包括基本功能,如删除和插入。
Visual Studio核心编辑器—与IDE使用的一样的编辑器;你可以在其中使用某种Visual Studio工程类型。
定制编辑器—它与你创建的一个定制工程类型一起工作,包括构建到你的工程中的任何独有特征。
外部编辑器—一个独立的编辑应用程序,如记事本,你可以从你的包中进行调用。
上面的可扩展性SDK发行中含有一个独立的帮助文件,其中包括一些优秀的创建各种编辑器教程。作为入门,下列步骤将向你介绍使用菜单命令创建一个定制编辑器的过程。其实,你有太多的自由工具可以使用,但篇幅所限,在此恕不详及。
首先,打开Visual Studio并创建一个新工程。同前一样,选择“Other Project Type->Extensibility”,然后选择“Visual Studio Integration Package”。命名这个工程为“MySpecialEditor”。
 图2.菜单命令和定制编辑器 | · 选择Visual C#并且让向导生成一个新key文件。
· 添加你的公司名,并且命名VSPackage为“My Special Editor”。
· 当选择VSPackage选项时,选择“Menu Command”和“Custom Editor”,见图2。
· 对于命令名,输入“My Special Command”,并且指定该命令ID为“cmdidSpecial”。
· 在这个例子中,输入编辑器名为“My Special Editor”,文件扩展名是“specedit”,且缺省文件名为“MySpecialEd”。
· 最后点击Finish,向导开始安装所有内容。需要的话,你可以按F5并且观察所发生的事情。
还要提及的是,该SDK发行中提供了大量有关类和接口的文档。目前为止,只要把你的菜单命令从Tool菜单下的默认位置移动到Edit菜单并且给它一个新图标即可。
· 打开MySpecialEditor.ctc并且转到NEWGROUPS_BEGIN部分。下面一行:
guidMySpecialEditorCmdSet:MyMenuGroup, guidSHLMainMenu:IDM_VS_MENU_TOOLS,0x0600;
改为:
guidMySpecialEditorCmdSet:MyMenuGroup, guidSHLMainMenu:IDM_VS_MENU_EDIT,0x0600;
· 打开MySpecialEditor.ctc并转到BUTTONS_BEGIN部分。在以下列内容开头的行中:
guidMySpecialEditorCmdSet:cmdidSpecial,...
查找:
...guidMySpecialEditorCmdSet:bmpPic1,...
并且用下列内容代替它:
...guidMySpecialEditorCmdSet:bmpPicArrows,...
按F5运行应用程序。当你选择“File->New File”时,你将在选项下看到你的新文件类型。选择它后,你就得到一个新的空的等待输入代码的定制编辑器。你可以在编辑选项下找到你的新命令(见图3)。至此,这个例子还没有实现多少功能;但是你已经可以很容易移动你的菜单,甚至包括在其它标题下创建新菜单组。你可以输入一些文本,保存它。最后,你就会看到你的默认文件名和扩展名显示出来。
 图3.新的编辑菜单 |
|
|
|
|
|
|
|
|