eclipse代码补全按键修改成Tab
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_(@)