天天看點

給VS添加代碼轉換功能

話說在兩三個月前,就想開發個代碼轉換器,将一個項目内的所有代碼檔案轉換到另一種語言的版本,比如從C#到VB.NET,不過當時覺得很複雜——現在還是,囧。

前兩天給個同僚一段代碼。他說,“是VB.NET的啊,還得改成C#的,好麻煩”,我想雖然有線上的代碼轉換頁面,但總不會一直開着那個頁面吧,是以想做個小功能:将一段代碼轉換為另一種語言的版本。

最後,根據它提供的WinForm執行個體,很容易将代碼轉換功能內建到VS中:

給VS添加代碼轉換功能

具體代碼可以參看本文的下載下傳代碼。

這裡通過這個功能的開發順便提提兩個值得注意的地方,一是Add-In運作過程中出現的異常;另一個是為Add-In指令添加快捷鍵。

<b>Add-In運作過程中出現的異常</b>

如果Add-In在運作時抛出了異常,VS表現得很淡定——它根本什麼都不說。是以對于比較可能出現異常的地方,可以考慮添加try…catch代碼塊,這樣易于跟蹤和調試。

<b>為Add-In指令添加快捷鍵</b>

給VS添加代碼轉換功能

要設定快捷鍵,首先要選擇<b>作用域</b>,即上面Global所在的下拉清單,再就是<b>快捷鍵本身</b>,最下面的下拉清單說明你輸入的快捷鍵目前是否已被用于某個指令。明白了這個設定過程,以程式設計方式來實作就容易了。

給VS添加代碼轉換功能

C# Code - 設定指令的快捷鍵

Command codeConverterCmd = _applicationObject.Commands.Item(GetCommandFullName(CODE_CONVERTER_COMMAND_NAME), 0);

codeConverterCmd.Bindings = "Global::Ctrl+T, C";

顯示擷取到指令對象的執行個體,然後設定Bindings屬性,包括scope和shortcut兩部分,就這麼簡單。

<b>參考</b>

《Professional Visual Studio® 2008 Extensibility》 

<a href="http://msdn.microsoft.com/zh-cn/library/envdte.command.bindings.aspx" target="_blank">Command.Bindings Property</a>

本文轉自一個程式員的自省部落格園部落格,原文連結:http://www.cnblogs.com/anderslly/archive/2009/05/30/vs-addin-code-converter.html,如需轉載請自行聯系原作者。

上一篇: Java面試題(1)
下一篇: A*算法入門

繼續閱讀