随着 Visual Studio 最新版本的发布,微软推出了一款新的 Razor 编辑器,用于使用 MVC、Razor Pages 和 Blazor 进行本地开发。该工具目前还处于实验状态。
Razor 是一种基于 HTML 和 C# 的模板语言,可以用来为 .NET Web 应用程序创建动态内容。它不是一种编程语言,而是服务器端的标记语言。
目前,Visual Studio 能够在同一 Razor 文件中可同时支持针对 HTML、CSS、JavaScript、C# 和 Razor 特定语法的 IntelliSense、补全及诊断。
为了在 Razor 文件中同时启用对所有这些语言的编辑器支持,Visual Studio 需要做一些繁琐的工作:解析 Razor 文档以确定其组成部分,然后将每个部分投影到特定语言的缓冲区中,即投影缓冲区。编辑 Razor 文档时,Visual Studio 看到的是到每个投影缓冲区的小窗口集合,以组成一个完整的文档。然后,每种语言服务都将独立处理这些单独的投影缓冲区中每个缓冲区的编辑体验。
但这种方案作用有限,也不适用于远程编辑。为了给 Razor 编辑提供更广泛的支持,微软推出了新的 Razor 编辑器。它通过 语言服务器协议(LSP)实现了编辑器功能,如自动补全、转到定义等。然后,特定于 IDE 的 Razor 扩展将与 Razor 语言服务器和其他用于 HTML&C# 的语言服务器进行协调。
微软表示当前的开发重点是使新的基于 LSP 的 Razor 编辑器在功能上与现有的 Visual Studio Razor 编辑体验相同。接下来计划添加对功能还有:对 JavaScript 和 CSS IntelliSense 的支持、HTML 中的 URL 选择器支持、复杂的 C# 补全,以及从 C# 到 Razor 的定义 / 实现等等。
要启用新的实验性 Razor 编辑器,应先安装最新的 Visual Studio preview 版本,转到 工具 >选项 >环境 >预览功能,然后选择启用实验性 Razor 编辑器选项: