【译】Visual Studio 的 Razor 编辑器的改进
自从我们在一个通用的 Razor 语言服务器上发布了 Visual Studio 的一个新的实验性 Razor 编辑器的第一个预览版以来,已经过去了6个月,现在是时候更新一下我们的进展了。团队一直在努力使新的 Razor 编辑器达到与旧的同等水平,修复 bug,并添加许多很棒的新功能。我们认为新的编辑器已经为日常开发做好了准备,所以现在是时候用最新的 Visual Studio 预览版来尝试一下了。我们希望你能尝试新的 Razor 编辑器,并与我们分享你的体验!
让我们开始吧
要开始使用新的 Razor 编辑器:
1. 安装最新版 Visual Studio preview (16.9 Preview 3)(可以安全地同时安装 Visual Studio 预览版和 Visual Studio 稳定版)
2. 选择 Tools > Options > Environment > Preview Features 并勾选 Enable experimental Razor editor 选项:

当你打开新的 Razor 编辑器时,你可能会发现它已经打开了。从 Visual Studio 16.9 Preview 3开始,我们慢慢向不同的用户群推广新的 Razor 编辑器。如果您之前尝试过新的编辑器,然后将其关闭,那么就不会成为自动展示的一部分,您需要手动重新启用它,以查看我们所取得的所有进展。新编辑器的许多已知问题现在已经修复,所以如果您在早期版本中遇到了阻塞问题,那么值得再试一次。
新的变化
除了致力于 Razor 编辑器的基本体验(自动完成、诊断、工具提示、语法着色等),团队还为新的 Razor 编辑器添加了一系列新特性。基于新的基于语言服务器协议(LSP,Language Server Protocol)的架构使得这些特性中的许多变得可能或更容易实现。
改进格式化
新的 Razor 编辑器有一个改进后的格式引擎,它比旧的更加保守(首先,不要造成破坏!),并且在处理代码方面也更加聪明。

我们致力于修复 Razor 的格式化,这样你就会对新的编辑器微笑,所以如果你点遇到格式化问题,请告诉我们,我们一定会解决它们。
C# 代码的行为
一些 C# 代码行为现在可以在 Razor 文件中使用:
添加@using指令或完全限定类型名

- 添加 null 检查

新的 Razor 编辑器的设计使启用 C# 代码行为变得更加容易,我们希望在未来的版本中启用更多。
已关闭文件的重命名
重命名不再局限于打开 Razor 文件。关闭的 Razor 文件中的名字也会得到更新。


重命名 Blazor 组件
现在可以从 Blazor 组件的标记重命名它。组件 Razor 文件将被自动重命名。

组件的代码行为
几个组件特定的代码操作现在也可用:
从未知标签创建组件

- 将 @code 提取到代码后置

添加@using或完全限定名

转到组件定义
需要快速查看组件的代码吗?只要按下 F12 就可以了!

使用 LiveShare 编辑 Razor
新的 Razor 编辑器也可以与 LiveShare 一起工作,所以即使在远程会话中使用 Razor,你也可以获得所有新的 Razor 编辑功能。
在 Visual Studio Code 中使用新的 Razor 编辑器
因为新的 Razor 编辑器基于可重用的 Razor 语言服务器,新的 Razor 编辑器及其新特性也可以从安装了 C# 扩展的 Visual Studio Code 中获得。
Mac 版的 Visual Studio 怎么样?Visual Studio for Mac 目前还不支持LSP,但是一旦它支持了,我们就会在 Visual Studio for Mac 中加入新的 Razor 编辑器。
Razor 语法着色改进
我们还在新编辑器中对 Razor 语法着色进行了一些改进,希望得到你们的反馈。如果你还没有参加以下的调查,请花点时间与我们分享你的意见。
已知问题
新 Razor 编辑器的这个版本仍然有一些已知的问题:
Razor 语法着色缺陷。Razor 语法着色有时需要编辑来触发,或者在某些情况下可能使用不正确的颜色。
没有代码片段完成。新编辑器还不支持 Snippet completion(如prop)。
有限覆盖完成。方法重写完成将只生成方法名,而不生成完整的方法签名。
这些问题都正在解决,并将在未来的版本中解决。
反馈
如果你在新编辑器中遇到问题,最好的方法是使用 Visual Studio 中的 Send Feedback > Report a Problem 功能。

除了您提供的信息外,提交的问题将自动包含我们诊断和解决问题所需的所有相关日志。
我们希望您喜欢新的 Razor 编辑器。感谢您试用新的 Razor 编辑器,并与我们分享您的反馈!
原文链接
https://devblogs.microsoft.com/aspnet/improvements-to-the-new-razor-editor-in-visual-studio/

【译】Visual Studio 的 Razor 编辑器的改进的更多相关文章
- Visual Studio工具——为编辑器增加垂直辅助线
原文:<Visual Studio工具> Posted on 2014/03/13 ==================================================== ...
- Fix Visual Studio 2013 Razor CSHTML Intellisense in Class Library or Console Application
https://mhusseini.wordpress.com/2015/02/05/fix-visual-studio-2013-razor-cshtml-intellisense-in-class ...
- 【译】New experimental Razor editor for Visual Studio
随着 Visual Studio 2019 16.7 Preview 4 的发布,现在可以尝试我们新的实验性 Razor 编辑器,用于本地开发,包括 MVC.Razor Page 和 Blazor.我 ...
- 在 Visual Studio 等编辑器/IDE中自动切换输入法,不需要手动的有没有?
使用Visual Studio写代码,经常遇到的一个问题就是切换中文输入法麻烦,输入完注释//,要切换到中文,输入完引号,要输入中文,然后还需要切换回来,有没有? 有时候中文输入法忽然失效有没有?明明 ...
- 分享10条Visual Studio 2012的开发使用技巧
使用Visual Studio 2012有一段时间了,并不是追赶潮流,而是被逼迫无可奈何.客户要求的ASP.NET MVC 4的项目,要用.NET 4.5来运行.经过一段时间的摸索,得到一点经验和体会 ...
- Visual Studio 2012的开发使用技巧
分享10条Visual Studio 2012的开发使用技巧 使用Visual Studio 2012有一段时间了,并不是追赶潮流,而是被逼迫无可奈何.客户要求的ASP.NET MVC 4的项目,要用 ...
- [转]基于Visual Studio 2010 进行敏捷/Scrum模式开发
http://www.infoq.com/cn/articles/visual-studio-2010-agile-scrum-development 根据Forrester Research今年第二 ...
- 微软Visual Studio Code 0.8.0发布,新增多种主题
月30日,Build 开发者大会上,正式宣布了 Visual Studio Code 项目;并将其定义为:一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和 ...
- 剖析并利用Visual Studio Code在Mac上编译、调试c#程序
0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...
随机推荐
- Cell 动态行高文字显示不全问题探索
目录 问题概述 一.新建工程 二.尝试复现问题 尝试解决 修改contentLblBtmCon优先级为High(750) 修改contentLblBtmCon优先级为Low(250) 小结 其他解决思 ...
- Linux系统编程【1】——编写more命令
背景介绍 笔者知识背景 笔者接触Linux快一年了.理论知识方面:学习了操作系统基础知识,了解进程调度.内存分配.文件管理.磁盘I/O这些基本的概念. 实操方面:会使用Linux简单命令,在嵌入式系统 ...
- 洛谷P1119-灾后重建-floyd算法
洛谷P1119-灾后重建 题目描述 给出\(B\)地区的村庄数NN,村庄编号从\(0\)到\(N-1\),和所有\(M\)条公路的长度,公路是双向的. 给出第\(i\)个村庄重建完成的时间\(t_i\ ...
- RuntimeError already started
Env: os: Ubuntu python3 pytorch vscode Desc 在上述环境中运行A3C多进程模型,使用命令行时没问题,使用vscode时出现 'RuntimeError: al ...
- 一分钟搞懂JavaScript中的JSON对象
JSON(JavaScript Object Notation)是表示值和对象的通用格式. JavaScript 提供了如下方法: JSON.stringify 将对象转换为 JSON. JSON.p ...
- 101道Numpy、Pandas练习题
无论是数据分析还是机器学习,数据的预处理必不可少. 其中最常用.最基础的Python库非numpy和pandas莫属,很多初学者可能看了很多教程,但是很快就把用法忘光了. 光看不练假把式,今天向大家推 ...
- git branch & git remote branch
git branch & git remote branch $ git branch -h usage: git branch [<options>] [-r | -a] [-- ...
- Linux 创建/编辑/查看 文件/文件夹的命令汇总
Linux 创建/编辑/查看 文件/文件夹的命令汇总 Linux 创建文件的命令Linux,编辑文件的命令Linux 查看文件的命令,touch,vim,vi,gedit,cat,ls -a, ls ...
- How to enable HTTPS for local development in macOS using Chrome
How to enable HTTPS for local development in macOS using Chrome HTTPS, macOS, Chrome local HTTPS htt ...
- Web 全栈开发 Redis 面试题
Web 全栈开发 Redis 面试题 Redis 大 key 问题 https://www.cnblogs.com/xgqfrms/p/13601959.html Redis 数据结构 Redis 初 ...