Intellisense 自动完成在错误的位置插入文本

问题描述

在 cshtml 文件中编写代码时,有时智能感知会失控并开始在我实际键入的位置上方几行写入文本。目前,它似乎仅限于我按 Tab 键让它完成一个属性名称时,这还不错,因为我不能那样做。然而,它似乎也发生在其他时候,比如当我输入 @Model 然后按下一个句点时,它可能会在代码文件的其他部分写上 Model 这个词。

有人知道如何纠正吗?

解决方法

这可能更适合作为 VS 反馈项目,但由于这是我发现有人引用相同问题的唯一地方,我想我会添加一些确认。我没有解决方案,只能添加更多示例。这个问题困扰了我好几个月了!在 JavaScript 中输入 razor 代码时似乎最常发生这种情况,尤其是在带引号的字符串中。

这是一个来自测试项目的示例,我试图将模型字段的引用放入 JavaScript 字符串。请注意,我单击了几次 tab 并且它实际上并没有在我输入的时候插入智能感知结果。但是当我向下滚动时,你可以看到它随机插入到另一个很远的地方!

Sample Issue

我也尝试删除隐藏的 .vs 文件夹、bin/ 和 obj/,并且在重新启动 Visual Studio 后仍然可以可靠地重现该问题。目前在 1 之前的最新版本 (16.9.4)。我确实注意到,如果我重新打开这个 cshtml 文件,等到文件似乎完全加载(所有红色错误都消失了),我也会可靠地得到一个在我开始输入时发生的 ArgumentException。然后当我向下滚动时,我已经看到 Model 已随机插入代码中的另一个位置。

ArgumentException

我将尝试更新到最新版本 (16.9.5),并以安全模式启动以跳过加载所有 3rd-party 库,看看问题是否仍可重现,以防它是由以下原因之一引起的我目前正在使用的一些扩展程序。

编辑:与 16.9.5 相同的问题。尝试使用安全模式是行不通的,它会使 .cshtml 文件的智能感知和语法着色完全禁用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...