1. 程式人生 > >MyEclipse程式碼補全設定及外掛修改

MyEclipse程式碼補全設定及外掛修改

用慣了IDEA才知道eclipse(MyEclipse)的程式碼提示這麼不給力,下面給出我的解決方式

修改Eclipse配置

首先,修改eclipse的配置,使得我們在輸入指定字元的時候能彈出提示程式碼:

開啟Window->Reference,在Java->Edictor->Content Assist下,啟用Enable auto activation,修改Auto activatiopn triggesrs for JavaqwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_.也就是設定成26個字母的大小寫、_以及.,這樣當我們輸入這些字元的時候就會有相應的提示。

修改補全外掛

提示已經有了,但是eclipse的自動補全也是略坑,輸入等號也會補全提示的內容,像我們輸入String name就會被補全成String studentString,這是我們不想要的,這時候就需要重新編譯補全外掛了。

  1. 首先我們要安裝Eclipse SDK,這樣才能匯入外掛的原始碼

    以MyEclipse為例,Help -> Install from site,選擇The Eclipse Project Updates,就可以看到Eclipse SDK,選擇然後安裝就可以了

  2. 第二步,匯入外掛原始碼:

    Window -> show view -> others,在Plug-in Development下找到Plug-ins,點選OK。右鍵點選org.eclipse.jface.test(版本號)

    ,import as -> source project,就可以在專案視窗看到剛剛匯入的專案了。
    這裡寫圖片描述

  3. 第三步,修改程式碼
    開啟剛剛匯入的專案下的org.eclipse.jface.text.contentassist.CompletionProposalPopup.java,可以看到裡面有這麼一段程式碼:

    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); } } }

    將上面程式碼改成:

    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);
           }
       }
    }

    這裡寫圖片描述
    到這裡就修改完成了,接下來我們需要匯出外掛

  4. 右鍵專案org.eclipse.jface.text,export,選擇Plug-in Development中的Deployable plug-ins and fragment,選擇Directory並選擇一個資料夾,finish,修改後的jar包就會匯出到該資料夾的plugin資料夾中,把生成的jar包覆蓋掉MyEclipse安裝目錄下plugins資料夾中的同名檔案就可以了。