清明小短假天氣不給力,加上H7N9威力比較大,因此本屌基本上是在家宅了三天。由於一直想寫個插件來添加版權信息,正好有時間,就研究了一下。
關於VS插件開發,我主要是參考園子里Anders Cui的幾篇文章,理論上的東西,人家已經講得非常好了(我也講不到人家這個水平),因此這里我就不講了。
下面簡單介紹一下開發過程。
1、開始
用VS2010自帶的模板新建一個插件項目,如下圖:
2、實現思路
插件實現思路很簡單:在用戶選擇的文本處,用事先配置好的版權注釋信息,替換掉文本(如果是有選擇文本的話)或在光標位置插入。
下面是核心代碼:
TextSelection selectedText = _vs.ActiveDocument.Selection as TextSelection; //獲取選擇的文本對象 string copyInfo = AddInHelper.Read(); //讀取版權配置信息 copyInfo = copyInfo.Replace("@time", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));//替換時間點位符 selectedText.Text = copyInfo; //覆蓋選擇文本
3、項目結構
下面是最終的項目結構:
除了模板自帶的文件外,我添加了三個文件,AddIn.xml是保存注釋配置的,AddInHelper.cs是前者的讀寫輔助類,最后一個是用於在VS工具|選項|界面配置的用戶控件。(項目中“占位符”手誤打成“點位符”了,各位請在VSConfig.cs里自行改掉。。。囧)
4、插件部署
將AddIn.xml和項目生成的dll以及VisualSPlus.AddIn三個文件復制到{user}\Documents\Visual Studio 2010\Addins文件夾下即可。
如果你是手動創建了一個項目,需要將VS在此文件夾下生成的XXX For Test.AddIn文件刪除或移動其他地方,避免沖突。
5、最終效果
將光標定位到要插入版權信息的位置,運行插件即可。
6、問題與總結
原先是通過“/**/”添加注釋,不知道神馬狀況,插入后格式一直有問題,調了半天無果,最終只好換成“//”注釋,誰知道為神馬?(PS:天狼是隨便打的。。。)
沒有寫博客習慣,內容比較少,請同行門見諒。最后附上源碼一份:點擊下載源碼(文章或程序有問題都請拍磚指出!謝謝!)