/** * Adds a completion listener that will be informed before proposals are * computed. * * @param listener the listener * @throws IllegalStateException if called when the content assistant is * uninstalled */ public void addCompletionListener(ICompletionListener listener) { if (fContentAssistant == null) throw new IllegalStateException(); ((IContentAssistantExtension2)fContentAssistant).addCompletionListener(listener); }
/** * Removes a completion listener. * * @param listener the listener to remove * @throws IllegalStateException if called when the content assistant is * uninstalled */ public void removeCompletionListener(ICompletionListener listener) { ((IContentAssistantExtension2)fContentAssistant).removeCompletionListener(listener); }
@Override public void assistSessionStarted(ContentAssistEvent event) { if (event.processor != ContentAssistProcessor.this) return; fIterationGesture= getIterationGesture(); KeySequence binding= getIterationBinding(); // This may show the warning dialog if all categories are disabled setCategoryIteration(); for (CompletionProposalCategory cat : getCategoriesToNotify()) { cat.sessionStarted(); } fRepetition= 0; if (event.assistant instanceof IContentAssistantExtension2) { IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant; if (fCategoryIteration.size() == 1) { extension.setRepeatedInvocationMode(false); extension.setShowEmptyList(false); } else { extension.setRepeatedInvocationMode(true); extension.setStatusLineVisible(true); extension.setStatusMessage(createIterationMessage()); extension.setShowEmptyList(true); if (extension instanceof IContentAssistantExtension3) { IContentAssistantExtension3 ext3= (IContentAssistantExtension3) extension; ((ContentAssistant) ext3).setRepeatedInvocationTrigger(binding); } } } }
public void assistSessionEnded(ContentAssistEvent event) { if (event.processor != ContentAssistProcessor.this) return; for (Iterator it= fCategories.iterator(); it.hasNext();) { CompletionProposalCategory cat= (CompletionProposalCategory) it.next(); cat.sessionEnded(); } fCategoryIteration= null; fRepetition= -1; fIterationGesture= null; if (event.assistant instanceof IContentAssistantExtension2) { IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant; extension.setShowEmptyList(false); extension.setRepeatedInvocationMode(false); extension.setStatusLineVisible(false); if (extension instanceof IContentAssistantExtension3) { IContentAssistantExtension3 ext3= (IContentAssistantExtension3) extension; ((ContentAssistant) ext3).setRepeatedInvocationTrigger(null); } } }
@Override public ICompletionProposal[] computeCompletionProposals(ITextViewer refViewer, int documentOffset) { this.viewer = refViewer; try { if (fTemplatesOnly) { fContentAssistant.setStatusMessage(getIterationGestureMessage(AntEditorMessages.getString("AntEditorCompletionProcessor.0"))); //$NON-NLS-1$ fContentAssistant.setEmptyMessage(AntEditorMessages.getString("AntEditorCompletionProcessor.60")); //$NON-NLS-1$ ICompletionProposal[] templates = determineTemplateProposals(refViewer, documentOffset); Arrays.sort(templates, proposalComparator); return templates; } fContentAssistant.setStatusMessage(getIterationGestureMessage(AntEditorMessages.getString("AntEditorCompletionProcessor.61"))); //$NON-NLS-1$ fContentAssistant.setEmptyMessage(AntEditorMessages.getString("AntEditorCompletionProcessor.62")); //$NON-NLS-1$ ICompletionProposal[] matchingProposals = determineProposals(); ICompletionProposal[] matchingTemplateProposals = determineTemplateProposals(refViewer, documentOffset); return mergeProposals(matchingProposals, matchingTemplateProposals); } finally { currentPrefix = null; currentProposalMode = -1; fTemplatesOnly = !fTemplatesOnly; } }
@Override public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) { ModeAware proposalProvider = getModeAwareProposalProvider(); if (proposalProvider == null) return new ICompletionProposal[0]; int i = 0; while(i++ < 1000) { // just to prevent endless loop in case #isLastMode has an error proposalProvider.nextMode(); if (currentAssistant != null) currentAssistant.setStatusMessage(getStatusMessage()); ICompletionProposal[] result = super.computeCompletionProposals(viewer, offset); if (result != null && result.length > 0) return result; if (proposalProvider.isLastMode()) { return new ICompletionProposal[0]; } } throw new IllegalStateException("#isLastMode did not return true for 1000 times"); }
@Override public void assistSessionStarted(ContentAssistEvent event) { if (event.processor != ContentAssistProcessor.this) return; fIterationGesture= getIterationGesture(); KeySequence binding= getIterationBinding(); // This may show the warning dialog if all categories are disabled setCategoryIteration(); for (CompletionProposalCategory cat : getCategoriesToNotify()) { cat.sessionStarted(); } fRepetition= 0; if (event.assistant instanceof IContentAssistantExtension2) { IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant; if (fCategoryIteration.size() == 1) { extension.setRepeatedInvocationMode(false); extension.setShowEmptyList(false); } else { extension.setRepeatedInvocationMode(true); extension.setStatusLineVisible(true); extension.setStatusMessage(createIterationMessage()); extension.setShowEmptyList(true); if (extension instanceof IContentAssistantExtension3) { IContentAssistantExtension3 ext3= (IContentAssistantExtension3) extension; ((ContentAssistant) ext3).setRepeatedInvocationTrigger(binding); } } } }
@Override public void assistSessionEnded(ContentAssistEvent event) { if (event.processor != ContentAssistProcessor.this) return; for (CompletionProposalCategory cat : getCategoriesToNotify()) { cat.sessionEnded(); } fSelectedProposal= null; fCategoryIteration= null; fRepetition= -1; fIterationGesture= null; if (event.assistant instanceof IContentAssistantExtension2) { IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant; extension.setShowEmptyList(false); extension.setRepeatedInvocationMode(false); extension.setStatusLineVisible(false); if (extension instanceof IContentAssistantExtension3) { IContentAssistantExtension3 ext3= (IContentAssistantExtension3) extension; ((ContentAssistant) ext3).setRepeatedInvocationTrigger(null); } } }
extension.setRepeatedInvocationMode(false); extension.setShowEmptyList(false); } else { extension.setRepeatedInvocationMode(true); extension.setStatusLineVisible(true); extension.setStatusMessage(createIterationMessage()); extension.setShowEmptyList(true); if (extension instanceof IContentAssistantExtension3) { IContentAssistantExtension3 ext3= (IContentAssistantExtension3) extension;
@Override public void assistSessionEnded(ContentAssistEvent event) { if (event.processor != ContentAssistProcessor.this) return; for (CompletionProposalCategory cat : getCategoriesToNotify()) { cat.sessionEnded(); } fSelectedProposal= null; fCategoryIteration= null; fRepetition= -1; fIterationGesture= null; if (event.assistant instanceof IContentAssistantExtension2) { IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant; extension.setShowEmptyList(false); extension.setRepeatedInvocationMode(false); extension.setStatusLineVisible(false); if (extension instanceof IContentAssistantExtension3) { IContentAssistantExtension3 ext3= (IContentAssistantExtension3) extension; ((ContentAssistant) ext3).setRepeatedInvocationTrigger(null); } } }
/** * Removes a completion listener. * * @param listener the listener to remove * @throws IllegalStateException if called when the content assistant is * uninstalled */ public void removeCompletionListener(ICompletionListener listener) { ((IContentAssistantExtension2)fContentAssistant).removeCompletionListener(listener); }
/** * Adds a completion listener that will be informed before proposals are * computed. * * @param listener the listener * @throws IllegalStateException if called when the content assistant is * uninstalled */ public void addCompletionListener(ICompletionListener listener) { if (fContentAssistant == null) throw new IllegalStateException(); ((IContentAssistantExtension2)fContentAssistant).addCompletionListener(listener); }