码迷,mamicode.com
首页 > 其他好文 > 详细

五月蝇

时间:2015-01-15 14:14:03      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

打开叫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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!