标签:
打开叫plug-ins的那个View,找到org.eclipse.jface.text,右键import as -> Source Project。
org.eclipse.jface.text.contentassist包下的CompletionProposalPopup类,在verifyKey方法下有这么一段代码,
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 }
用以处理提示窗口弹出状态下用户的按键动作。
首先毫不留情地把第四个case也就是Tab键的处理注释掉。我按Tab键的时候就是想在编辑器里加上一个制表符,我已经不需要提示了,更不需要把焦点移到提示框里,反正就算焦点不在里面,按上下键也是可以选择的。
然后处理上边那段代码的第二十四行里的判断,避免按个空格按个等号按个分号提示就直接上屏了。
比如敲private String test时,Eclipse会自作主张的给你一个驼峰建议,问你是不是要输testString,这时候如果手快输入一个空格,变量名当场就变testString了,而我只是想输private String test = "blahblahblah";而已。
总之把不想按了之后自动上屏的键的ASCII值加到判断里,以后就不会出现这种问题了。
举个栗子:
if (key != ‘=‘ && key != 0x20 && key != 0x3B && key != 0x3A && key != 0x2E && contains(triggers, key)) {
最后在修改过的项目上右键导出为Deployable plug-ins and fragments,Destination选Archive file随便给个名字,把导出的压缩包里面的jar文件扔到Eclipse的plugins文件夹里覆盖就搞定了。
标签:
原文地址:http://www.cnblogs.com/chihane/p/4226173.html