Visual Studio 2013中的全新Editor功能
譯文在Visual Studio 2013的Editor當(dāng)中,我們引入了一系列旨在提升生產(chǎn)力并節(jié)約時間的新功能。其中一部分屬于全新功能,另一部分則來自Productivity Power Tools的高人氣擴(kuò)展。這些功能的加入要歸功于用戶朋友們通過User Voice建議、論壇帖子以及Connect錯誤所提出的使用反饋。MVP社區(qū)也在擴(kuò)展項目的選擇中向我們伸出援手。
在新版本Editor當(dāng)中,我們的主要在于保證開發(fā)人員盡可能不必脫離當(dāng)前編輯環(huán)境。這篇博文所介紹的功能將在輕松提供必要信息的同時允許大家始終處于當(dāng)前代碼位置。
Peek Definition (Alt + F12)
我們都知道,開發(fā)人員在瀏覽定義時往往需要在代碼當(dāng)中來回游走。在設(shè)計Visual Studio 2013的功能時,我們認(rèn)真考量如何利用元素與手勢幫助開發(fā)人員在瀏覽定義的同時又不會失去當(dāng)前代碼位置。Peek Definition就是這樣一項功能,允許大家在Editor內(nèi)部查看定義而無需額外開啟新的文檔標(biāo)簽。要體驗它的實際效果,各位可以右鍵單擊某個符號,在快捷菜單中點選“Peek Definition”命令或者直接按下快捷鍵組合Alt+F12。
利用Peek Definition能幫助我們節(jié)約花費在理解代碼庫上的時間,因為它允許用戶查看相關(guān)定義而不必將注意力從當(dāng)前代碼處移開。我們甚至能夠在不脫離原始文件的前提下,瀏覽一系列相關(guān)定義內(nèi)容。當(dāng)大家在當(dāng)前Peek視圖中調(diào)用Peek Definition命令時,系統(tǒng)會引導(dǎo)各位在Peek視圖內(nèi)部查看定義,并在之前的Peek視圖中添加返回導(dǎo)航。這些返回導(dǎo)航元素能幫助大家直觀了解自己是通過怎樣的途徑一步步抵達(dá)當(dāng)前定義的。
在設(shè)計這項功能時,我們選擇以出現(xiàn)在VS 2012中的“Preview Tab”概念為基礎(chǔ),這是因為Peek視圖是一種暫時性顯示結(jié)果、目的在于幫助大家免于開啟更多文檔。返回導(dǎo)航則是我們添加的另一種引導(dǎo)方案,希望幫助大家在繼續(xù)面對當(dāng)前代碼的同時直觀了解導(dǎo)航堆棧。事實上,如果大家將鼠標(biāo)懸停在返回導(dǎo)航之上,系統(tǒng)會提示一小段代碼,這樣各位就能快速了解自己將被引導(dǎo)到哪里。
在Visual Studio 2013預(yù)覽版中,Peek視圖擁有只讀屬性。經(jīng)過內(nèi)部用戶的測試,我們發(fā)現(xiàn)大家明確希望能夠?qū)eek視圖進(jìn)行編輯——當(dāng)然,我們立即著手實現(xiàn)這一要求。請朋友們立刻拿起手中的正式版本進(jìn)行體驗吧!
增強(qiáng)滾動條(Enhanced Scrollbar)
增強(qiáng)滾動條(Enhanced Scrollbar)一直是Productivity Power Tools當(dāng)中***的擴(kuò)展,現(xiàn)在則正式成為Visual Studio 2013中的標(biāo)準(zhǔn)成員。增強(qiáng)滾動條為用戶在垂直滾動條上提供可視化線索信息。滾動條上的標(biāo)記能幫助大家快速查看錯誤、警告、中斷點、書簽、查找結(jié)果的位置以及其它一些文件中的實用信息。同樣,我們希望憑借增強(qiáng)滾動條幫助用戶在當(dāng)前位置了解更多提示結(jié)果——而不必將滾動條拖動到對應(yīng)位置。
地圖模式
我們在滾動條中添加了一項“地圖模式”(Map Mode),從而帶來一些很酷的功能——而且大家可以對該機(jī)制進(jìn)行自定義:
1. 長達(dá)10000英尺的代碼視圖–對代碼進(jìn)行宏觀審視,從而讓滾動條成為幫助我們清晰理解代碼結(jié)構(gòu)的利器。
2. 單擊滾動–點擊滾動條中的任意區(qū)域即可直接將大家引導(dǎo)至文件中的對應(yīng)位置——這是一種快速實現(xiàn)文件內(nèi)容定位的新機(jī)制。
3. 預(yù)覽文件中的特定部分–將鼠標(biāo)懸停在滾動條上的任意位置即可在提示信息中對對應(yīng)部分的內(nèi)容進(jìn)行預(yù)覽。這項功能在文件審查過程中會帶來便捷的使用體驗。
#p#
導(dǎo)航至(Ctrl+,)
在提高開發(fā)生產(chǎn)力的探索過程中,我們嘗試擺脫傳統(tǒng)的獨立工具窗口及模式對話框,轉(zhuǎn)而尋求一種更為流暢的直接體驗,從而幫助大家將注意力集中在編碼工作上而非管理Visual Studio。我們對使用數(shù)據(jù)進(jìn)行了分析并決定對導(dǎo)航至(Navigate To)機(jī)制進(jìn)行更新,從而讓這套目前仍被廣泛使用的模式對話框更上一層樓。
通過新的導(dǎo)航至功能,大家可以輸入任意一部分符號內(nèi)容并利用智能語義搜索查找其定義。大家還可以輸入一部分文件名以快速切換到對應(yīng)位置——無論該文件之前是否已經(jīng)被打開。
Visual Studio 2013中的導(dǎo)航至功能支持早期版本的所有功能,但轉(zhuǎn)而以一種更流暢、非模式化且空間利用率更高的方式呈現(xiàn)。我們把新的搜索窗口放置在編輯器內(nèi)查找區(qū)周邊的右上位置。這種布局方式讓我們能夠在顯示預(yù)覽標(biāo)簽的同時盡可能增加導(dǎo)航至結(jié)果的顯示數(shù)量,而且不會遮擋預(yù)覽代碼視圖。
選擇的結(jié)果將自動顯示在預(yù)覽標(biāo)簽當(dāng)中。這能幫助用戶確保被選中的結(jié)果正是自己搜索的對象,從而在將其提交至新視圖之前更好地做出判斷。為了確保大家能夠更輕松地返回原先位置,我們只需按下Esc鍵即可取消跳轉(zhuǎn)結(jié)果——這就避免了搜索結(jié)果錯誤可能帶來的定位困擾。
在設(shè)計這些功能時,我們不只希望改進(jìn)原始運行時性能,同時也期待改善工作流。新的導(dǎo)航至功能針對鍵盤操作使用情況進(jìn)行了優(yōu)化,即參考到Solution Explorer的瀏覽重點。在功能開發(fā)的過程中,我們檢測并分析了內(nèi)部用戶的實際使用狀況,從而檢驗新的功能設(shè)計是否具有實際效率。下面請大家一同了解我們所參考的統(tǒng)計數(shù)據(jù)。
我們統(tǒng)計了用戶使用鍵盤上“下箭頭”按鍵的次數(shù),并以此結(jié)果作為提示列表準(zhǔn)確性的評判依據(jù):
數(shù)據(jù)顯示在大多數(shù)情況下,用戶都只需直接按下回車鍵即可——這意味著搜索查詢實現(xiàn)了準(zhǔn)確定位。也有些用戶在瀏覽結(jié)果時按下15次以上“下箭頭”按鍵,這其實與準(zhǔn)確性無關(guān)——只是他們查找的結(jié)果數(shù)量比較多而已。
為了決定在用戶點擊結(jié)果列表之外的區(qū)域時是否繼續(xù)開啟導(dǎo)航至功能,我們統(tǒng)計了用戶保持其開啟的次數(shù)。經(jīng)過調(diào)查,我們發(fā)現(xiàn)從對話框開啟那一刻到其關(guān)閉,平均持續(xù)時間為六秒鐘:數(shù)據(jù)顯示在大多數(shù)情況下,用戶都只需直接按下回車鍵即可——這意味著搜索查詢實現(xiàn)了準(zhǔn)確定位。也有些用戶在瀏覽結(jié)果時按下15次以上“下箭頭”按鍵,這其實與準(zhǔn)確性無關(guān)——只是他們查找的結(jié)果數(shù)量比較多而已。
為了決定在用戶點擊結(jié)果列表之外的區(qū)域時是否繼續(xù)開啟導(dǎo)航至功能,我們統(tǒng)計了用戶保持其開啟的次數(shù)。經(jīng)過調(diào)查,我們發(fā)現(xiàn)從對話框開啟那一刻到其關(guān)閉,平均持續(xù)時間為六秒鐘:
這反映了兩種最常見的操作情況:用戶導(dǎo)航到新位置并開始瀏覽,或者取消了該操作。這樣的結(jié)果讓我們決定在用戶點擊其它區(qū)域后關(guān)閉導(dǎo)航至對話框。我們會繼續(xù)關(guān)注使用數(shù)據(jù)以確保這種設(shè)計符合大多數(shù)用戶的直觀感受。
自動補全括號
自動補全括號功能,顧名思義,會自動為我們在編輯器中輸入的代碼補齊右側(cè)括號、引號、大括號等。這也是來自Productivity Power Tools的一項高人氣功能,現(xiàn)在我們將其正式引入Visual Studio 2013。
我們還針對不同類型的語言添加了補全規(guī)則。舉例來說,在C++當(dāng)中,我們會自動補全C++11原始字符串的字面表達(dá)并利用“*/”作為C類注釋的結(jié)束標(biāo)記,同時在類類型中插入分號。
#p#
上/下行移動 (Alt+上箭頭/下箭頭)
上/下行移動功能允許大家快速向上向下移動一行或者多行,具體操作方式為Alt+上箭頭以及Alt+下箭頭。這是Productivity Power Tools中的另一項人氣擴(kuò)展,此次也加入了Visual Studio 2013。
針對Visual C++的新IDE功能
我們還針對Visual C++添加了多項新功能。在未來幾周中,Visual C++技術(shù)團(tuán)隊將在其博客上分享更多信息,請大家保持關(guān)注。不過在今天的文章中,我們要強(qiáng)調(diào)的是C++代碼格式。
C++編輯器現(xiàn)在能在輸入的同時自動調(diào)整格式,這一功能也作用于被直接粘貼到C++文件中的代碼。我們發(fā)現(xiàn)對于C++來說,目前還沒有一種被廣泛接受的編碼風(fēng)格,因此我們在設(shè)置中添加了靈活性選項,允許大家對環(huán)境進(jìn)行自定義以匹配自己的開發(fā)風(fēng)格。我們期待您給出的反饋意見,這樣才能對設(shè)置做出進(jìn)一步調(diào)整。
針對JavaScript的新IDE功能
在JavaScript當(dāng)中,我們添加了標(biāo)識符高亮功能——現(xiàn)在當(dāng)大家選擇某個標(biāo)識符(例如變量名稱或者函數(shù)調(diào)用)時,對它的引用關(guān)系將被以高亮方式顯示在當(dāng)前源文件中。我們還設(shè)置了一個新的導(dǎo)航欄,用于在編輯器窗口上方顯示相關(guān)內(nèi)容,這樣大家就能更輕松地在JavaScript源文件當(dāng)中在主函數(shù)與對象之間來回切換。
原文鏈接:http://blogs.msdn.com/b/visualstudio/archive/2013/07/15/visual-studio-2013-new-editor-features.aspx