關(guān)注Visual Studio 2010中代碼提示的改進(jìn)
Visual Studio 2010RC版本之后,我們最期待的就是4月12日發(fā)布的正式版。在VS2010中大家比較關(guān)心的,肯定還是代碼提示,本文將為大家解釋這方面的改進(jìn)。
在11月份的一篇博文中,我提到了一個(gè)叫做“快速搜索”的功能—Visual Studio 2010中關(guān)注代碼的功能之一。在過(guò)去的歲月中我們?cè)谶@一領(lǐng)域中已經(jīng)有所滯后,而在Visual Studio 2010中,我們想專(zhuān)注于這方面并視其為關(guān)鍵。今天,我想分享更多關(guān)于我們關(guān)注代碼開(kāi)發(fā)方面的投資和功能的細(xì)節(jié)。
高亮引用(Highlight Reference)
高亮引用是一種看似簡(jiǎn)單卻易于使用的方式,幫助我們快速理解一段代碼并導(dǎo)航到相應(yīng)的引用。這個(gè)功能在一小段延遲之后被自動(dòng)激活 – 所有在鼠標(biāo)指針下的引用都被高亮顯示。只要按下Ctrl + Shift + UpArrow (或者DownArrow作反向?qū)Ш剑涂梢暂p松導(dǎo)航到下一個(gè)引用。在下面這個(gè)例子里,你可以看到該項(xiàng)功能的實(shí)際運(yùn)作;你可能也注意到它推斷出哪項(xiàng)重載綁定到當(dāng)前的選擇,而不是使用純文本匹配的方式。

快速搜索
快速搜索是我先前提到過(guò)的專(zhuān)注于代碼的功能。它作用于C++、C#和VB的所有符號(hào),以及所有文件類(lèi)型。它是一種非常輕量的作增量搜索的方式,可以很快的過(guò)濾結(jié)果并擁有諸如子字符串這樣強(qiáng)大的啟發(fā)式搜索。讓我們簡(jiǎn)單的看一下我可能會(huì)怎樣使用快速搜索。
假設(shè)我要尋找一個(gè)事件句柄,我已不太記得它的名字,但知道我使用了典型的命名規(guī)則,快速搜索可以幫上我的忙。我的***步是在快速搜索中輸入“Click”來(lái)尋找所有帶有“Click”的方法簽名。

這時(shí)候,我可能記得它還包含了“Enter”。我再輸入一個(gè)字母“E”,我就能對(duì)所有同時(shí)包含“Click”和“E”的結(jié)果進(jìn)行快速過(guò)濾。兩次輸入之間的空格被當(dāng)作通配符搜索。現(xiàn)在我已經(jīng)把結(jié)果縮減成一個(gè)很短的列表,我可以從里面選擇我想要的結(jié)果。

快速搜索甚至還支持駝峰匹配。比如說(shuō),如果我輸入大寫(xiě)的“SPF”,快速搜索會(huì)把結(jié)果過(guò)濾為那些駝峰匹配或者完全匹配的結(jié)果!

調(diào)用層次
我們關(guān)注的另一個(gè)場(chǎng)景是重審依賴(lài)關(guān)系。比方說(shuō),如果我對(duì)一個(gè)方法作了點(diǎn)改動(dòng),我可能會(huì)想知道調(diào)用這個(gè)方法的所有實(shí)例。在VS2010中,我們改進(jìn)了C++中調(diào)用瀏覽器的使用體驗(yàn),并為C#和VB添加了一個(gè)新的調(diào)用層次的工具。這些功能讓調(diào)用方法和被調(diào)用方法之間的導(dǎo)航變得更容易(如下所示)。

調(diào)用層次工具還允許你察看一個(gè)方法的所有重載方法以及接口方法的任意一種實(shí)現(xiàn)。比如,如果我想看看誰(shuí)實(shí)現(xiàn)了MakeSound()這個(gè)接口方法,我可以通過(guò)調(diào)用層次看到在Cat和Dog中一共有兩個(gè)實(shí)現(xiàn)。

消耗先行的開(kāi)發(fā)
在Visual Studio中有很多諸如智能感應(yīng)和快速搜索的功能適用于用戶(hù)消耗的API定義好之后。然而,我們注意到有很多時(shí)候你需要對(duì)一個(gè)還未完全定義好的API進(jìn)行開(kāi)發(fā)。比如,在測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)中,我們可以看到測(cè)試先行的模式。因此,在VS2010中,我們使消耗先行的開(kāi)發(fā)變得更簡(jiǎn)單。
我之前談過(guò)關(guān)于“從使用中生成”的功能。該功能通過(guò)代碼中的符號(hào)使用推斷出各種類(lèi)型、方法、屬性和構(gòu)造方法并生成一小段代碼。在下面的截屏中,你可以看見(jiàn)“從使用中生成”這一功能的實(shí)際運(yùn)作。

生成構(gòu)造方法將會(huì)生成以下代碼:

而且,我們?yōu)橹悄芨袘?yīng)也開(kāi)發(fā)了一套“消耗先行”的模式,從而使你可以輕松的觸發(fā)智能感應(yīng)中的功能。在現(xiàn)在的Visual Studio中,你可能已經(jīng)有這樣的經(jīng)歷,IDE會(huì)自動(dòng)完成一個(gè)標(biāo)示符,但其實(shí)你并不想讓它這樣做的,因?yàn)樗€并不存在(考慮一下范式方法返回類(lèi)型)。在下面的例子里,如果你輸入“Puzzle”,智能感應(yīng)為預(yù)先選擇“PuzzleTest”。敲擊空格或回車(chē)鍵將會(huì)插入“PuzzleTest”。

取而代之的,通過(guò)敲擊Ctrl + Alt + 空格鍵,你將能觸發(fā)“消耗先行”的模式。現(xiàn)在,當(dāng)你輸入“Puzzle”,列表中仍然包含了“PuzzleTest”,但卻不會(huì)主動(dòng)選擇它。你真正輸入的內(nèi)容才是會(huì)被插入的內(nèi)容。

這些是我們?cè)赩isual Studio 2010中所作的工作的一些例子。我們的工作旨在讓你的工作更簡(jiǎn)單更高效。
Namaste!
【編輯推薦】
- Visual Studio 2010中Parallel類(lèi)實(shí)現(xiàn)并行計(jì)算
- Visual Studio 2010中C++項(xiàng)目升級(jí)指南
- Visual Studio 2010中測(cè)試用例工作項(xiàng)類(lèi)型介紹
- 在Visual Studio 2010選擇合適的項(xiàng)目測(cè)試方法
- 細(xì)數(shù)VS 2003到Visual Studio 2010的開(kāi)發(fā)之路
【責(zé)任編輯:彭凡 TEL:(010)68476606】

















