如何在camelcase代码完成中使Resharper尊重大写字母?

如何在camelcase代码完成中使Resharper尊重大写字母?,resharper,code-completion,camelcasing,Resharper,Code Completion,Camelcasing,在VS 2008上运行的ReSharper 5.1中,我尝试使用驼峰完成方法名称,代码如下: public bool debugMode { get; private set; } public DebugWindow() { InitializeComponent(); } public void logOutput(List<String> logLines) { foreach(string line in logLines) { &l

在VS 2008上运行的ReSharper 5.1中,我尝试使用驼峰完成方法名称,代码如下:

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;
}
public bool debugMode{get;private set;}
公共调试窗口()
{
初始化组件();
}
公共作废注销输出(列出日志行)
{
foreach(日志行中的字符串行)
{
选项->编辑器。我还将热键设置为Resharper默认值,而不是VS默认值

我知道IntelliJ在过去就存在这种行为,但从ReSharper开始,这个问题就一直困扰着我

我是否需要在选项中选择/设置其他内容?在ReSharper中是否可能这样做

我试着搜索其他类似的问题,但我只看到关于全小写完成或驼峰案例选择的评论/问题


编辑:请注意,
logOutput
两种方法都出现在完成选项列表中,但当我按Enter键时,它没有选择它们作为要插入的完成项。我必须键入其他字符以强制它选择其中一个。因此问题是,以前在IntelliJ
lO
中已经足够了nt要让它选择
logOutput
作为要插入的一个,因为大写字母O;这在ReSharper中可能吗,如果可能,怎么可能?

我认为您没有得到预期结果的原因是因为
logLines
变量的名称。因为该变量的前两个字母是
lo
,所以需要提前所以我猜在重竖琴匹配系统中一定有某种逻辑,它支持顺序字符而不是CamelCase匹配

例如,如果您将
logOutput
的名称更改为类似
storeOutput
的名称,然后键入
sO
,它将显示您期望的提示(证明CamelCase匹配正在工作)

我从来没有使用过IntelliJ,但我想这可能是相同的逻辑,您只是没有注意到,因为您没有冲突的变量名


您可以在
Alt+Space
之后点击向下箭头,弹出
logOutput(…)的提示
。这将得到你想要的结果,只需一次额外的按键。

在这里等待了几天的额外回复后,我继续在JetBrains的ReSharper论坛上发布了这个问题,并在这里添加了一个链接。简短的回答是,在ReSharper 5.1及更高版本中,这是不可能的


有关完整答案文本,请参见:

我在测试类中复制了两个logOutput方法,并插入了行
TextBox debugTextBox=new TextBox()
第二种方法以避免编译错误。它很有效:两种logOutput方法都在键入
lO
后显示在完成列表中。我有ReSharper 5.1.3000.12和VS 2010。是的,它们也会显示在完成列表中,但您必须键入其他字符以提示它选择
logOutput()
作为所选选项,或使用箭头键向下移动到该方法。使用IntelliJ
lO
,大写的O足以告诉它应该将选项减少到小写的
l
和大写的
O
。但是,因为它认为
日志行
是主要选择在本例中,它没有注意我键入的O的大小写。我将编辑问题以反映它们在选项中。我确信我过去在IntelliJ中有过相互冲突的名称,并且使用大写字母来优化结果是有效的。我开始认为这种完成优化根本不起作用存在于ReSharper中,这是一个遗憾。的确,我可以通过额外的按键来获得我想要的方法,但如果有功能的话,我正试图避免使用大写。例如,如果我更改了名称,键入
,那么
所有小写字母都会得到相同的结果,使大写字母
O
不相关/useless.@neromir是的,你可能是对的。就像我说的,我没有使用IntelliJ,所以我不能确定。事实上,更正我上面的评论:大写的
O
在重命名为
storeOutput
的情况下确实提供了一些改进。如果我键入所有小写字母,它会给我提供不在类范围内的其他内容。看起来,howev呃,变量/方法名称的相关性更密切(例如在我的类中),大写字母被忽略。@neromir这听起来很混乱……你能指望的最好办法就是学习Resharper的怪癖,最好是驯服它,让它屈服。公平地说,它还有许多其他有用的功能,值得一试:)@neromir还有,你试过使用Resharper的“Go to file member”快捷方式Alt+\?这可能对你更合适吗?