Resharper完成而不覆盖现有代码

时间:2010-09-14 06:44:05

标签: resharper

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

<td>
    <%= Html.Encode(item.Address) %>
</td>

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

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

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

5 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:9)

您可以使用两种技术。

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

答案 2 :(得分:4)

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

转到“选项”对话框(菜单 - &gt; Resharper - &gt;选项)。 在此选项对话框中,转到环境 - &gt;智能感知 - &gt;完成字符。

您可以在此处将Tab行为设置为Insert而不是Replace。

Screenshot of Options

Resharper documentation about Completing Characters

这是2010年答案的补充,适用于通过populair搜索引擎到达此帖子的所有人;)

答案 3 :(得分:1)

您也可以使用String.Format环绕模板,但您可能需要将热键映射到该模板以便于访问。

答案 4 :(得分:0)

您要使用的键盘命令称为:Resharper_ForceCompleteItem。因此,如果您进入Visual Studio的工具&gt;选项&gt;环境&gt;键盘你可以在那里分配键盘快捷键。但不确定是否可以使用 Tab