2017.4.17 定製Eclipse的Content assist(代碼補全),比如空格鍵 "="鍵不上屏

來源:互聯網
上載者:User

標籤:使用   blank   ada   自動提示   dev   eclipse   efault   修改   如何   

Eclipse具有代碼提示功能, 但是預設的提示只有在輸入"."時才會提示, 我們希望Eclipse可以像Visual Studio那樣, 輸入任何字母都可以自動提示, 按照如下方式進行修改即可: 

1. “window”→“Preferences” 2. 選擇“Java”,展開,“Editor”,選擇“Content Assist”。 3. 選擇“Content Assist”,然後看到右邊,右邊的“Auto-Activation”下面的“Auto Activation triggers for java”這個選項。其實就是指觸發代碼提示的就是“.”這個符號。 4. “Auto Activation triggers for java”這個選項,在“.”後加abcdefghijklmnopqrstuvwxyz字母,方便後面的尋找修改。然後“apply”,點擊“OK”。

按照上述方法修改後編寫代碼可以實現隨時代碼提示和補全功能, 但是在使用過程中問題又來了, 當按下空格鍵時會把第一行的內容自動上屏,其實很多時候就是想輸一個空格而已. 如何解決, 在網上搜尋了一下, 果然有人遇到同樣問題, 參考下面解決方案, 順利在Eclipse 3.7下解決問題.

參考文章:

引: http://johnlxj.blog.163.com/blog/static/16586556420117175344712/ 以前只知道alt+/調出assist,後來發現可以所有字母都啟用content assist(方法百度上都有,就不在這寫了).用起來果然很爽.但是eclipse還是有些預設的設定不是很好,比如空格鍵和=號會把第一行的內容自動上屏,其實很多時候我就是想輸一個空格或=號而已.這個在設定裡面沒辦法設定.幸好eclipse是有外掛程式機制的,可以通過修改外掛程式的源碼,然後匯出成外掛程式,再替換掉原來的外掛程式來處理 1.先找到相關的外掛程式  開啟Plug-ins View找到外掛程式org.eclipse.jface.text,右鍵點擊,選擇import as Source Project,匯入完成後,在你的workspace就可以看到這個project了 2.修改代碼  在src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java檔案中,找到這樣一行代碼  char triggers = t.getTriggerCharacter();  if(contains(triggers,key))  在那行if判斷裡面,eclipse會判斷key(就是你按下的鍵)是否在triggers中,如果是,那就觸發下面的第一行提示上屏的代碼.所以我們要做的就是把空格和=號排除就可以了:  if(key!=‘=‘&&key!=0x20&&contains(triggers,key))

3.把修改好的org.eclipse.jface.text匯出  右鍵點擊你的workspace裡的org.eclipse.jface.text,選擇export-->Deployable plugins and fragments, next,destination 選擇archive file,然後finish.你就可以在zip檔案裡看到產生好的jar ,用它替換掉eclipse/plugins裡面的同名jar包,就可以了

怎麼我找不到src這個檔案夾的 嗯 可能跟源碼有關,你找找你的Eclipse IDE for Java EE Developers 的plugins目錄下面有沒有org.eclipse.jface.text的源碼

Eclipse的Plug-in Development Environment (PDE)外掛程式網址: http://www.eclipse.org/pde/

 

我同時安裝了Eclipse 3.5和Eclipse 3.7, 按照上面的文章指導, 在Eclipse 3.5下無法對外掛程式源碼進行修改, 而在Eclipse 3.7下可以成功修改.

 

Eclipse 3.5 Galileo "import"對話方塊下沒有"Plug-in Development"選項, 在Eclipse 3.5下無法對外掛程式"org.eclipse.jface.text"源碼進行修改.

Eclipse 3.7  "import"對話方塊下有"Plug-in Development"選項, 可以對Eclipse 3.7下的外掛程式"org.eclipse.jface.text"源碼進行修改.

"Import As" 需要選擇"Projects with source folders"

[java] view plain copy print
// 對原始碼進行如下修改default:ICompletionProposal p= getSelectedProposal();if (p instanceof ICompletionProposalExtension) {ICompletionProposalExtension t= (ICompletionProposalExtension) p;char[] triggers= t.getTriggerCharacters();// hf modify// eclipse 關閉空格、等號自動補全(上屏)功能//if (contains(triggers, key)) { if(key!=‘=‘&&key!=0x20&&contains(triggers,key)) {e.doit= false;hide();insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);}}

 

  
// 對原始碼進行如下修改default:ICompletionProposal p= getSelectedProposal();if (p instanceof ICompletionProposalExtension) {ICompletionProposalExtension t= (ICompletionProposalExtension) p;char[] triggers= t.getTriggerCharacters();// hf modify// eclipse 關閉空格、等號自動補全(上屏)功能//if (contains(triggers, key)) { if(key!=‘=‘&&key!=0x20&&contains(triggers,key)) {e.doit= false;hide();insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);}}

 

將修改後的工程匯出, 再用匯出後的"org.eclipse.jface.text_3.7.1.r371_v20110825-0800.jar"外掛程式覆蓋原來對應外掛程式就好了.

已經修改好的"org.eclipse.jface.text_3.7.1.r371_v20110825-0800.jar"我已經上傳到我的資源中, 需要的可以去下載.

2017.4.17 定製Eclipse的Content assist(代碼補全),比如空格鍵 "="鍵不上屏

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.