簡體   English   中英

我如何使Resharper在駝峰式代碼完成中尊重大寫字母?

[英]How do I make Resharper respect capitals in camelcase code completion?

在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-> Options-> Editor下檢查了CamelHumps。 我還將快捷鍵設置為Resharper默認值,而不是VS的默認值。

我知道過去在IntelliJ中存在這種行為,但是自從ReSharper開始以來,這個問題就使我感到惱火。

我還需要在選項中進行選擇/設置嗎? 在ReSharper中甚至可能嗎?

我嘗試搜索其他類似的問題,但只看到了關於所有小寫字母補全或駝峰案例選擇的評論/問題。

編輯:請注意,兩個logOutput方法都存在於完成選項列表中,但是當我按下Enter鍵時,並沒有選擇它們作為要插入的完成方法。 我將不得不鍵入其他字符以強制其選擇其中之一。 因此,問題在於,由於大寫logOutput O,以前在IntelliJ lO中足以使其選擇logOutput作為要插入的輸出。 在ReSharper中有可能嗎?

我認為您未獲得預期結果的原因是因為logLines變量的名稱。 因為該變量的前2個字母為lo ,所以它優先於所有CamelCase匹配項。 所以我猜想在Resharpers匹配系統中必須有一些邏輯,該邏輯比CamelCase匹配更喜歡順序字符。

例如,如果將logOutput的名稱更改為logOutput類的storeOutput ,然后鍵入sO ,它將顯示您期望的提示(證明CamelCase匹配有效)。

我從未使用過IntelliJ,但是我希望它可能是相同的邏輯,您只是沒有注意到,因為您沒有沖突的變量名。

您總是可以在Alt+Space之后Alt+Space向下箭頭以顯示logOutput(...)的提示。 這將為您帶來所需的結果,而且僅需一次額外的按鍵操作。

在幾天后在這里等待其他答復之后,我繼續將問題發布到JetBrains的ReSharper論壇上,並附帶了指向此處的鏈接。 簡短的答案是在ReSharper 5.1及更高版本中是不可能的。

有關完整的答案文本,請參見: http : //devnet.jetbrains.net/message/5455545

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM