1、 添加一个实现编辑器工厂(IVsEditorFactory)接口的类并且实现所有必要方法
例如:[Guid(GuidList.guidExtDemoEditorFactoryString)] ---声明注册工厂的Guid
2、提供一个实现 (IVsPersistDocData2) 接口的类型,用于实现自定义编辑器所编辑的数据的
永久副本
3、提供一个实现 (IVsUIElementPane) 接口的类型,用于实现自定义编辑器的界面呈现
4、在 Package 类上声明 (ProvideEditorExtension) 以将文件扩展名和编辑器工厂进行关联
例如:[ProvideEditorExtension(typeof(DemoEditorFactory), ".isa", 100)] –声明文件扩展名与编辑器工厂的关联
5、在 Package 类的 Initialize 方法中使用 (RegisterFactory) 注册编辑器工厂实例
例如:this.RegisterEditorFactory(newDemoEditorFactory());
注意:
* 每种编辑器必须重复以上所有步骤。一个项目中可以提供任意多数量的编辑器实例。
1、添加一个实现文件生成器(IVsSingleFileGenerator)接口的类并实现所有必要方法
2、在上述的类上声明 CodeGeneratorRegistration 特性以便于注册生成器信息
例如:[CodeGeneratorRegistration(typeof(DemoFileGenerator), "DemoFileGenerator", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}")]
2、 在 Package 类上声明 ProvideObject 特性以便于在包中公开文件生成器
例如:[ProvideObject(typeof(DemoFileGenerator))]
1、创建一个项模板(ItemTemplate)项目
2、在项目中添加需要提供的文件并设定添加项时初始化的内容
3、编辑项目中的 vstemplate 文件,提供相关必要信息
比如:修改文件的扩展名等
4、在 Package 项目的 清单文件中,选择添加资源,将该项目作为 ItemTemplate 类型资源添加
Visual Studio SDK基本功能实现步骤,布布扣,bubuko.com
原文:http://www.cnblogs.com/xzlblog/p/3578025.html