隨著 Visual Studio 最新版本的發(fā)布,微軟推出了一款新的 Razor 編輯器,用于使用 MVC、Razor Pages 和 Blazor 進(jìn)行本地開發(fā)。該工具目前還處于實驗狀態(tài)。Razor 是一種基于 HTML 和 C# 的模板語言,可以用來為 .NET Web 應(yīng)用程序創(chuàng)建動態(tài)內(nèi)容。它不是一種編程語言,而是服務(wù)器端的標(biāo)記語言。
目前,Visual Studio能夠在同一Razor 文件中可同時支持針對 HTML、CSS、Javascript、C# 和 Razor 特定語法的 IntelliSense、補(bǔ)全及診斷。
為了在 Razor 文件中同時啟用對所有這些語言的編輯器支持,Visual Studio 需要做一些繁瑣的工作:解析 Razor 文檔以確定其組成部分,然后將每個部分投影到特定語言的緩沖區(qū)中,即投影緩沖區(qū)。編輯 Razor 文檔時,Visual Studio 看到的是到每個投影緩沖區(qū)的小窗口集合,以組成一個完整的文檔。然后,每種語言服務(wù)都將單獨處理每個緩沖區(qū)的編輯體驗。
但這種方案作用有限,也不適用于遠(yuǎn)程編輯。為了給 Razor 編輯提供更廣泛的支持,微軟推出了新的 Razor 編輯器。它通過語言服務(wù)器協(xié)議(LSP)實現(xiàn)了編輯器功能,如自動補(bǔ)全、轉(zhuǎn)到定義等。然后,特定于 IDE 的 Razor 擴(kuò)展將與 Razor 語言服務(wù)器和其他用于 HTML&C# 的語言服務(wù)器進(jìn)行協(xié)調(diào)。
微軟表示當(dāng)前的開發(fā)重點是使新的基于 LSP 的 Razor 編輯器在功能上與現(xiàn)有的 Visual Studio Razor 編輯體驗相同。接下來計劃添加對功能還有:對 Javascript 和 CSS IntelliSense 的支持、HTML 中的 URL 選擇器支持、復(fù)雜的 C# 補(bǔ)全,以及從 C# 到 Razor 的定義/實現(xiàn)等等。
要啟用新的實驗性 Razor 編輯器,應(yīng)先安裝最新的Visual Studio preview版本,轉(zhuǎn)到 工具>選項>環(huán)境>預(yù)覽功能,然后選擇啟用實驗性 Razor 編輯器選項:
來源:開源中國