Example usage for org.eclipse.jdt.core CompletionProposal setDeclarationSignature

List of usage examples for org.eclipse.jdt.core CompletionProposal setDeclarationSignature

Introduction

In this page you can find the example usage for org.eclipse.jdt.core CompletionProposal setDeclarationSignature.

Prototype

public void setDeclarationSignature(char[] signature) 

Source Link

Document

Sets the type or package signature or module name (9) of the relevant declaration in the context, or null if none.

Usage

From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProposalCollector.java

License:Open Source License

@Override
protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {
    IJavaCompletionProposal defaultProposal = super.createJavaCompletionProposal(proposal);

    // For members of inner classes, there's a bug in the JDT which results in
    // the declaration signature of the proposal missing the outer classes, so
    // we have to manually set the signature instead.
    if (proposal.getKind() == CompletionProposal.METHOD_REF
            || proposal.getKind() == CompletionProposal.FIELD_REF) {
        char[] typeSignature = Signature.createTypeSignature(qualifiedTypeName, true).toCharArray();
        proposal.setDeclarationSignature(typeSignature);
    }/*w w w  .j  a v a  2 s  .  co  m*/

    return JsniCompletionProposal.create(defaultProposal, proposal, getCompilationUnit().getJavaProject(),
            refOffset, refLength);
}

From source file:de.ovgu.featureide.core.CorePlugin.java

License:Open Source License

public List<CompletionProposal> extendedModules_getCompl(IFeatureProject featureProject, String featureName) {
    final LinkedList<CompletionProposal> ret_List = new LinkedList<CompletionProposal>();
    final ProjectSignatures signatures = featureProject.getProjectSignatures();

    if (signatures != null) {
        SignatureIterator it = signatures.iterator();
        it.addFilter(new ContextFilter(featureName, signatures));

        while (it.hasNext()) {
            AbstractSignature curMember = it.next();
            CompletionProposal pr = null;

            if (curMember instanceof AbstractMethodSignature) {
                pr = CompletionProposal.create(CompletionProposal.METHOD_REF, 0);
                final AbstractMethodSignature methSig = (AbstractMethodSignature) curMember;
                final List<String> sig = methSig.getParameterTypes();

                //TODO differentiate between possible types
                char[][] c = new char[][] { {} };
                if (sig.size() > 0) {
                    c = new char[sig.size()][];
                    int i = 0;
                    for (String parameterType : sig) {
                        String parameterTypeToChar = "L" + parameterType + ";";
                        c[i++] = parameterTypeToChar.toCharArray();
                    }// ww w  .  j  av a 2  s.com
                }

                String returnType = "L" + methSig.getReturnType() + ";";
                pr.setSignature(Signature.createMethodSignature(c, returnType.toCharArray()));
                String declType = "L" + methSig.getFullName().replaceAll("." + methSig.getName(), "") + ";";
                pr.setDeclarationSignature(declType.toCharArray());
            } else if (curMember instanceof AbstractFieldSignature) {
                pr = CompletionProposal.create(CompletionProposal.FIELD_REF, 0);
            } else if (curMember instanceof AbstractClassSignature) {
                pr = CompletionProposal.create(CompletionProposal.TYPE_REF, 0);
                pr.setSignature(Signature.createTypeSignature(curMember.getFullName(), true).toCharArray());
            }

            if (pr != null) {
                pr.setFlags(getFlagOfSignature(curMember));
                pr.setName(curMember.getName().toCharArray());
                pr.setCompletion(curMember.getName().toCharArray());

                ret_List.add(pr);
            }
        }
    }
    return ret_List;
}

From source file:org.bonitasoft.studio.groovy.ui.contentassist.VariablesTypeCompletionProposal.java

License:Open Source License

@Override
public List<ICompletionProposal> computeCompletionProposals(final ContentAssistInvocationContext context,
        final IProgressMonitor monitor) {
    final List<ICompletionProposal> list = new ArrayList<ICompletionProposal>();
    if (context instanceof JavaContentAssistInvocationContext) {
        final ICompilationUnit unit = ((JavaContentAssistInvocationContext) context).getCompilationUnit();
        if (unit instanceof GroovyCompilationUnit) {
            final ITextViewer viewer = context.getViewer();
            final List<ScriptVariable> nodes = (List<ScriptVariable>) viewer.getTextWidget()
                    .getData(GroovyViewer.PROCESS_VARIABLES_DATA_KEY);
            final List<String> keyWords = (List<String>) viewer.getTextWidget()
                    .getData(GroovyViewer.BONITA_KEYWORDS_DATA_KEY);
            if (((GroovyCompilationUnit) unit).getModuleNode() == null) {
                return Collections.emptyList();
            }//from  ww  w. j ava2 s .co  m
            final ContentAssistContext assistContext = new GroovyCompletionProposalComputer()
                    .createContentAssistContext((GroovyCompilationUnit) unit, context.getInvocationOffset(),
                            context.getDocument());
            CharSequence prefix = null;
            try {
                prefix = context.computeIdentifierPrefix();
            } catch (final BadLocationException e) {
                BonitaStudioLog.error(e);
            }

            if (assistContext != null && assistContext.completionNode instanceof VariableExpression) {
                try {
                    final VariableExpression expr = (VariableExpression) assistContext.completionNode;
                    if (nodes != null) {
                        for (final ScriptVariable f : nodes) {
                            if (expr.getName().equals(f.getName())) {
                                final IType type = javaProject.findType(f.getType());
                                for (final IMethod m : type.getMethods()) {
                                    if (m.getElementName().startsWith(prefix.toString())) {
                                        final CompletionProposal proposal = CompletionProposal.create(
                                                CompletionProposal.METHOD_REF, context.getInvocationOffset());
                                        proposal.setName(m.getElementName().toCharArray());
                                        proposal.setCompletion(
                                                m.getElementName().substring(prefix.length()).toCharArray());
                                        proposal.setFlags(m.getFlags());

                                        if (prefix.length() == m.getElementName().length()) {
                                            proposal.setReplaceRange(context.getInvocationOffset(),
                                                    context.getInvocationOffset());
                                            proposal.setReceiverRange(0, 0);
                                        } else {
                                            proposal.setReplaceRange(
                                                    context.getInvocationOffset() - prefix.length(),
                                                    context.getInvocationOffset());
                                            proposal.setReceiverRange(prefix.length(), prefix.length());
                                        }

                                        final char[][] parameters = new char[m.getParameterNames().length][256];
                                        for (int i = 0; i < m.getParameterNames().length; i++) {
                                            parameters[i] = m.getParameterNames()[i].toCharArray();
                                        }

                                        proposal.setParameterNames(parameters);
                                        proposal.setDeclarationSignature(
                                                Signature
                                                        .createTypeSignature(
                                                                m.getDeclaringType().getElementName(), true)
                                                        .toCharArray());
                                        proposal.setSignature(Signature
                                                .createMethodSignature(m.getParameterTypes(), m.getReturnType())
                                                .toCharArray());
                                        list.add(new JavaMethodCompletionProposal(proposal,
                                                (JavaContentAssistInvocationContext) context));
                                    }
                                }
                            }
                        }
                    }
                    if (keyWords != null) {
                        for (final String keyWord : keyWords) {
                            if (expr.getName().equals(keyWord)) {
                                final IType type = javaProject.findType(
                                        BonitaSyntaxHighlighting.getTypeForKeyWord(keyWord).getName());
                                for (final IMethod m : type.getMethods()) {
                                    if (m.getElementName().startsWith(prefix.toString())) {
                                        final CompletionProposal proposal = CompletionProposal.create(
                                                CompletionProposal.METHOD_REF, context.getInvocationOffset());
                                        proposal.setName(m.getElementName().toCharArray());
                                        proposal.setCompletion(
                                                m.getElementName().substring(prefix.length()).toCharArray());
                                        proposal.setFlags(m.getFlags());
                                        proposal.getCompletion();

                                        if (prefix.length() == m.getElementName().length()) {
                                            proposal.setReplaceRange(context.getInvocationOffset(),
                                                    context.getInvocationOffset());
                                            proposal.setReceiverRange(0, 0);
                                        } else {
                                            proposal.setReplaceRange(
                                                    context.getInvocationOffset() - prefix.length(),
                                                    context.getInvocationOffset());
                                            proposal.setReceiverRange(prefix.length(), prefix.length());
                                        }

                                        final char[][] parameters = new char[m.getParameterNames().length][256];
                                        for (int i = 0; i < m.getParameterNames().length; i++) {
                                            parameters[i] = m.getParameterNames()[i].toCharArray();
                                        }

                                        proposal.setParameterNames(parameters);
                                        proposal.setDeclarationSignature(
                                                Signature
                                                        .createTypeSignature(
                                                                m.getDeclaringType().getElementName(), true)
                                                        .toCharArray());
                                        proposal.setSignature(Signature
                                                .createMethodSignature(m.getParameterTypes(), m.getReturnType())
                                                .toCharArray());
                                        list.add(new JavaMethodCompletionProposal(proposal,
                                                (JavaContentAssistInvocationContext) context));
                                    }
                                }
                            }
                        }
                    }
                } catch (final JavaModelException e) {
                    BonitaStudioLog.error(e);
                }

            }
        }

        return list;
    }

    return Collections.emptyList();
}

From source file:org.eclipse.recommenders.internal.completion.rcp.AccessibleCompletionProposals.java

License:Open Source License

public static AccessibleCompletionProposal newQualifiedFieldRef(IFieldName field, int completionOffset,
        int prefixLength, int relevance) {

    String declaringType = field.getDeclaringType().getClassName();
    String fieldName = field.getFieldName();
    String completion = declaringType + "." + fieldName;

    char[] signature = (field.getDeclaringType().getIdentifier().replace('/', '.') + ";").toCharArray();
    CompletionProposal fieldRef = new AccessibleCompletionProposal(FIELD_REF, 0);
    fieldRef.setDeclarationSignature(signature);
    fieldRef.setName(fieldName.toCharArray());
    fieldRef.setReplaceRange(completionOffset - prefixLength, completionOffset);
    fieldRef.setRequiredProposals(new CompletionProposal[] { newTypeImport(field.getDeclaringType()) });
    AccessibleCompletionProposal res = new AccessibleCompletionProposal(TYPE_IMPORT, completionOffset);
    res.setCompletion(completion.toCharArray());
    res.setSignature(signature);//from w w  w. j  av  a 2s. co m
    res.setRelevance(relevance);
    return res;
}

From source file:org.python.pydev.editor.codecompletion.JavaElementToken.java

License:Open Source License

@Override
public IImageHandle getImage() {
    if (this.image != null) {
        return this.image;
    }/* www. j ava2  s. c o  m*/
    CompletionProposalLabelProvider provider = new CompletionProposalLabelProvider();
    CompletionProposal generatedProposal = CompletionProposal.create(completionProposalKind, 0);
    generatedProposal.setFlags(completionProposalFlags);
    if (HAS_ADDITIONAL_FLAGS) {
        generatedProposal.setAdditionalFlags(completionProposalAdditionalFlags);
    }
    generatedProposal.setDeclarationSignature(completionPropsoalSignature);
    generatedProposal.setSignature(completionPropsoalSignature);

    //uses: kind, flags, signature to create an image.
    ImageDescriptor descriptor = provider.createImageDescriptor(generatedProposal);
    Image computed = descriptor.createImage();
    return new IImageHandle() {

        @Override
        public Object getImageData() {
            return computed.getImageData();
        }

        @Override
        public Object getImage() {
            return computed;
        }
    };
}

From source file:org.python.pydev.editor.codecompletion.revisited.javaintegration.JavaElementToken.java

License:Open Source License

@Override
public Image getImage() {
    if (this.image != null) {
        return this.image;
    }//from   ww  w.j  ava 2s . c  o  m
    CompletionProposalLabelProvider provider = new CompletionProposalLabelProvider();
    CompletionProposal generatedProposal = CompletionProposal.create(completionProposalKind, 0);
    generatedProposal.setFlags(completionProposalFlags);
    if (HAS_ADDITIONAL_FLAGS) {
        generatedProposal.setAdditionalFlags(completionProposalAdditionalFlags);
    }
    generatedProposal.setDeclarationSignature(completionPropsoalSignature);
    generatedProposal.setSignature(completionPropsoalSignature);

    //uses: kind, flags, signature to create an image. 
    ImageDescriptor descriptor = provider.createImageDescriptor(generatedProposal);
    return descriptor.createImage();
}

From source file:org.springframework.ide.eclipse.quickfix.jdt.computers.RequestMappingParamTypeProposalComputer.java

License:Open Source License

private List<ICompletionProposal> getProposals(MethodDeclaration methodDecl, String filter, int offset,
        ASTNode toBeRemoved, JavaContentAssistInvocationContext context) {
    List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();

    for (Class<?> paramType : PARAM_TYPE_CLASSES) {
        if (paramType.getSimpleName().toLowerCase().startsWith(filter.toLowerCase())) {
            // proposals
            // .add(new
            // RequestMappingParamTypeCompletionProposal(methodDecl,
            // paramType, toBeRemoved, context));
            CompletionProposal proposal = CompletionProposal.create(CompletionProposal.TYPE_REF,
                    context.getInvocationOffset());
            proposal.setCompletion(paramType.getCanonicalName().toCharArray());
            proposal.setDeclarationSignature(paramType.getPackage().getName().toCharArray());
            proposal.setFlags(paramType.getModifiers());
            proposal.setRelevance(Integer.MAX_VALUE);
            proposal.setReplaceRange(context.getInvocationOffset() - filter.length(),
                    context.getInvocationOffset());
            proposal.setSignature(// w  w w . j ava  2s.  co  m
                    Signature.createTypeSignature(paramType.getCanonicalName(), true).toCharArray());
            LazyJavaTypeCompletionProposal typeProposal = new LazyJavaTypeCompletionProposal(proposal, context);
            typeProposal.setRelevance(Integer.MAX_VALUE);
            proposals.add(typeProposal);
        }
    }

    return proposals;
}

From source file:org.springsource.ide.eclipse.commons.completions.externaltype.ExternalTypesProposalComputer.java

License:Open Source License

@Override
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext _context,
        IProgressMonitor monitor) {//w  w  w .  j a  va2 s  .c o  m
    if (_context instanceof JavaContentAssistInvocationContext) {
        final JavaContentAssistInvocationContext context = (JavaContentAssistInvocationContext) _context;
        try {
            final String idPrefix = context.computeIdentifierPrefix().toString();
            //System.out.println("IdPrefix = "+idPrefix);
            //Only compute proposals if we actually have something to look for. This avoids adding our suggestions
            // for completions like 'foo.^".
            if (idPrefix != null && !"".equals(idPrefix)) {
                final ArrayList<ICompletionProposal> completions = new ArrayList<ICompletionProposal>();
                final ExternalTypeIndexer index = ExternalTypeIndexManager.indexFor(context.getProject());
                index.getByPrefix(idPrefix, new Requestor<ExternalType>() {
                    public boolean receive(ExternalType type) {
                        //TODO: limit number of results. If there's too many user can't look
                        // at all of them anyway.
                        try {
                            if (type.getName().startsWith(idPrefix)) {
                                IJavaProject project = context.getProject();
                                if (project.findType(type.getFullyQualifiedName()) == null) {
                                    CompletionProposal proposal = CompletionProposal
                                            .create(CompletionProposal.TYPE_REF, context.getInvocationOffset());
                                    proposal.setCompletion(type.getFullyQualifiedName().toCharArray());
                                    proposal.setDeclarationSignature(type.getPackage().toCharArray());
                                    proposal.setFlags(Flags.AccPublic); //TODO: This is some kind of bit mask and it should be derived from the type information.
                                    //proposal.setRelevance(relevance);
                                    proposal.setReplaceRange(context.getInvocationOffset() - idPrefix.length(),
                                            context.getInvocationOffset());
                                    proposal.setSignature(
                                            Signature.createTypeSignature(type.getFullyQualifiedName(), true)
                                                    .toCharArray());
                                    completions.add(
                                            new ExternalTypeCompletionProposal(proposal, context, type, index));
                                }
                            }
                        } catch (Exception e) {
                            CompletionsActivator.log(e);
                        }
                        return true;
                    }
                });
                return completions;
            }
        } catch (Exception e) {
            CompletionsActivator.log(e);
        }
    }
    return NO_PROPOSALS;
}