https://www.eclipse.org/downloads/compare.php?release=oxygen
下載eclipse帶有源文件的版本
打開Eclipse,點擊 window -> show view -> other,搜索並選擇 Plug-ins;
在其中找到org.eclipse.jface.text,右鍵單擊導入源文件項目,import as -> Source Project,
然后你就會在workspace中看到此項目
找到verifykey函數
將其中的代碼:
// key != 0
switch (key) {
case 0x1B: // Esc
e.doit= false;
hide();
break;
case '\n': // Ctrl-Enter on w2k
case '\r': // Enter
e.doit= false;
insertSelectedProposalWithMask(e.stateMask);
break;
case '\t':
e.doit= false;
fProposalShell.setFocus();
return false;
default:
ICompletionProposal p= getSelectedProposal();
if (p instanceof ICompletionProposalExtension) {
ICompletionProposalExtension t= (ICompletionProposalExtension) p;
char[] triggers= t.getTriggerCharacters();
if (contains(triggers, key)) {
e.doit= false;
hide();
insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
}
}
}
return true;
}
修改為如下代碼:
// key != 0
switch (key) {
case 0x1B: // Esc
e.doit= false;
case ' ': // 空格、分號、等於號直接上屏不彈出代碼提示
case ';':
case '=':
hide();
break;
case '\n': // Ctrl-Enter on w2k
case '\r': // Enter
case '\t': // TAB鍵上屏
e.doit= false;
insertSelectedProposalWithMask(e.stateMask);
break;
default:
ICompletionProposal p= getSelectedProposal();
if (p instanceof ICompletionProposalExtension) {
ICompletionProposalExtension t= (ICompletionProposalExtension) p;
char[] triggers= t.getTriggerCharacters();
if (contains(triggers, key)) {
e.doit= false;
hide();
insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
}
}
}
return true;
}
導出修改后的插件,右鍵點擊org.eclipse.jface.text項目,選擇 Export-> Deployable plugins and fragments,點擊 Next,在 Destination 中的 Directory,選擇一個要保存插件的目錄,然后 Finish。就會在你所選的目錄下產生一個新的 plugins 目錄,里面有一個jar文件,用它替換掉你使用的 Eclipse 目錄下的 plugins 里面對應的org.eclipse.jface.text_*.jar,各個版本的版本號不太一樣,替換之后重啟 Eclipse,最好 “-clean” 一下。
代碼提示設置:
增加Eclipse的提示功能
在Eclipse中,從Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,我們可以在"."號后面加入我們需要自動提示的首字幕,比如"abc",可以把26個字母的大小寫全部加上(.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_(@)