在之前的两篇曾提到通过VSSDK(MSDN也叫VSX)来拓宽思路,实现一些MEF Extension所不能做到的功能,比如获取IVsUIShell服务来执行Command等等,这里我给各位看官展示如何通过VSX提供自定义配置到IDE里面。
首先创建一个Package工程,找到里面的XX_Package.cs,要提供自定义配置到IDE,需要在这里通过ProviderProfile和ProviderOptionPage告诉Package两个重要信息:此Package有配置信息(Profiler)以及对应该配置信息的界面,这里我从我的GotoDef extension工程里截了一张图:
其中ProvideProfile告诉Package提供的Profiler的相关信息:关联的提供该Profiler的类型、分类名称、页面名称、资源ID等等,VS在需要时会把保存的信息(默认在注册表里)读取并反序列化成关联的类型的对象,在关闭Option对话框或者确认应用配置时,会把配置信息对象序列化保存(默认在注册表)。
另一个ProvideOptionPage来指定配置信息对象和界面,它是从DialogPage派生,需要注意的是需要为它提供Guid和ClassInterface类型;默认情况下,显示该配置对象使用PropertyGrid,当然,可以通过override Window属性来自定义自己的UI,比如GoToDef中的配置UI,如下图:
完成以后在VS Extension工程中引用这个Package并添加到VSIX输出中,这样就可以使用配置了:
至此,为VS Extension提供自定义配置的工作就完成了,具体效果可以参考本系列上一篇帖子:
http://www.cnblogs.com/powertoolsteam/archive/2010/09/07/1820457.html
分享到:
相关推荐
NULL 博文链接:https://kyfxbl.iteye.com/blog/1828089
这个工具类是自定义导航栏 跟 tarbar 项目必备
COM ATL SHELL EXTENSION给文件浏览对话框添加个自定义的按钮.zip
——————————————————————————————————— 软件名称:WhoLockMe Explorer Extension 汉化版 软件版本:1.04 运行环境:Windows9X/ME/2000/XP 汉化作者:王风华 联 系:yfeng@...
PHP的成功,应该说很大程度上依赖于其开放的扩展API机制和丰富的扩展组件(PHP Extension),正是这些扩展组件使得PHP从各种数据库操作到XML、JSON、加密、文件处理、图形处理、Socket等领域无所不能。有时候开发...
HiveMQ Kafka扩展自定义SDK在Maven Central中可用,因此不需要特殊配置。 要使用SDK,请将以下依赖项添加到您的Maven项目中: < groupId>com.hivemq</ groupId> < artifactId>hivemq-kafka-extension-...
实现自定义双工RPC协议的简单扩展消息hypercore-extension-rpc实现自定义双工RPC协议的简单扩展消息npm install hypercore-extension-rpc用法const Service = require('hypercore-extension-rpc')const service = ...
SimpleTunnel:使用NetworkExtension框架的自定义网络SimpleTunnel项目包含网络扩展框架提供的四个扩展点的工作示例: 分组隧道提供商数据包隧道提供程序扩展点用于表示定制网络隧道协议的客户端,该协议以IP数据包...
com atl shell extension往windows右键菜单上添加自定义菜单项.zip
vs extension pandoc vs extension pandoc vs extension pandoc vs extension pandoc
从 BREW 应用开发者的角度,探讨 Extension 的架构及实现
extension_0_7
本程序为作者使用vue3开发chrome插件时实践各个通讯API后,总结的相互之间无干扰的高效数据传输API组合,程序使用vscode可直接打开,npm install安装node_modules文件夹后直接点击NPM工具中的watch或build开始对插件...
VS Code插件C/C++ Extension Pack离线安装包
springside3-extension-3.3.4.jar
这篇文档阐述Category和Extension的原理,细说两者有何相同,有何不同。
Azure自定义脚本虚拟机扩展(2.0) 图像 地位 Canonical UbuntuServer 14.04.5-LTS 规范的UbuntuServer 16.04-LTS Canonical UbuntuServer 18.04-LTS Credativ Debian 8 Credativ Debian 9 OpenLogic CentOS ...
ReactChrome扩展MV3入门让您开始使用react和typescript开发chrome扩展(清单v3)的样板,几乎没有配置到零。特征React打字稿Sass / CSS 清单版本3 最多支持ES2021语法(使用babel) 浏览器列表创建自定义html页面和...
UITextField+Extension 是 UITextField扩展 使用runtime实现,完美支持第三方键盘,实现上移效果 通过添加UITextField类目,使用runtime实现,TextField被遮挡时视图上移效果 点击对应的父视图的空白地方回收键盘,...