/******************************************************************************* * Copyright (c) 2013 itemis AG (http://www.itemis.eu) and others. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * SPDX-License-Identifier: EPL-2.0 *******************************************************************************/ package org.eclipse.xtend.ide.contentassist.javadoc; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider; import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; import org.eclipse.xtext.ui.editor.model.IXtextDocument; import org.eclipse.xtext.ui.editor.model.XtextDocumentUtil; import com.google.inject.Inject; /** * @author Holger Schill - Initial contribution and API */ public class XtendJavaDocContentAssistProcessor extends AbstractJavaDocContentAssistProcessor implements XtendJavaDocState{ @Inject protected IScopeProvider scopeProvider; @Inject protected XtendJavaDocContentAssistContextFactory contentAssistFactory; @Inject private ITypesProposalProvider typeProposalProvider; @Inject private XtendJavaDocProposalFactory proposalFactory; /** * @since 2.19 */ @Inject private XtextDocumentUtil xtextDocumentUtil; @Override public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) { IXtextDocument document = xtextDocumentUtil.getXtextDocument(viewer); if (document != null) { return document.priorityReadOnly(createCompletionProposalComputer(viewer, offset)); } return new ICompletionProposal[0]; } private XtendJavaDocCompletionProposalComputer createCompletionProposalComputer(ITextViewer viewer, int offset) { return new XtendJavaDocCompletionProposalComputer(this, viewer, offset); } @Override public IScopeProvider getScopeProvider() { return scopeProvider; } @Override public ContentAssistContext.Factory getContextFactory() { return contentAssistFactory; } @Override public ITypesProposalProvider getTypesProposalProvider() { return typeProposalProvider; } @Override public XtendJavaDocProposalFactory getProposalFactory() { return proposalFactory; } }