1. 程式人生 > >Eclipse程式碼補全,修改 空格鍵 "=" 鍵不上屏

Eclipse程式碼補全,修改 空格鍵 "=" 鍵不上屏

Eclipse具有程式碼提示功能, 但是預設的提示只有在輸入"."時才會提示, 我們希望Eclipse可以像Visual Studio那樣, 輸入任何字母都可以自動提示, 按照如下方式進行修改即可: 

1. “window”→“Preferences”
2. 選擇“java”,展開,“Editor”,選擇“Content Assist”。
3. 選擇“Content Assist”,然後看到右邊,右邊的“Auto-Activation”下面的“Auto Activation triggers for java”這個選項。其實就是指觸發程式碼提示的就是“.”這個符號。
4. “Auto Activation triggers for java”這個選項,在“.”後加abcdefghijklmnopqrstuvwxyz字母,方便後面的查詢修改。然後“apply”,點選“OK”。

如圖:


但是這樣修改完成之後會有個問題:

例如  我想輸入 String  name ; eclipse會自作聰明的提示 nameString ,這時候明顯String是多餘的,但是當我們按下“空格鍵”的時候,Eclipse會自動選中第一個上屏,這時候怎麼辦呢,這就需要修改Eclipse原始碼了。


修改原始碼步驟:

1. 下載 Eclipse RCP版本(該版本修改原始碼比較方便,能自動匯入原始碼)


2.在plug-ins檢視中找到org.eclipse.jface.text外掛,選擇input as -> source project 這時候等待完成,進入package檢視就能看到外掛原始碼了



3.修改

org.eclipse.jface.text.contentassist.CompletionProposalPopup 檔案第1336行程式碼,具體程式碼如下:
if (contains(triggers, key)) {
						e.doit= false;
						hide();
						insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
					}

修改之後的程式碼是:
if (key != '=' && key != 0x20 && key != ';'  &&  contains(triggers, key)) {
						e.doit= false;
						hide();
						insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
					}

如果想要使用 “tab” 鍵上屏需要修改1328行為 insertSelectedProposalWithMask(e.stateMask); 修改完成之後需要儲存替換原來的jar檔案: 1.專案右鍵 -> export
選擇匯出方式如下圖:

點選“finish” 完成時候看看是不是生成一個jar檔案 使用新生成的jar替換原來的jar檔案就OK了 替換之後重新啟動一下Eclipse