首页 > 代码库 > 五月蝇
五月蝇
打开叫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‘: // Enter10 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文件夹里覆盖就搞定了。
五月蝇
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。