修改Eclipse與MyEclipse的代碼提示功能

來源:互聯網
上載者:User

標籤:

本文的目的是修改Eclipse與MyEclipse的代碼提示功能,使之能夠更加快速的協助程式員編寫代碼。


本文使用的Eclipse版本為4.2 JUNO,MyEclipse的版本為10.6。



1. 設定代碼自動完成提示的觸發鍵
依次點擊Window-->Preferences-->Java-->Editor-->Content Assist:





"Auto activation triggers for Java" 指定當按下什麼鍵時,會彈出代碼提示。按照自己習慣配置即可,我的配置是".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ([{,"。

較早版本的Eclipse與MyEclipse在這裡最多隻能指定5個鍵,想要指定更多的鍵,只能使用先匯出設定檔,修改之後再匯入的方法。具體方法可參考:http://hi.baidu.com/umltlgdcbsbilzd/item/aeb086202e194fc9a4275a67

"Auto activation delay (ms):" 這個值指定當按下相應的觸發鍵後,延遲多少毫秒彈出代碼提示。建議設定為100以下,否則會有明顯的停頓感。



2. 取消空格上屏

使用Eclipse與MyEclipse的代碼提示功能時,按下空格鍵後Eclipse會自動將代碼提示中的第一項上屏。這一點有時會變得相當討厭,因為很多時候我們只是單純的想要輸入一個空格而已。然而這一特性是無法通過配置改變的。好在Eclipse是開源的,我們仍然可以通過修改相應的原始碼來改變這一點。

下面先以Eclipse為例說明。

首先,如果你下載的Eclipse是SDK版本的,那麼可以直接越過下面的一段。

如果你的Eclipse不是SDK版本的,強烈建議你改為使用SDK版本的Eclipse,因為SDK版的Eclipse附帶了所有源碼。如果你不願意使用SDK版,那麼也可以從http://www.eclipse.org/projects/listofprojects.php獲得下文所需的原始碼,以本文為例,點擊Platform Text,會跳轉到project頁面,再點擊Clone on GitHub,即可下載到相應的原始碼。

依次點擊Window-->Show View-->Other...,在彈出的對話方塊中再選擇Plug-in Development-->Plug-ins:





在Plug-ins中找到org.eclipse.jface.text,點擊右鍵,選擇Import As-->Source Project:



這時eclipse就會把該項目匯入到你的workspace中了。展開該項目,在src目錄中選擇org.eclipse.jface.text.contentassist.CompletionProposalPopup.java檔案:



在該檔案中找到如下的代碼:

case ‘\t‘:
      e.doit= false;
      fProposalShell.setFocus();
      return false;


將其改為:

case ‘\t‘:
      e.doit= false;
      insertSelectedProposalWithMask(e.stateMask);
      break;


然後,在這段代碼的下方,找到如下代碼:

if (contains(triggers, key)) {
    e.doit= false;
    hide();
    insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
}


將其第一行改為:

if (key != 0x20 && key != ‘=‘ && key != ‘;‘ && contains(triggers, key)) {


經過以上修改,我們去掉了按下空格上屏的功能,並將其改為按下Tab鍵上屏,相信這是符合多數人的習慣的。

儲存修改。接下來要做的就是使用修改過的代碼產生外掛程式,並替換掉Eclipse本來的外掛程式。在該工程上單擊右鍵,選擇Export...:


在彈出的對話方塊中選擇Plug-in Development-->Deployable plug-ins and fragments,點擊Next:


指定一個儲存即將匯出的jar包的位置,點擊Finish。



這時,在你剛才指定的路徑下會產生一個plugins檔案夾,裡面就是匯出的jar包:


最後一步,定位到Eclipse安裝目錄下的plugins檔案夾,使用這個剛產生的jar包替換掉原本的org.eclipse.jface.text包即,大功告成!

現在,使用代碼提示時按下空格鍵已經不會自動上屏了,而是使用Tab鍵來上屏。

MyEclipse的修改方法與Eclipse完全一樣,用修改好的jar包替換掉MyEclipse內建的jar包即可,MyEclipse中該jar包的位置是:MyEclipse安裝目錄\Common\plugins。

需要額外注意的是MyEclipse中使用的org.eclipse.jface.text包的版本。如筆者使用的MyEclipse 10.6的jface.text的版本是3.7.2,而Eclipse Juno使用的jface.text版本為3.8.1。筆者試圖用修改過的3.8.1版本的jar包替換掉MyEclipse內建的3.7.2的jar包,發現替換後的MyEclipse無法啟動。無奈只能從網上重新下載了3.7.2版本的Eclipse SDK,將裡面的jface.text修改好之後替換道MyEclipse中,最終解決了問題。

修改Eclipse與MyEclipse的代碼提示功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.