...

微軟在(zài) Visual Studio 2022 中引入新的(de) Razor 編輯器

2021-12-03

微軟宣布在(zài) Visual Studio 2022 中引入新的(de) Razor 編輯器,開發者可以(yǐ)使用新的(de) Razor 編輯器通過 MVC、Razor Pages 和(hé / huò) Blazor 進行本地(dì / de) ASP.NET Core 開發。

基于(yú) ASP.NET 核心項目的(de)新 Razor 編輯器已經開發了(le/liǎo)相當一(yī / yì /yí)段時(shí)間NET 的(de)核心項目基于(yú)語言服務器協議(LSP),語言服務器協議(LSP)是(shì)一(yī / yì /yí)個(gè)開源協議,它定義了(le/liǎo)編輯器或IDE啓用特性的(de)标準方式。LSP 模型能夠添加重要(yào / yāo)的(de)新功能,爲(wéi / wèi) Razor 帶來(lái)了(le/liǎo)更多 c# 的(de)編輯特性,并加速了(le/liǎo)其他(tā)新的(de) Razor 特有的(de)生産力改進。

特性

新的(de) Razor 編輯器模型更容易添加新的(de)代碼修複和(hé / huò)重構,加入了(le/liǎo)最常用的(de)重構和(hé / huò)缺失的(de) using:

此外,還添加了(le/liǎo)一(yī / yì /yí)些特定于(yú) Razor 開發的(de)重構,這(zhè)對于(yú)學習 Razor 的(de)日常語法和(hé / huò)公共元素至關重要(yào / yāo)。例如,提取塊後的(de)代碼允許你提取整個(gè)代碼塊隐藏文件的(de)編碼:

其他(tā)新的(de) Razor 重構包括:爲(wéi / wèi)組件添加 usings完全限定組件和(hé / huò)創建組件。随着 Razor 的(de)發展未來(lái)還有更多計劃。 

導航支持

Visual Studio 中最常用的(de)導航特性之(zhī)一(yī / yì /yí)是(shì)“轉到(dào)定義”(Go to Definition),定義組件幫助你快速浏覽整個(gè)文件,更好地(dì / de)理解你的(de)代碼。例如,在(zài)組件标簽上(shàng)按F12 可以(yǐ)導航到(dào)組件代碼:

F5 按鍵可以(yǐ)召喚出(chū)一(yī / yì /yí)組診斷工具,其中包括熱重載這(zhè)類尖端功能。

删除了(le/liǎo)以(yǐ)前版本的(de)代碼背景高亮顯示。這(zhè)種背景高亮跟已選擇的(de)代碼難以(yǐ)區分,視覺上(shàng)太混亂。

新的(de) Razor 編輯器支持最新的(de)編譯器功能,且正在(zài)完善現有的(de)語法交互。現在(zài)支持更智能的(de) Razor 語法補全,例如 <text> 補全和(hé / huò)自動補全。新編輯器還更改了(le/liǎo)診斷流程,确保僅顯示最重要(yào / yāo)的(de)診斷,并以(yǐ)預期保真度顯示編譯器生成的(de)診斷。 另外,Razor 現在(zài)完全支持 Visual Studio  Live Share(Live Share 是(shì)跟其他(tā)開發人(rén)員進行遠程協作的(de)工具,支持從 IDE 内部共享代碼 

另外,Razor 編輯器是(shì)十年前推出(chū)的(de),隻是(shì)老版本的(de) Razor 編輯器已積重難返,所以(yǐ)現在(zài)啓動新的(de) Razor 項目。新的(de) Razor 目标是(shì)融合老版本的(de)優秀功能,在(zài)此基礎上(shàng)提高質量和(hé / huò)性能,這(zhè)還有相當一(yī / yì /yí)段路要(yào / yāo)走,目前 Razor 團隊正在(zài)努力解決下列問題:

  • Snippets支持(使用Tab擴展)

  • 換行 div 快捷鍵 Shift+Alt+W

  • Ctrl+鼠标單擊 可以(yǐ)跳轉到(dào)定義

  • #region 代碼折疊

  • 嵌入式 JavaScript 格式 

  • 對 HTML、CSS 和(hé / huò) JavaScript 文件的(de)拖放支持 

  • 性能和(hé / huò)可靠性改進

  • 在(zài)調試時(shí)對 Blazor Web Assembly 項目的(de)熱加載支持

關于(yú)新 Razor 編輯器的(de)路線圖,可以(yǐ)在(zài) GitHub上(shàng)查看。


來(lái)源:oschina