Eclipse自動補全增強


#這種方法只適用於Eclipse Classic版本(這個版本帶有插件的源碼)

在使用Eclispe的過程,感覺自動補全做的不好,沒有VS的強大。下面說兩個增強自動補全的方法:

 

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的自動補全。 

最后就是導出修改后的插件,右鍵點擊你的workspace里的工程,選擇Export->Deployable plugins and fragments,點擊Next,選擇Destination選項卡,選擇Directory,選擇一個要保存插件的目錄,然后Finish,這樣會得到一個zip包,打開,plugins里會有一個jar包,替換Eclipse的目錄下的plugins里的同名文件(最好先把原plugins目錄下的org.eclipse.jface.text_3.7.2.v20111213-1208.jar(因為Eclipse版本的不同這個文件的名字可能不同)備份)。

 

修改后使用Eclipse會很順手!

 


 

2012-10-01 20:49:38

默認的TAB鍵的作用:在自動補全中,打開提示列表的當前行的解釋。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM