C# Visual Studio-需要更智能的文字补全

C# Visual Studio-需要更智能的文字补全,c#,.net,visual-studio,C#,.net,Visual Studio,我希望word completion显示所有匹配的类型名称(不仅仅是导入的名称空间中的名称)。如果未导入该类型的nampespace-应在我从列表中选择类型时导入,如果该类型位于非引用程序集中-应将该程序集添加到项目引用中(添加导入和引用-当然,在提示后) 有时,试图回忆起确切的类型名及其名称空间是一件非常痛苦的事情。 有没有这样完成的产品? (是的,我知道Resharper。不,它不支持此功能) 如果单词补全可以显示所有类型的名字中的任何地方都有文本,而不仅仅是在开头,那就太好了。例如,我键入

我希望word completion显示所有匹配的类型名称(不仅仅是导入的名称空间中的名称)。如果未导入该类型的nampespace-应在我从列表中选择类型时导入,如果该类型位于非引用程序集中-应将该程序集添加到项目引用中(添加导入和引用-当然,在提示后)
有时,试图回忆起确切的类型名及其名称空间是一件非常痛苦的事情。 有没有这样完成的产品? (是的,我知道Resharper。不,它不支持此功能)


如果单词补全可以显示所有类型的名字中的任何地方都有文本,而不仅仅是在开头,那就太好了。例如,我键入“writer”-完成后会显示所有writer(TextWriter、StringWriter、StreamWriter-等)

您应该看看ReSharper(再次)它确实支持部分类型名的功能,或者只支持编写驼峰大小写类型名的大写字母,例如,可以使用ST找到某些类型


任何工具查找可能类型的程序集的数量总是有限的。毕竟,除非您告诉工具有关程序集的信息(以某种方式告诉工具,如在GAC中注册程序集、引用程序集或任何其他方式),否则工具不会随意知道该程序集,因为不会搜索它。除此之外,您确实不希望该工具搜索到多个程序集,因为在该工具搜索之前,您可能需要先编写任何类型的全名。
只需键入类似MD的内容,然后按Ctrl+Space,它将显示每个标准包含。只需按空格键确认(在这种情况下,MD5将显示)。它还可以了解您最常用的内容。

对错,intellisense的目标是为当前编辑位置提供合法的补充。这并不是百分之百的准确,但我们努力只列出有效的补全

显示当前项目引用的程序集中未导入和/或非类型的类型名称与此方法背道而驰。相反,它建议的代码对用户来说是非法的

是的,然后我们可以返回并通过添加程序集引用来解决这个问题。但是一些用户可能会觉得这很烦人。他们正在键入代码,突然添加了引用,并更改了导入


我并不是说这一定是一个不好的特性,只是它违背了当前的设计理念,有可能会让大部分用户感到不安

除了Resharper,还具有此功能。可能也是这样。

这听起来是个可怕的主意。要做到这一点,VS必须在启动时加载存在的每个程序集,然后在每次键入按键时搜索其中的每个程序集。VS在大型项目中已经存在性能问题。这将是一场噩梦。不是所有的程序集,只有那些在GAC和当前项目中注册的程序集。没有必要进行愚蠢的直接搜索——有很多有效的索引算法。你说的resharper“不支持这个”是什么意思?Ctrl+Alt+Space为我提供了所有可访问的类型。在许多情况下,当您写下一个类型时,它会建议类似“向项目添加Blabla引用并使用指令”。该列表可能是可自定义的,但我还没有检查。至于类型搜索,请使用Ctrl+T,它允许对类型(包括非解决方案类型)进行通配符搜索!Resharper仅在完全输入类型名称时显示添加引用/使用的建议。当输入部分类型名称时,我想提出一些建议。类型名称通常太长;-)我再次查看,在Resharper中没有看到零件名称搜索。键入“Writer”时,它不会显示任何建议,尽管导入了“System.IO”命名空间。而且,检查所有GAC程序集可能太慢了。但是,查找当前项目引用的部件肯定不会太慢。零件名称是快捷方式ctrl-t或ctrl-n,具体取决于choiceCtrl+t的快捷方式布局是通配符搜索,而不是零件名称搜索。更准确一点。虽然不完全是我想要的,但总比什么都没有好。我写了“在提示后添加引用”:-/