【问题标题】:Why does Resharper intellisense replace my code?为什么 Resharper 智能感知替换了我的代码?
【发布时间】:2012-02-01 20:50:00
【问题描述】:

使用 Resharper 6.1,当我输入类似... 小部件.PropertyA

然后像这样将光标放在小部件符号前面...

|widget.PropertyA

然后开始输入另一个符号,R# intellisense 会弹出。如果我选择建议的符号,则 R# 会用我新选择的符号替换小部件符号。

我可以看到这有时会很有用,但绝大多数时候,我只想在小部件前面输入更多代码并且不希望它被替换。有谁知道这种行为是否可配置?

谢谢。

【问题讨论】:

  • 我没有看到同样的副作用。 R# 从不替换标识符...这是 VS 2010 的吗?

标签: c# resharper


【解决方案1】:

我不相信它是可配置的。 Tab 覆盖代码似乎是设计使然。它甚至会突出显示将被替换的代码段。

不要点击 Tab 来选择您的符号,而是使用 Enter。它将插入新代码而不覆盖现有代码。

【讨论】:

  • 谢谢。我没有意识到 enter 和 tab 的行为之间存在差异。这有点奇怪,我仍然希望它是可配置的,但这会到期。大约有一百万个功能可以挽救我的生命,我可以处理偶尔出现的奇怪功能。
  • 现在两者都做同样的事情。如果您有声明new LiteDbRepository(poolDef.Value.BaseIdentifier, _dbFilesFolder, _log));,并且您想用VelocityDbRepository 替换LiteDbRepository,并开始输入,那么无论您是Tab、Enter 还是Ctrl+Space,新插入的VelocityDbRepository() 之后的所有内容都会被删除。
  • 查看 Levi 的回答,我确认它可以在 ReSharper Ultimate 2017.3.5 中配置
【解决方案2】:

在 ReSharper 选项中转到 IntelliSense -> Completing Characters。在该菜单的顶部,您可以选择 Enter 和 Tab 键是否插入或替换。

【讨论】:

  • 哇。正是我所需要的
【解决方案3】:

你唯一能做的就是在开始输入之前插入一个额外的空格。您可以在JetBrains' bug tracker 上请求更改它。如果你这样做,请告诉我,我会投票给它!

【讨论】:

  • 这样的请求将是一个很好的候选解决方案:youtrack.jetbrains.net/issue/RSRP-20599 Tab/Enter 问题是常见问题解答,但我想它需要一些努力才能习惯
  • 嗯,从来没有意识到有区别。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多