国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

在Visual Studio.NET中使用自定義插件最大化您的生產(chǎn)力(二)

2024-07-10 13:04:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
一個(gè)簡(jiǎn)單的編輯功能:插入日期

我創(chuàng)建了一個(gè)簡(jiǎn)單插入日期的功能,確切的功能是:在當(dāng)前光標(biāo)的位置或則當(dāng)前選擇文本的地方插入當(dāng)前日期。這是visual studio .net中已經(jīng)包含了一個(gè)用宏實(shí)現(xiàn)此功能的例子。所以你可以看見(jiàn)通過(guò)宏和插件兩種不同的方法實(shí)現(xiàn)同樣的功能。這個(gè)例子非常簡(jiǎn)單,只需要你修改一個(gè)在前面列出來(lái)的那個(gè)exec函數(shù)。通過(guò)前面章節(jié)我已經(jīng)創(chuàng)建了一個(gè)基本插件,這個(gè)插件的名字是“textutil”更加確切的說(shuō)是“textutil.connect.textutil”。在exec函數(shù)中我替換了向?qū)ё詣?dòng)生成的代碼。

handled = true;

替換為

handled = insertdate();

增加如下insertdata()函數(shù),可以在connect對(duì)象中的任何地方增加該函數(shù)。

private bool insertdata()

{

if(applicationobject.activedocument!= null)

((textselection)applicationobject.activedocument.selection).text

=datetime.now.tostring("yyy-mm-dd");

return true;

}

insertdata函數(shù)使用了system.datetime和sytem.string對(duì)象。關(guān)于system.string的介紹可以參看幫助。在這里我注意到在onconnection中關(guān)于commandbars的三行代碼,這三行代碼是在以后運(yùn)行的過(guò)程中要在工具菜單中建立菜單項(xiàng)。

除了名稱插件已經(jīng)完成。按f5來(lái)試驗(yàn)插件。一個(gè)新的ide實(shí)例運(yùn)行,在這個(gè)實(shí)例中這個(gè)插件將出現(xiàn)在工具|外接程序管理對(duì)話框中。可以通過(guò)選中再外接程序管理對(duì)話框中最左面的復(fù)選框來(lái)加載插件。現(xiàn)在你可以打開(kāi)任何一個(gè)文本文件,然后再visual studio .net的命令窗口中輸入“textutil.command.textutil”在當(dāng)前光標(biāo)的位置將插入當(dāng)前日期。事實(shí)上在你完成輸入之前自動(dòng)變異已經(jīng)天填充了命令。

當(dāng)你按下f5開(kāi)始運(yùn)行一個(gè)ide新的實(shí)例的時(shí)候,你的插件是在調(diào)試模式下。我們可以在調(diào)試模式下發(fā)現(xiàn)所有異常的信息。在普通的操作中出現(xiàn)了任何的異常,他們都可能不可用。盡可能的得到異常的信息,那么錯(cuò)誤的原因就會(huì)盡早的發(fā)現(xiàn)。

改變命令名稱

向?qū)б呀?jīng)為菜單命令指定了默認(rèn)的名字(textutil)。因此這個(gè)名字是不具有特色描述的,我一會(huì)會(huì)增加更多的菜單命令、改變菜單命令名稱。同時(shí),因?yàn)槲以诟淖兠蠲Q的時(shí)候遇到過(guò)名稱混亂的情況,所以我們必須確認(rèn)我們的插件不會(huì)有相同的命令名稱。

第一個(gè)改變是在onconnection函數(shù)中調(diào)用addnamecommand之處

command command = commands.addnamedcommand(addininstance,

"insertdate",

"insert current date",

"insert current date",

true, 59, ref contextguids,

(int)vscommandstatus.vscommandstatussupported

+(int)vscommandstatus.vscommandstatusenabled);



在quertystatus中更改如下:

if(commandname.tolower() == "textutil.connect.insertdate")

向?qū)г诔跏歼\(yùn)行加載之前應(yīng)經(jīng)注冊(cè)了插件信息,但是名稱的改變影響了注冊(cè)信息。這就意味著在增加了插件功能的時(shí)候我們需要從新生成插件項(xiàng)目和安裝項(xiàng)目。然后再運(yùn)行安裝程序。




圖3 運(yùn)行插件(原文:running the macro 譯者:可能是錯(cuò)誤)

現(xiàn)在“textutil.connect.insertdate”命令可以按照我的想法工作了(圖3)。但是,他是怎么工作的呢?讓我們繼續(xù)往下看。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹰潭市| 长岛县| 阿尔山市| 达州市| 马鞍山市| 蒙自县| 西贡区| 砀山县| 罗江县| 建平县| 庆阳市| 石林| 屏东市| 宿迁市| 绩溪县| 南宫市| 叶城县| 潼关县| 儋州市| 色达县| 忻城县| 阳曲县| 买车| 宜章县| 体育| 乳源| 利辛县| 泰和县| 德江县| 石柱| 浦北县| 东阳市| 黔西县| 松溪县| 唐山市| 台湾省| 罗甸县| 札达县| 龙江县| 民权县| 竹山县|