(java部署篇)eclipse ~ 自動補全詞的各類控制(轉)

#這種方法只適用於Eclipse Classic版本(這個版本帶有插件的源碼)eclipse

在使用Eclispe的過程,感受自動補全作的很差,沒有VS的強大。下面說兩個加強自動補全的方法:ide

 

1.增長Eclipse的提示功能函數

在Eclipse中,從Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,咱們能夠在"."號後面加入咱們須要自動提示的首字幕,好比"abc",能夠把26個字母的大小寫所有加上(.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_)。 spa

2. 修改自動補全的快捷鍵插件

 首先,打開Eclipse,打開window->show view,選擇Plug-ins,再找到org.eclipse.jface.text,右鍵單擊,選擇import as-> Source Project,導入完成後,在你的workspace就能夠看到這個project了。3d

在導入工程下的「org.eclipse.jface.text.contentassist.CompletionProposalPopup#verifyKey()」函數中有一段代碼:code

 1 // key != 0
 2         switch (key) {
 3             case 0x1B: // Esc
 4                 e.doit= false;
 5                 hide();
 6                 break;
 7 
 8             case '\n': // Ctrl-Enter on w2k
 9             case '\r': // Enter
10                 e.doit= false;
11                 insertSelectedProposalWithMask(e.stateMask);
12                 break;
13 
14             case '\t':
15                 e.doit= false;
16                 fProposalShell.setFocus();
17                 return false;
18 
19             default:
20                 ICompletionProposal p= getSelectedProposal();
21                 if (p instanceof ICompletionProposalExtension) {
22                     ICompletionProposalExtension t= (ICompletionProposalExtension) p;
23                     char[] triggers= t.getTriggerCharacters();
24                     if (contains(triggers, key)) {
25                         e.doit= false;
26                         hide();
27                         insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
28                     }
29             }
30         }
View Code

把這段代碼修改成:blog

 1 // key != 0
 2         switch (key) {
 3             case 0x1B: // Esc
 4                 e.doit= false;
 5                 hide();
 6                 break;
 7 
 8             case '\n': // Ctrl-Enter on w2k
 9             case '\r': // Enter
10                 e.doit= false;
11                 insertSelectedProposalWithMask(e.stateMask);
12                 break;
13 
14             case '\t':
15                 e.doit= false;
16                 insertSelectedProposalWithMask(e.stateMask);
17                 break;
18 
19             default:
20                 ICompletionProposal p= getSelectedProposal();
21                 if (p instanceof ICompletionProposalExtension) {
22                     ICompletionProposalExtension t= (ICompletionProposalExtension) p;
23                     char[] triggers= t.getTriggerCharacters();
24                     if (key!='='&&key!=0x20&&key!='.'&&key!=';'&&contains(triggers, key)) {
25                         e.doit= false;
26                         hide();
27                         insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
28                     }
29             }
30         }
View Code

這樣會取消「=」,空格,「.」和「;」的自動補全,加入TAB的自動補全。 ip

最後就是導出修改後的插件,右鍵點擊你的workspace裏的工程,選擇Export->Deployable plugins and fragments,點擊Next,選擇Destination選項卡,選擇Directory,選擇一個要保存插件的目錄,而後Finish,這樣會得 到一個zip包,打開,plugins裏會有一個jar包,替換Eclipse的目錄下的plugins裏的同名文件(最好先把原plugins目錄下的 org.eclipse.jface.text_3.7.2.v20111213-1208.jar(由於Eclipse版本的不一樣這個文件的名字可能不 同)備份)。get

 

修改後使用Eclipse會很順手!

相關文章
相關標籤/搜索