/** * Installs and uninstall the listeners needed for auto activation. * * @param start <code>true</code> if listeners must be installed, <code>false</code> if they * must be removed * @since 2.0 */ private void manageAutoActivation(boolean start) { if (start) { if ((fContentAssistSubjectControlAdapter != null) && fAutoAssistListener == null) { fAutoAssistListener= createAutoAssistListener(); // For details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=49212 if (fContentAssistSubjectControlAdapter.supportsVerifyKeyListener()) fContentAssistSubjectControlAdapter.appendVerifyKeyListener(fAutoAssistListener); else fContentAssistSubjectControlAdapter.addKeyListener(fAutoAssistListener); } } else if (fAutoAssistListener != null) { // For details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=49212 if (fContentAssistSubjectControlAdapter.supportsVerifyKeyListener()) fContentAssistSubjectControlAdapter.removeVerifyKeyListener(fAutoAssistListener); else fContentAssistSubjectControlAdapter.removeKeyListener(fAutoAssistListener); fAutoAssistListener= null; } }
/** * Installs and uninstall the listeners needed for auto activation. * * @param start <code>true</code> if listeners must be installed, <code>false</code> if they * must be removed * @since 2.0 */ private void manageAutoActivation(boolean start) { if (start) { if ((fContentAssistSubjectControlAdapter != null) && fAutoAssistListener == null) { fAutoAssistListener= createAutoAssistListener(); // For details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=49212 if (fContentAssistSubjectControlAdapter.supportsVerifyKeyListener()) fContentAssistSubjectControlAdapter.appendVerifyKeyListener(fAutoAssistListener); else fContentAssistSubjectControlAdapter.addKeyListener(fAutoAssistListener); } } else if (fAutoAssistListener != null) { // For details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=49212 if (fContentAssistSubjectControlAdapter.supportsVerifyKeyListener()) fContentAssistSubjectControlAdapter.removeVerifyKeyListener(fAutoAssistListener); else fContentAssistSubjectControlAdapter.removeKeyListener(fAutoAssistListener); fAutoAssistListener= null; } }
fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener);
fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener);
/** * This methods differs from its super as it will show the list of proposals that * gets augmented as the {@link IContentAssistProcessor#computeCompletionProposals(ITextViewer, int)} * complete. All computations operation happen in a non-UI Thread so they're not blocking UI. */ @Override public String showProposals(boolean autoActivated) { if (fKeyListener == null) fKeyListener= new ProposalSelectionListener(); final Control control= fContentAssistSubjectControlAdapter.getControl(); if (!Helper.okToUse(fProposalShell) && control != null && !control.isDisposed()) { // add the listener before computing the proposals so we don't move the caret // when the user types fast. fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener); fInvocationOffset= fContentAssistSubjectControlAdapter.getSelectedRange().x; fFilterOffset= fInvocationOffset; fLastCompletionOffset= fFilterOffset; // start invocation of processors as Futures, and make them populate the proposals upon completion fFutures= buildCompletionFuturesOrJobs(fInvocationOffset); runFutures(fInvocationOffset, null, true, autoActivated, true); } else { fLastCompletionOffset= fFilterOffset; handleRepeatedInvocation(); } return getErrorMessage(); }
fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener);
@Override public String incrementalComplete() { cancelFutures(); if (Helper.okToUse(fProposalShell) && fFilteredProposals != null) { return super.incrementalComplete(); } final Control control= fContentAssistSubjectControlAdapter.getControl(); if (fKeyListener == null) fKeyListener= new ProposalSelectionListener(); if (!Helper.okToUse(fProposalShell) && !control.isDisposed()) fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener); fInvocationOffset= fContentAssistSubjectControlAdapter.getSelectedRange().x; fFilterOffset= fInvocationOffset; fLastCompletionOffset= fFilterOffset; fFutures= buildCompletionFuturesOrJobs(fInvocationOffset); fFilteredProposals= runFutures(fInvocationOffset, (List<ICompletionProposal> proposals) -> { ensureDocumentListenerInstalled(); if (proposals.size() > 0 && completeCommonPrefix()) { hide(); } else { fFilteredProposals= proposals; setProposals(proposals, false); displayProposals(); } }, true, false, true); return getErrorMessage(); }
fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener);