给VS添加代码转换功能
2009-05-30 20:45 Anders Cui 阅读(2581) 评论(2) 编辑 收藏 举报话说在两三个月前,就想开发个代码转换器,将一个项目内的所有代码文件转换到另一种语言的版本,比如从C#到VB.NET,不过当时觉得很复杂——现在还是,囧。
前两天给个同事一段代码。他说,“是VB.NET的啊,还得改成C#的,好麻烦”,我想虽然有在线的代码转换页面,但总不会一直开着那个页面吧,所以想做个小功能:将一段代码转换为另一种语言的版本。
SharpDevelop,.NET平台的一个开源的IDE,提供了一个在线的代码转换器(.NET 2.0),更重要的是,它还公开了一个Web Service,这样我们就可以借助于它的力量。
最后,根据它提供的WinForm实例,很容易将代码转换功能集成到VS中:
具体代码可以参看本文的下载代码。
这里通过这个功能的开发顺便提提两个值得注意的地方,一是Add-In运行过程中出现的异常;另一个是为Add-In命令添加快捷键。
Add-In运行过程中出现的异常
如果Add-In在运行时抛出了异常,VS表现得很淡定——它根本什么都不说。所以对于比较可能出现异常的地方,可以考虑添加try…catch代码块,这样易于跟踪和调试。
为Add-In命令添加快捷键
比较专业的Add-In往往会为它的命令添加快捷键(关于VS中的命令请参看这里)。先来看看在VS中如何为命令手工添加设置快捷键。通过菜单Tools->Options打开选项对话框,选择Environment->Keyboard:
要设置快捷键,首先要选择作用域,即上面Global所在的下拉列表,再就是快捷键本身,最下面的下拉列表说明你输入的快捷键当前是否已被用于某个命令。明白了这个设置过程,以编程方式来实现就容易了。

Command codeConverterCmd = _applicationObject.Commands.Item(GetCommandFullName(CODE_CONVERTER_COMMAND_NAME), 0);
codeConverterCmd.Bindings = "Global::Ctrl+T, C";
显示获取到命令对象的实例,然后设置Bindings属性,包括scope和shortcut两部分,就这么简单。
可以从这里下载代码,也可以在这里下载可运行的Add-In(解压缩后将文件放在[My Documents Path]\Visual Studio 2008\Addins下)。
参考
《Professional Visual Studio® 2008 Extensibility》
SharpDevelop Code Converter
Command.Bindings Property
出处:http://anderslly.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
2007-05-30 关于在IBatis中返回DataSet