package com.redhat.ceylon.eclipse.code.complete; import static com.redhat.ceylon.eclipse.code.complete.CodeCompletions.getTextForDocLink; import static com.redhat.ceylon.eclipse.code.hover.DocumentationHover.getDocumentationFor; import static com.redhat.ceylon.eclipse.code.outline.CeylonLabelProvider.getImageForDeclaration; import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.text.contentassist.ICompletionProposal; import com.redhat.ceylon.eclipse.code.parse.CeylonParseController; import com.redhat.ceylon.ide.common.typechecker.LocalAnalysisResult; import com.redhat.ceylon.ide.common.util.escaping_; import com.redhat.ceylon.model.typechecker.model.Declaration; import com.redhat.ceylon.model.typechecker.model.Scope; import com.redhat.ceylon.model.typechecker.model.Unit; public class BasicCompletionProposal extends CompletionProposal { @Deprecated static void addImportProposal(int offset, String prefix, CeylonParseController cpc, List<ICompletionProposal> result, Declaration dec, Scope scope) { result.add(new BasicCompletionProposal(offset, prefix, dec.getName(), escaping_.get_().escapeName(dec), dec, cpc)); } @Deprecated static void addDocLinkProposal(int offset, String prefix, CeylonParseController cpc, List<ICompletionProposal> result, Declaration dec, Scope scope) { //for doc links, propose both aliases and unaliased //qualified form we don't need to do this in code //b/c there is no fully-qualified form String name = dec.getName(); Unit unit = cpc.getLastCompilationUnit().getUnit(); String aliasedName = dec.getName(unit); if (!name.equals(aliasedName)) { result.add(new BasicCompletionProposal(offset, prefix, aliasedName, aliasedName, dec, cpc)); } result.add(new BasicCompletionProposal(offset, prefix, name, getTextForDocLink(cpc, dec), dec, cpc)); } private final CeylonParseController cpc; private final Declaration declaration; public BasicCompletionProposal(int offset, String prefix, String desc, String text, Declaration dec, LocalAnalysisResult cpc) { super(offset, prefix, getImageForDeclaration(dec), desc, text); this.cpc = ((EclipseCompletionContext) cpc).getCpc(); this.declaration = dec; } public String getAdditionalProposalInfo() { return getAdditionalProposalInfo(null); } public String getAdditionalProposalInfo(IProgressMonitor monitor) { return getDocumentationFor(cpc, declaration, monitor); } }