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"
- // 對源代碼進行如下修改
- 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"我已經上傳到我的資源中, 需要的可以去下載.