Resharper(或Visual Studio)自动完成

8
我正在使用带有resharper的VS 2010。如果我有一个名为ConfigParserTests的类,然后写出以下代码: new ConfigParser( 代码将自动补全为 new ConfigParserTests() 这不是我想要的。有什么好方法可以禁用此恶性特征吗?
[编辑]
我想要的是输出 new ConfigParser() 而不需要按“Esc”键。在这种情况下,我使用TDD,因此ConfigParser不存在。
[/编辑]
我已经在resharper和VS智能感知菜单中寻找了很久,但没有找到任何有用的东西。
7个回答

7
打开选项窗口,导航到Intellisense > Autopopup。您将看到自动完成选项对应于几种情况,并按语言分类:

更改Resharper的自动完成行为


如您所见,您可以为每个单独的情况选择:

  • 不显示。

  • 显示但不预选。(对于您的情况似乎合适)

  • 显示并预选。(默认)


不同的情况或语言可能选择不同的选项。例如,您可以在C#中指定不同的行为:

  • 点之后

  • 'new'之后

  • 在文档注释中

  • 字母和数字

  • 需要值的地方

希望对您有所帮助


5

不清楚你抱怨的是填充哪个类名还是括号。我将两者都解决。

如果您尝试使用的类在另一个命名空间中,并且您尚未添加适当的using,那么代码完成就像您所期望的那样--您告诉它要使用哪些命名空间,而您没有告诉它要使用具有ConfigParser的命名空间;因此,它使用最接近的匹配项,正如预期的那样。

但是,ReSharper具有可以通过查找类并为您添加using来节省工作的快捷方式。对于此情况,我建议您查看 ReSharper 中的不同 Ctrl+Space 选项。您可以编写new cp<Ctrl+Alt+Space>,然后ReSharper将向您显示弹出菜单,询问您是否意味着ConfigParserConfigParserTests。当您按Enter选择您想要的内容时,它将在文件顶部添加必要的using,并将new ConfigParser()与括号之间的光标补全。

(如果ConfigParser类尚不存在,则这是您不想要代码完成的情况之一。只需键入new ConfigParser,然后在键入开括号之前按Esc即可。)

如果您的问题是它添加了一个关闭括号,请注意,如果您键入),ReSharper将不会添加第二个关闭括号--它将识别出您正在键入它已经添加的括号,因此它只会将光标移动到右侧。如果由于某种原因您仍不希望它为您完成开括号,请参阅@jdv-Jan de Vaan的答案,了解如何更改此首选项。


这一切都与键盘快捷键有关。 - MrBoJangles

5
当进行TDD时,您应该将VS Intellisense置于建议模式,而不是正常的完成模式
这两种模式的区别在这里有描述。
不幸的是,Resharper接管了Intellisense,因此您无法在不停用Resharper的情况下更改模式。

3

选择Resharper \ Options。从左侧列表中选择Enirionment \ Intellisence \ Completion behavior。

然后禁用“自动完成单个项目”的复选框:


0

选择 Resharper \ 选项 \ 环境 \ 智能感知 \ 完成行为 然后在“完成后自动插入括号”下更改选项:可以完全禁用老头儿声音我想要自己输入括号(), 只打开括号, 或者年轻时髦的编程小伙子我希望Resharper为我完成所有工作


0
如果您正在使用 Resharper 6.0,我建议您升级到 6.1 版本,因为在 6.0 版本中引入了很多这种预选错误,而这些错误在 6.1 版本中已经得到修复。

0

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