Resharper完成而不覆盖现有代码

Dav*_*ner 8 resharper

在Resharper中,当我回去编辑一些现有的代码时......例如.想要将String.Format插入此代码:

<td>
    <%= Html.Encode(item.Address) %>
</td>
Run Code Online (Sandbox Code Playgroud)

我将光标移动到'item'之前并输入'String.F',获得Resharper的intellisense完成列表,其中包含'Format'方法.

但是,如果按,TAB则将'item'替换为'.Format()'

有没有办法在不替换现有文本的情况下使用完成?

Dav*_*ner 10

偶然发现使用Enter而不是TAB从完成列表中选择.这正是我想要的.它使用String.Format(..)包围(在本例中)'item.Address'.


Fen*_*ton 9

您可以使用两种技术.

第一种是使用Enter键,第二种是在您要开始键入的位置和下一位代码之间弹出一个空格,这将阻止下一位代码被覆盖.


小智 5

现在有一个实际设置可以禁用这种(烦人的)行为。

转到“选项”对话框(菜单 -> Resharper -> 选项)。在此选项对话框中,转到环境 -> IntelliSense -> 完成字符。

在这里,您可以将制表符行为设置为“插入”而不是“替换”。

选项截图

有关完成字符的 Resharper 文档

这是对 2010 年答案的补充,供通过流行搜索引擎找到这篇文章的每个人使用;)