在VS 2008上运行的ReSharper 5.1中,我尝试使用CamelHumps使用以下代码完成方法名称:
public bool debugMode { get; private set; }
public DebugWindow()
{
InitializeComponent();
}
public void logOutput(List<String> logLines)
{
foreach(string line in logLines)
{
<- cursor is here
}
}
public void logOutput(String logLine)
{
debugTextBox.Text += "\n" + logLine;
}
在上述光标点我输入lO
并按Ctrl + Space。我希望它向我提示logOutput(String)
方法的提示,但它向我提示logLines
的提示,我想要在下拉框中显示下方。如果我改为输入lOu
,它会突出显示正确的提示(与lou
相同),但我认为我应该只需输入lO
就可以了。我在Resharper-&gt;选项 - &gt;编辑器下检查了CamelHumps。我也将热键设置为Resharper默认值,而不是VS.
我知道过去这种行为存在于IntelliJ中,但自从ReSharper开始以来,这个问题一直让我感到恼火。
我还需要在选项中选择/设置其他内容吗?这在ReSharper中甚至可能吗?
我尝试寻找其他类似的问题,但我只看到关于所有小写完成或骆驼案例选择的评论/问题。
编辑:请注意,两个logOutput
方法都存在于完成选项列表中,但是当我按Enter键时,它不会选择它们作为要插入的完成。我必须输入其他字符以强制它选择其中一个。所以问题是,以前在IntelliJ lO
中足以使它选择logOutput
作为要插入的因为大写O;在ReSharper中是可能的,如果是这样的话?
答案 0 :(得分:1)
我认为你没有得到预期结果的原因是因为logLines
变量的名称。因为该变量的前2个字母是lo
,所以它优先于任何CamelCase匹配。所以我想在Resharpers匹配系统中必须有一些逻辑,它有利于顺序字符而不是CamelCase匹配。
例如,如果您将logOutput
的名称更改为storeOutput
,然后键入sO
,则会显示您所期望的提示(证明CamelCase匹配正在运行)
我从来没有使用过IntelliJ,但我希望它可能是相同的逻辑,你只是没有注意到,因为你没有冲突的变量名。
您可以随时点击Alt+Space
后面的向下箭头,显示logOutput(...)
的提示。那样可以得到你想要的结果,而且只是一个额外的按键。
答案 1 :(得分:0)
在这里等待了几天以获得更多回复之后,我继续在JetBrains上的ReSharper论坛上发布了这个问题以及这里的链接。简短的回答是,它在ReSharper 5.1及以上版本中是不可能的。
有关完整答案的文字,请参阅:http://devnet.jetbrains.net/message/5455545