【译】New experimental Razor editor for Visual Studio

  随着 Visual Studio 2019 16.7 Preview 4 的发布,如今能够尝试咱们新的实验性 Razor 编辑器,用于本地开发,包括 MVC、Razor Page 和 Blazor。咱们很期待你来试一试!javascript

启用新的 Razor 编辑器

  要在 Visual Studio 2019 16.7 Preview 4 或更高版本中启用新的实验性 Razor 编辑器:html

  1. 安装最新版 Visual Studiojava

  2. 点击 Tools > Options > Environment > Preview Features,勾选Enable experimental Razor editor 选项:服务器

  3. 点击 OK 并重启 Visual Studio编辑器

  如此,如今可使用新的 Razor 编辑器。ide

Razor 是什么?

  Razor 是一种基于 HTML 和 C# 的模板语言,用于为基于 MVC、Razor Page 和 Blazor 的 .NET Web 应用程序定义动态呈现逻辑。在 MVC 和 Razor 页面应用程序中,你使用 Razor 来定义视图和页面的呈现逻辑 .cshtml 文件。在 Blazor 中,使用 Razor 在 .razor 文件中编写可重用的 UI 组件。Razor 是使用 .NET 构建 Web 应用程序的体验中相当重要的一部分。工具

  你如今能够尝试一下 Razor,用 ASP.NET Core 或 Blazor 构建你的第一个Web 应用程序。visual-studio

为何是新的 Razor 编辑器?

  Razor 的部分价值在于 Visual Studio 为编辑 Razor 文件提供了丰富的工具体验。Visual Studio 如今在同一个 Razor 文件中为 HTML、CSS、JavaScript、C# 和 Razor 特定语法提供了智能感知、自动完成和诊断。spa

  Visual Studio 作了一些巧妙的操做,以在 Razor 文件中同时启用对全部这些语言的编辑器支持。对 Razor 文档进行解析以肯定其组成部分,而后将每一个部分投影到一个称为投影缓冲区的特定于语言的缓冲区中。在 Visual Studio 中编辑 Razor 文档时,您看到的是这些投影缓冲区中的一组小窗口,它们组成了一个完整的文档。而后,每一个语言服务分别为每一个独立的投影缓冲区处理编辑体验。code

  例如,考虑下面Razor代码:

@{
    ViewData["Title"] = "About";
}
<script type="text/javascript">
    alert("Hello, World!");
</script>

  Visual Studio 处理 Razor 代码的方式以下:

  这个项目缓冲区设置在 Visual Studio 和 Mac 的 Visual Studio 中工做得很好,可是对于远程编辑场景,好比 Visual Studio LiveShare 或 Visual Studio Codespaces,它就有问题了。它也不能用于没有投影缓冲区支持的编辑器,好比 Visual Studio Code。因为 Razor 编辑器缺乏中央编配器,若是不仔细协调各类语言服务实现(由于它们在投影场景中控制本身的体验),就很难启用新特性。

Razor语言服务器

  为了更普遍地支持 Razor 编辑,咱们已经为一个基于 Razor 语言服务器的 ASP.NET Core 项目的新的 Razor 编辑器工做了一段时间。这个新的 Razor 语言服务器经过 LSP(Language Server Protocol)实现了一些编辑器特性,好比自动完成、转到定义等,LSP 为编辑器或 IDE 定义了一种启用这些特性的标准方法。而后一个 IDE 特定的 Razor 扩展用于处理与 Razor 语言服务器以及其余 HTML 和 C# 语言服务器的协调。

  这个新的 Razor 语言服务器已经做为 C# 扩展的一部分在 Visual Studio 代码中启用了对 Razor 的支持。它将是 Visual Studio Codespaces 和 Visual Studio LiveShare 支持 Razor 编辑的基础。如今能够在 Visual Studio 中做为预览特性进行本地开发。

  目前,咱们的重点是使新的基于 LSP 的 Razor 编辑器在功能上与现有的 Visual Studio Razor 编辑体验相同(以下所述,仍然有一些功能上的差距须要解决)。在将来的版本中,咱们但愿经过添加剧要的新功能来填补这些功能空白,好比为 Razor 带来更多的 C# 编辑特性,以及其余针对 Razor 的生产力改进。

已知问题

  新的 Razor 编辑器目前还处于试验阶段,有一些已知的限制。下面的Razor编辑器功能尚未彻底实现,将在将来的版本中增长:

      • 支持 JavaScript 和 CSS 的智能感知

      • C#、JavaScript、CSS、Blazor 组件、Tag Helper 和 tooltip 的颜色设置

      • 格式化仅限于 @code 和 @functions 块中的 C# 代码(没有嵌入 HTML 标记或 Razor 语法)

      • HTML 中支持 URL 选择器

      • C# 代码段(“prop”、“ctor”等)

      • 复杂的 C# 自动完成(例如,生成 override)

      • 从 C# 到 Razor 的定义/实现

      • C# 文件中的重命名不会传播到Razor文件

      • HTML 和 { } 中匹配标识符高亮显示

  16.7 Preview 4 中新的 Razor 编辑器也有一些功能问题,这些问题将在将来的版本中解决:

      • C# 中标识错误的波浪线多是对不齐

      • 因为在 Razor 文件中没必要要地使用指令而报告了没必要要的信息错误

      • Blazor 组件和 Tag Helper 如今的颜色和 C# 类同样,不受 Tag Helper 颜色选项的控制

提供反馈

  对于 Visual Studio 中新的基于 LSP 的 Razor 编辑体验来讲,如今还处于早期阶段。咱们知道,在它取代 Visual Studio 中现有的 Razor 编辑经验以前,还有不少工做要作。新的 Razor 工具在 16.7 中仍然是可选的和实验性的,咱们不但愿它成为默认的 Razor 编辑器,直到它的功能超过了现有的编辑器。可是,咱们但愿尽早与你分享咱们的进展,以便开始得到你对新 Razor 编辑器工做状况的反馈。为了确保咱们提供最好的 Razor 编辑经验,请尝试新的 Razor 工具并让咱们知道你的想法。你能够经过在 GitHub 上分享你的反馈。咱们感谢你的反馈!

原文连接

  https://devblogs.microsoft.com/aspnet/new-experimental-razor-editor-for-visual-studio/

相关文章
相关标签/搜索