Eclipse 修改内容辅助按键

点击

show view -> plu-ins -> RMouse -> import->source code

引入源码成功后打开

org.eclipse.jface.text.contentassist

CompletionProposalPopup.java

修改如下代码:

修改了TAB键为入屏,1,2键为上下选择条目

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public boolean verifyKey(VerifyEvent e)  
  2.     {  
  3.         if (!Helper.okToUse(fProposalShell))  
  4.             return true;  
  5.         char key = e.character;  
  6.         if (key == 0)  
  7.         {  
  8.             int newSelection = fProposalTable.getSelectionIndex();  
  9.             int visibleRows = (fProposalTable.getSize().y / fProposalTable.getItemHeight()) - 1;  
  10.             int itemCount = fProposalTable.getItemCount();  
  11.             switch (e.keyCode)  
  12.             {  
  13.             case SWT.ARROW_LEFT:  
  14.             case SWT.ARROW_RIGHT:  
  15.                 filterProposals();  
  16.                 return true;  
  17.             case SWT.ARROW_UP:  
  18.                 newSelection -= 1;  
  19.                 if (newSelection < 0)  
  20.                     newSelection = itemCount - 1;  
  21.                 break;  
  22.             case SWT.ARROW_DOWN:  
  23.                 newSelection += 1;  
  24.                 if (newSelection > itemCount - 1)  
  25.                     newSelection = 0;  
  26.                 break;  
  27.             case SWT.PAGE_DOWN:  
  28.                 newSelection += visibleRows;  
  29.                 if (newSelection >= itemCount)  
  30.                     newSelection = itemCount - 1;  
  31.                 break;  
  32.             case SWT.PAGE_UP:  
  33.                 newSelection -= visibleRows;  
  34.                 if (newSelection < 0)  
  35.                     newSelection = 0;  
  36.                 break;  
  37.             case SWT.HOME:  
  38.                 newSelection = 0;  
  39.                 break;  
  40.             case SWT.END:  
  41.                 newSelection = itemCount - 1;  
  42.                 break;  
  43.             default:  
  44.                 if (e.keyCode != SWT.CAPS_LOCK && e.keyCode != SWT.MOD1 && e.keyCode != SWT.MOD2 && e.keyCode != SWT.MOD3 && e.keyCode != SWT.MOD4)  
  45.                     hide();  
  46.                 return true;  
  47.             }  
  48.             selectProposal(newSelection, (e.stateMask & SWT.CTRL) != 0);  
  49.             e.doit = false;  
  50.             return false;  
  51.         }  
  52.         // key != 0     说明是可以打出字符的键  
  53.         switch (key)  
  54.         {  
  55.         case 0x1B// Esc  
  56.             e.doit = false;  
  57.             hide();  
  58.             break;  
  59.         // ZyL modify 2014/5/6 add the space key to enter  
  60.         case '\n'// Ctrl-Enter on w2k  
  61.         case '\r'// Enter  
  62.         case ' '://  
  63.             e.doit = false;  
  64.             insertSelectedProposalWithMask(e.stateMask);  
  65.             break;  
  66.         case '1':  
  67.             int newSelection = fProposalTable.getSelectionIndex();  
  68.             int itemCount = fProposalTable.getItemCount();  
  69.             newSelection -= 1;  
  70.             if (newSelection < 0)  
  71.                 newSelection = itemCount - 1;  
  72.             selectProposal(newSelection, (e.stateMask & SWT.CTRL) != 0);  
  73.             e.doit = false;  
  74.             return false;  
  75.         case '\t':  
  76.         case '2':  
  77. //           e.doit= false;  
  78. //           fProposalShell.setFocus();  
  79.             int newSelection_ = fProposalTable.getSelectionIndex();  
  80.             int itemCount_ = fProposalTable.getItemCount();  
  81.             newSelection_ += 1;  
  82.             if (newSelection_ > itemCount_ - 1)  
  83.                 newSelection_ = 0;  
  84.             selectProposal(newSelection_, (e.stateMask & SWT.CTRL) != 0);  
  85.             e.doit = false;  
  86.             return false;  
  87.         default:  
  88.             ICompletionProposal p = getSelectedProposal();  
  89.             if (p instanceof ICompletionProposalExtension)  
  90.             {  
  91.                 ICompletionProposalExtension t = (ICompletionProposalExtension) p;  
  92.                 char[] triggers = t.getTriggerCharacters();  
  93.                 if (contains(triggers, key))  
  94.                 {  
  95.                     e.doit = false;  
  96.                     hide();  
  97.                     insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);  
  98.                 }  
  99.             }  
  100.         }  
  101.         return true;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值