Visual Studio 2017:禁用CodeSnippets的智能感知功能

5
我正在使用Visual Studio 2017企业版,版本为15.3.3。
看起来IntelliSense有一些新的代码补全功能。其中之一是,在输入类型时自动建议字段名称。
SpacePosition s.. // 以s开头,Intellisense建议"space"、"position"和"spacePosition"。

snippedFeature on tab

我总体上喜欢这个功能,但对于代码片段来说不是很喜欢。在使用代码片段时,我的问题是按下tab键后,字面量的名称会被IntelliSense自动替换(用于导航到下一个字面量)。
在我的示例中,我想将属性命名为“other”,然后跳转到片段内的下一个字面量。但由于IntelliSense,属性名称被替换为“spacePosition”。
有没有办法在代码片段中禁用IntelliSense功能?
我在Visual Studio Code中找到了同样问题的解决方法:stackoverflow article,但在Visual Studio中没有。

1
现在还没有禁用代码片段内智能感知功能的选项,但您可以尝试在输入“other”后点击“Esc”键,然后点击“Tab”键跳转到下一个文字,详情请参见:https://1drv.ms/i/s!Atv5QNuFrncKgymwBXklXjEatOkN - Sara Liu - MSFT
@Sara:谢谢你的解决方法和短视频 :-),对我很有用。 - user2959547
嗨,很高兴听到您的问题已经解决并且我已经添加了回复,请在您有空的时候将其标记为答案好吗?这将帮助其他社区成员更轻松地搜索到这些信息,谢谢。 :) - Sara Liu - MSFT
这实际上是一个名称建议。可以关闭。 “Esc”不是解决方案,而是对新“酷”功能的临时措施。 - zORg Alex
4个回答

8
在"工具/选项/文本编辑器/C#/智能感知"中禁用名称建议。这就是导致这种荒谬情况的原因。微软后来意识到添加该功能会大大改变旧有的行为,而没有给开发者一个禁用它的方法。现在有一个这样的复选框。 Tools/Options/TextEditor/C#/IntelliSense 我几乎要卸载这个工作室了,因为这个问题太烦人了。不确定这是否是一个好功能,但我习惯于使用Tab代码片段,没有它我会更好一些。

1

如何管理代码片段

访问代码片段管理器:

1.) 在工具菜单上,单击代码片段管理器。快捷键Ctrl+K,Ctrl+B

如何更改片段行为

更改片段行为:

1.) 转到工具 > 选项 > 文本编辑器 > 智能感知 > 片段行为

2.) 参见图像。 enter image description here


谢谢您的提议。但那不是我想要的。我不想在按下Tab键时禁用代码片段。我想在插入代码片段后禁用Intellisense。我已经更新了我的问题以使其更清晰明了。 - user2959547

1
现在还没有禁用代码片段中此智能感知功能的选项,但您可以尝试在键入“其他”后单击“Esc”键,然后单击“Tab”键跳转到下一个文字。请参阅以下内容:
enter image description here

1
这在Visual Studio 2019中对于类是有效的,如果它是当前上下文有效的类(即不存在于不属于当前类命名空间或文件的using语句中的命名空间中)。以下是我的示例片段:
代码片段定义: enter image description here 代码片段使用:

enter image description here

这里有一个例子,我在第二个片段中使用了两个不同的类,一个是有效的类名,可以使用tab键自动完成,而另一个则无法工作,因为该类需要添加一个额外的命名空间using语句,而该语句目前在文件中缺失:

enter image description here

所以我看到两个选项。

  1. 使用来取消任何自动完成逻辑。
  2. 确保您有正确的using语句。 您甚至可以使用导入声明将using语句添加到代码片段中: 输入图像描述

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接