点击
show view -> plu-ins -> RMouse -> import->source code
引入源码成功后打开
org.eclipse.jface.text.contentassist
CompletionProposalPopup.java
修改如下代码:
修改了TAB键为入屏,1,2键为上下选择条目
- public boolean verifyKey(VerifyEvent e)
- {
- if (!Helper.okToUse(fProposalShell))
- return true;
- char key = e.character;
- if (key == 0)
- {
- int newSelection = fProposalTable.getSelectionIndex();
- int visibleRows = (fProposalTable.getSize().y / fProposalTable.getItemHeight()) - 1;
- int itemCount = fProposalTable.getItemCount();
- switch (e.keyCode)
- {
- case SWT.ARROW_LEFT:
- case SWT.ARROW_RIGHT:
- filterProposals();
- return true;
- case SWT.ARROW_UP:
- newSelection -= 1;
- if (newSelection < 0)
- newSelection = itemCount - 1;
- break;
- case SWT.ARROW_DOWN:
- newSelection += 1;
- if (newSelection > itemCount - 1)
- newSelection = 0;
- break;
- case SWT.PAGE_DOWN:
- newSelection += visibleRows;
- if (newSelection >= itemCount)
- newSelection = itemCount - 1;
- break;
- case SWT.PAGE_UP:
- newSelection -= visibleRows;
- if (newSelection < 0)
- newSelection = 0;
- break;
- case SWT.HOME:
- newSelection = 0;
- break;
- case SWT.END:
- newSelection = itemCount - 1;
- break;
- default:
- if (e.keyCode != SWT.CAPS_LOCK && e.keyCode != SWT.MOD1 && e.keyCode != SWT.MOD2 && e.keyCode != SWT.MOD3 && e.keyCode != SWT.MOD4)
- hide();
- return true;
- }
- selectProposal(newSelection, (e.stateMask & SWT.CTRL) != 0);
- e.doit = false;
- return false;
- }
- // key != 0 说明是可以打出字符的键
- switch (key)
- {
- case 0x1B: // Esc
- e.doit = false;
- hide();
- break;
- // ZyL modify 2014/5/6 add the space key to enter
- case '\n': // Ctrl-Enter on w2k
- case '\r': // Enter
- case ' '://
- e.doit = false;
- insertSelectedProposalWithMask(e.stateMask);
- break;
- case '1':
- int newSelection = fProposalTable.getSelectionIndex();
- int itemCount = fProposalTable.getItemCount();
- newSelection -= 1;
- if (newSelection < 0)
- newSelection = itemCount - 1;
- selectProposal(newSelection, (e.stateMask & SWT.CTRL) != 0);
- e.doit = false;
- return false;
- case '\t':
- case '2':
- // e.doit= false;
- // fProposalShell.setFocus();
- int newSelection_ = fProposalTable.getSelectionIndex();
- int itemCount_ = fProposalTable.getItemCount();
- newSelection_ += 1;
- if (newSelection_ > itemCount_ - 1)
- newSelection_ = 0;
- selectProposal(newSelection_, (e.stateMask & SWT.CTRL) != 0);
- e.doit = false;
- return false;
- default:
- ICompletionProposal p = getSelectedProposal();
- if (p instanceof ICompletionProposalExtension)
- {
- ICompletionProposalExtension t = (ICompletionProposalExtension) p;
- char[] triggers = t.getTriggerCharacters();
- if (contains(triggers, key))
- {
- e.doit = false;
- hide();
- insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
- }
- }
- }
- return true;