[英]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.