標籤:使用 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(代碼補全),比如空格鍵 "="鍵不上屏