1.增加Eclipse的提示功能

在Eclipse中,从Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,我们可以在"."号后面加入我们需要自动提示的首字幕,比如"abc",可以把26个字母的大小写全部加上(. abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_)。

2. 修改自动补全的快捷键

(在 Eclipse Luna 即 4.4 中,已经不需要修改了。空格不会自动选中补全列表的第一项了)

首先,打开Eclipse,打开window->show view,选择Plug-ins,再找到org.eclipse.jface.text,右键单击,选择import as-> Source Project,导入完成后,在你的workspace就可以看到这个project了。

在导入工程下的“org.eclipse.jface.text.contentassist.CompletionProposalPopup#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);

把这段代码修改为:

        // 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;
                insertSelectedProposalWithMask(e.stateMask);
                break;
            default:
                ICompletionProposal p= getSelectedProposal();
                if (p instanceof ICompletionProposalExtension) {
                    ICompletionProposalExtension t= (ICompletionProposalExtension) p;
                    char[] triggers= t.getTriggerCharacters();
                    if (key!='='&&key!=0x20&&key!='.'&&key!=';'&&contains(triggers, key)) {
                        e.doit= false;
                        hide();
                        insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);

这样会取消“=”,空格,“.”和“;”的自动补全,加入TAB的自动补全。 

最后就是导出修改后的

修改后使用Eclipse会很顺手!

2012-10-01 20:49:38

默认的TAB键的作用:在自动补全中,打开提示列表的当前行的解释。

_______________________________________________________________________

注意:MyEclipse无法导入插件的源码工程,可以下载对应版本的Eclipse,重新编译得到插件后再覆盖MyEclipse里的插件即可。