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

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

Introduction

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

Prototype

int FIELD_REF_WITH_CASTED_RECEIVER

To view the source code for org.eclipse.jdt.core CompletionProposal FIELD_REF_WITH_CASTED_RECEIVER.

Click Source Link

Document

Completion is a reference to a field with a casted receiver.

Usage

From source file:edu.brown.cs.bubbles.bedrock.BedrockUtil.java

License:Open Source License

/********************************************************************************/

static void outputCompletion(CompletionProposal cp, IvyXmlWriter xw) {
    xw.begin("COMPLETION");
    fieldValue(xw, "ACCESSIBILITY", cp.getAccessibility(), accessibility_types);
    if (cp.isConstructor())
        xw.field("CONSTRUCTOR", true);
    xw.field("TEXT", cp.getCompletion());
    xw.field("INDEX", cp.getCompletionLocation());
    xw.field("DECLKEY", cp.getDeclarationKey());
    switch (cp.getKind()) {
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
    case CompletionProposal.FIELD_IMPORT:
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_IMPORT:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_DECLARATION:
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        xw.field("DECLSIGN", cp.getDeclarationSignature());
        break;/*from   w w w.j  ava 2 s . co  m*/
    case CompletionProposal.PACKAGE_REF:
    case CompletionProposal.TYPE_IMPORT:
    case CompletionProposal.TYPE_REF:
        xw.field("DOTNAME", cp.getDeclarationSignature());
        break;
    }
    fieldFlags(xw, "ACCESS", cp.getFlags(), access_flags);
    xw.field("FLAGS", cp.getFlags());
    xw.field("KEY", cp.getKey());
    xw.field("NAME", cp.getName());
    xw.field("RELEVANCE", cp.getRelevance());
    xw.field("REPLACE_START", cp.getReplaceStart());
    xw.field("REPLACE_END", cp.getReplaceEnd());
    xw.field("SIGNATURE", cp.getSignature());
    xw.field("TOKEN_START", cp.getTokenStart());
    xw.field("TOKEN_END", cp.getTokenEnd());
    fieldValue(xw, "KIND", cp.getKind(), completion_types);
    if (cp instanceof ICompletionProposalExtension4) {
        ICompletionProposalExtension4 icp4 = (ICompletionProposalExtension4) cp;
        xw.field("AUTO", icp4.isAutoInsertable());
    }

    if (CompletionFlags.isStaticImport(cp.getAdditionalFlags()))
        xw.field("STATICIMPORT", true);

    if (cp.getKind() == CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER
            || cp.getKind() == CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER) {
        xw.field("RECEIVER_SIGN", cp.getReceiverSignature());
        xw.field("RECEIVER_START", cp.getReceiverStart());
        xw.field("RECEIVER_END", cp.getReceiverEnd());
    }
    xw.field("RCVR", cp.getReceiverSignature());

    xw.cdataElement("DESCRIPTION", cp.toString());

    CompletionProposal[] rq = cp.getRequiredProposals();
    if (rq != null) {
        xw.begin("REQUIRED");
        for (CompletionProposal xcp : rq)
            outputCompletion(xcp, xw);
        xw.end("REQUIRED");
    }

    xw.end("COMPLETION");
}

From source file:org.eclipse.flux.jdt.services.CompletionProposalDescriptionProvider.java

License:Open Source License

/**
 * Creates a display label with styles for a given <code>CompletionProposal</code>.
 *
 * @param proposal the completion proposal to create the display label for
 * @return the display label for <code>proposal</code>
 *
 * @since 3.4/*from ww w.j a  v  a 2 s .  c o  m*/
 */
public StringBuilder createDescription(CompletionProposal proposal) {
    switch (proposal.getKind()) {
    case CompletionProposal.METHOD_NAME_REFERENCE:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.CONSTRUCTOR_INVOCATION:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        if (fContext != null && fContext.isInJavadoc())
            return createJavadocMethodProposalLabel(proposal);
        return createMethodProposalLabel(proposal);
    case CompletionProposal.METHOD_DECLARATION:
        return createOverrideMethodProposalLabel(proposal);
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
    case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
        return createAnonymousTypeLabel(proposal);
    case CompletionProposal.TYPE_REF:
        return createTypeProposalLabel(proposal);
    case CompletionProposal.JAVADOC_TYPE_REF:
        return createJavadocTypeProposalLabel(proposal);
    case CompletionProposal.JAVADOC_FIELD_REF:
    case CompletionProposal.JAVADOC_VALUE_REF:
    case CompletionProposal.JAVADOC_BLOCK_TAG:
    case CompletionProposal.JAVADOC_INLINE_TAG:
    case CompletionProposal.JAVADOC_PARAM_REF:
        return createJavadocSimpleProposalLabel(proposal);
    case CompletionProposal.JAVADOC_METHOD_REF:
        return createJavadocMethodProposalLabel(proposal);
    case CompletionProposal.PACKAGE_REF:
        return createPackageProposalLabel(proposal);
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
        return createLabelWithTypeAndDeclaration(proposal);
    case CompletionProposal.LOCAL_VARIABLE_REF:
    case CompletionProposal.VARIABLE_DECLARATION:
        return createSimpleLabelWithType(proposal);
    case CompletionProposal.KEYWORD:
    case CompletionProposal.LABEL_REF:
        return createSimpleLabel(proposal);
    default:
        Assert.isTrue(false);
        return null;
    }
}

From source file:org.eclipse.objectteams.otdt.tests.model.CompletionTestsRequestor2.java

License:Open Source License

public void allowAllRequiredProposals() {
    for (int i = CompletionProposal.ANONYMOUS_CLASS_DECLARATION; i <= CompletionProposal.TYPE_IMPORT; i++) {
        for (int j = CompletionProposal.ANONYMOUS_CLASS_DECLARATION; j <= CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER; j++) {
            this.setAllowsRequiredProposals(i, j, true);
        }//from   w  w w  .  j  a v a2 s. c  om
    }
}

From source file:org.eclipse.objectteams.otdt.tests.model.CompletionTestsRequestor2.java

License:Open Source License

protected StringBuffer printProposal(CompletionProposal proposal, int tab, StringBuffer buffer) {
    for (int i = 0; i < tab; i++) {
        buffer.append("   "); //$NON-NLS-1$
    }/*  w w w .j  a  v a2  s .  co m*/
    buffer.append(getElementName(proposal));
    buffer.append('[');
    switch (proposal.getKind()) {
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
        buffer.append("ANONYMOUS_CLASS_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.FIELD_REF:
        buffer.append("FIELD_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
        buffer.append("FIELD_REF_WITH_CASTED_RECEIVER"); //$NON-NLS-1$
        break;
    case CompletionProposal.KEYWORD:
        buffer.append("KEYWORD"); //$NON-NLS-1$
        break;
    case CompletionProposal.LABEL_REF:
        buffer.append("LABEL_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.LOCAL_VARIABLE_REF:
        buffer.append("LOCAL_VARIABLE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.METHOD_DECLARATION:
        buffer.append("METHOD_DECLARATION"); //$NON-NLS-1$
        if (proposal.isConstructor()) {
            buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
        }
        break;
    case CompletionProposal.METHOD_REF:
        buffer.append("METHOD_REF"); //$NON-NLS-1$
        if (proposal.isConstructor()) {
            buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
        }
        break;
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
        buffer.append("METHOD_REF_WITH_CASTED_RECEIVER"); //$NON-NLS-1$
        if (proposal.isConstructor()) {
            buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
        }
        break;
    case CompletionProposal.PACKAGE_REF:
        buffer.append("PACKAGE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.TYPE_REF:
        buffer.append("TYPE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.VARIABLE_DECLARATION:
        buffer.append("VARIABLE_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        buffer.append("POTENTIAL_METHOD_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.METHOD_NAME_REFERENCE:
        //{ObjectTeams: original "METHOD_IMPORT" is now misleading (used for rhs short method spec, too)            
        buffer.append("METHOD_NAME_REF"); //$NON-NLS-1$
        // SH}            
        break;
    //{ObjectTeams: new kinds:            
    case CompletionProposal.OT_METHOD_SPEC:
        buffer.append("METHOD_SPEC"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_FIELD_SPEC:
        buffer.append("FIELD_SPEC"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_GET:
        buffer.append("CALLOUT_GET"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_SET:
        buffer.append("CALLOUT_SET"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_DECLARATION:
        buffer.append("CALLOUT_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_OVERRIDE_DECLARATION:
        buffer.append("CALLOUT_OVERRIDE_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLIN_DECLARATION:
        buffer.append("CALLIN_DECLARATION"); //$NON-NLS-1$
        break;
    // SH}
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
        buffer.append("ANNOTATION_ATTRIBUTE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_BLOCK_TAG:
        buffer.append("JAVADOC_BLOCK_TAG"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_INLINE_TAG:
        buffer.append("JAVADOC_INLINE_TAG"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_FIELD_REF:
        buffer.append("JAVADOC_FIELD_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_METHOD_REF:
        buffer.append("JAVADOC_METHOD_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_TYPE_REF:
        buffer.append("JAVADOC_TYPE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_PARAM_REF:
        buffer.append("JAVADOC_PARAM_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_VALUE_REF:
        buffer.append("JAVADOC_VALUE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.FIELD_IMPORT:
        buffer.append("FIELD_IMPORT"); //$NON-NLS-1$
        break;
    case CompletionProposal.METHOD_IMPORT:
        buffer.append("METHOD_IMPORT"); //$NON-NLS-1$
        break;
    case CompletionProposal.TYPE_IMPORT:
        buffer.append("TYPE_IMPORT"); //$NON-NLS-1$
        break;
    default:
        buffer.append("PROPOSAL"); //$NON-NLS-1$
        break;

    }
    buffer.append("]{");
    buffer.append(proposal.getCompletion() == null ? NULL_LITERAL : proposal.getCompletion());
    buffer.append(", ");
    buffer.append(
            proposal.getDeclarationSignature() == null ? NULL_LITERAL : proposal.getDeclarationSignature());
    buffer.append(", ");
    buffer.append(proposal.getSignature() == null ? NULL_LITERAL : proposal.getSignature());

    char[] receiverSignature = proposal.getReceiverSignature();
    if (receiverSignature != null) {
        buffer.append(", ");
        buffer.append(receiverSignature);
    }

    if (this.showUniqueKeys) {
        buffer.append(", ");
        buffer.append(proposal.getDeclarationKey() == null ? NULL_LITERAL : proposal.getDeclarationKey());
        buffer.append(", ");
        buffer.append(proposal.getKey() == null ? NULL_LITERAL : proposal.getKey());
    }
    buffer.append(", ");
    buffer.append(proposal.getName() == null ? NULL_LITERAL : proposal.getName());
    if (this.showParameterNames) {
        char[][] parameterNames = proposal.findParameterNames(null);
        buffer.append(", ");
        if (parameterNames == null || parameterNames.length <= 0) {
            buffer.append(NULL_LITERAL);
        } else {
            buffer.append("(");
            for (int i = 0; i < parameterNames.length; i++) {
                if (i > 0)
                    buffer.append(", ");
                buffer.append(parameterNames[i]);
            }
            buffer.append(")");
        }
    }

    if (this.showPositions) {
        buffer.append(", ");
        if (this.showTokenPositions || receiverSignature != null)
            buffer.append("replace");
        buffer.append("[");
        buffer.append(proposal.getReplaceStart());
        buffer.append(", ");
        buffer.append(proposal.getReplaceEnd());
        buffer.append("]");
    }
    if (this.showTokenPositions) {
        buffer.append(", token[");
        buffer.append(proposal.getTokenStart());
        buffer.append(", ");
        buffer.append(proposal.getTokenEnd());
        buffer.append("]");
    }
    if (this.showPositions && receiverSignature != null) {
        buffer.append(", receiver[");
        buffer.append(proposal.getReceiverStart());
        buffer.append(", ");
        buffer.append(proposal.getReceiverEnd());
        buffer.append("]");
    }
    buffer.append(", ");
    buffer.append(proposal.getRelevance());
    buffer.append('}');
    if (this.showMissingTypes) {
        CompletionProposal[] requiredProposals = proposal.getRequiredProposals();
        if (requiredProposals != null) {
            int length = requiredProposals.length;
            System.arraycopy(requiredProposals, 0, requiredProposals = new CompletionProposal[length], 0,
                    length);
            quickSort(requiredProposals, 0, length - 1);
            for (int i = 0; i < length; i++) {
                buffer.append('\n');
                printProposal(requiredProposals[i], tab + 1, buffer);
            }
        }
    }
    return buffer;
}

From source file:org.eclipse.objectteams.otdt.tests.model.CompletionTestsRequestor2.java

License:Open Source License

protected String getElementName(CompletionProposal proposal) {
    switch (proposal.getKind()) {
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
        return new String(Signature.getSignatureSimpleName(proposal.getDeclarationSignature()));
    case CompletionProposal.TYPE_REF:
    case CompletionProposal.TYPE_IMPORT:
    case CompletionProposal.JAVADOC_TYPE_REF:
        return new String(Signature.getSignatureSimpleName(proposal.getSignature()));
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.KEYWORD:
    case CompletionProposal.LABEL_REF:
    case CompletionProposal.LOCAL_VARIABLE_REF:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_DECLARATION:
    case CompletionProposal.VARIABLE_DECLARATION:
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
    case CompletionProposal.METHOD_NAME_REFERENCE:
        //{ObjectTeams: new kinds:
    case CompletionProposal.OT_METHOD_SPEC:
    case CompletionProposal.OT_FIELD_SPEC:
    case CompletionProposal.OT_CALLOUT_GET:
    case CompletionProposal.OT_CALLOUT_SET:
    case CompletionProposal.OT_CALLOUT_DECLARATION:
    case CompletionProposal.OT_CALLOUT_OVERRIDE_DECLARATION:
    case CompletionProposal.OT_CALLIN_DECLARATION:
        // SH}//from  w  ww  .  j a  va2s.  c  om
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
    case CompletionProposal.JAVADOC_BLOCK_TAG:
    case CompletionProposal.JAVADOC_INLINE_TAG:
    case CompletionProposal.JAVADOC_FIELD_REF:
    case CompletionProposal.JAVADOC_METHOD_REF:
    case CompletionProposal.JAVADOC_PARAM_REF:
    case CompletionProposal.JAVADOC_VALUE_REF:
    case CompletionProposal.FIELD_IMPORT:
    case CompletionProposal.METHOD_IMPORT:
        return new String(proposal.getName());
    case CompletionProposal.PACKAGE_REF:
        return new String(proposal.getDeclarationSignature());
    }
    return "";
}

From source file:org.eclipse.recommenders.internal.subwords.rcp.SubwordsSessionProcessor.java

License:Open Source License

@Override
public void process(final IProcessableProposal proposal) {

    String completionIdentifier = computeCompletionIdentifier(proposal, proposal.getCoreProposal().orNull());
    final String matchingArea = CompletionContexts.getPrefixMatchingArea(completionIdentifier);

    proposal.getProposalProcessorManager().addProcessor(new ProposalProcessor() {

        int[] bestSequence = EMPTY_SEQUENCE;

        String prefix;//w ww  . j a  va  2 s. co m

        @Override
        public boolean isPrefix(String prefix) {
            if (this.prefix != prefix) {
                this.prefix = prefix;
                CompletionProposal coreProposal = proposal.getCoreProposal().orNull();
                if (coreProposal != null && (coreProposal
                        .getKind() == CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER
                        || coreProposal.getKind() == CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER)) {
                    // This covers the case where the user starts with a prefix of "receiver.ge" and continues
                    // typing 't' from there: In this case, prefix == "receiver.get" rather than "get".
                    // I have only ever encountered this with proposal kinds of *_REF_WITH_CASTED_RECEIVER.
                    int lastIndexOfDot = prefix.lastIndexOf('.');
                    bestSequence = LCSS.bestSubsequence(matchingArea, prefix.substring(lastIndexOfDot + 1));
                } else {
                    int lastIndexOfHash = prefix.lastIndexOf('#');
                    if (lastIndexOfHash >= 0) {
                        // This covers the case where the user starts with a prefix of "Collections#" and continues
                        // from there.
                        bestSequence = LCSS.bestSubsequence(matchingArea,
                                prefix.substring(lastIndexOfHash + 1));
                    } else {
                        // Besides the obvious, this also covers the case where the user starts with a prefix of
                        // "Collections#e", which manifests itself as just "e".
                        bestSequence = LCSS.bestSubsequence(matchingArea, prefix);
                    }
                }
            }
            return prefix.isEmpty() || bestSequence.length > 0;
        }

        @Override
        public void modifyDisplayString(StyledString displayString) {
            final int highlightAdjustment;
            CompletionProposal coreProposal = proposal.getCoreProposal().orNull();
            if (coreProposal == null) {
                // HTML tag proposals are non-lazy(!) JavaCompletionProposals that don't have a core proposal.
                if (proposal instanceof JavaCompletionProposal && displayString.toString().startsWith("</")) { //$NON-NLS-1$
                    highlightAdjustment = 2;
                } else if (proposal instanceof JavaCompletionProposal
                        && displayString.toString().startsWith("<")) { //$NON-NLS-1$
                    highlightAdjustment = 1;
                } else {
                    highlightAdjustment = 0;
                }
            } else {
                switch (coreProposal.getKind()) {
                case CompletionProposal.JAVADOC_FIELD_REF:
                case CompletionProposal.JAVADOC_METHOD_REF:
                case CompletionProposal.JAVADOC_VALUE_REF:
                    highlightAdjustment = displayString.toString().lastIndexOf('#') + 1;
                    break;
                case CompletionProposal.JAVADOC_TYPE_REF:
                    highlightAdjustment = JAVADOC_TYPE_REF_HIGHLIGHT_ADJUSTMENT;
                    break;
                default:
                    highlightAdjustment = 0;
                }
            }

            for (int index : bestSequence) {
                displayString.setStyle(index + highlightAdjustment, 1, StyledString.COUNTER_STYLER);
            }
        }

        /**
         * Since we may simulate completion triggers at positions before the actual triggering, we don't get JDT's
         * additional relevance for exact prefix matches. So we add the additional relevance ourselves, if is not
         * already supplied by the JDT which it does, if the prefix is shorter than the configured minimum prefix
         * length.
         *
         * The boost is the same one as JDT adds at
         * {@link org.eclipse.jdt.internal.codeassist.CompletionEngine#computeRelevanceForCaseMatching}
         *
         * The boost is further multiplied by 16 which reflects the same thing happening in
         * {@link org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal#computeRelevance}
         */
        @Override
        public int modifyRelevance() {
            if (ArrayUtils.isEmpty(bestSequence)) {
                proposal.setTag(IS_PREFIX_MATCH, true);
                return 0;
            }

            int relevanceBoost = 0;

            if (minPrefixLengthForTypes < prefix.length()
                    && StringUtils.equalsIgnoreCase(matchingArea, prefix)) {
                relevanceBoost += 16 * RelevanceConstants.R_EXACT_NAME;
                proposal.setTag(IS_EXACT_MATCH, true);
            }

            // We only apply case matching to genuine Java proposals, i.e., proposals link HTML tags are ranked
            // together with the case in-sensitive matches.
            if (StringUtils.startsWith(matchingArea, prefix)
                    && isFromJavaCompletionProposalComputer(proposal)) {
                proposal.setTag(SUBWORDS_SCORE, null);
                proposal.setTag(IS_PREFIX_MATCH, true);
                // Don't adjust relevance.
            } else if (startsWithIgnoreCase(matchingArea, prefix)) {
                proposal.setTag(SUBWORDS_SCORE, null);
                proposal.setTag(IS_CASE_INSENSITIVE_PREFIX_MATCH, true);
                relevanceBoost = IGNORE_CASE_RANGE_START + relevanceBoost;
            } else if (CharOperation.camelCaseMatch(prefix.toCharArray(), matchingArea.toCharArray())
                    && isFromJavaCompletionProposalComputer(proposal)) {
                proposal.setTag(IS_PREFIX_MATCH, false);
                proposal.setTag(IS_CAMEL_CASE_MATCH, true);
                relevanceBoost = CAMEL_CASE_RANGE_START + relevanceBoost;
            } else {
                int score = LCSS.scoreSubsequence(bestSequence);
                proposal.setTag(IS_PREFIX_MATCH, false);
                proposal.setTag(SUBWORDS_SCORE, score);
                relevanceBoost = SUBWORDS_RANGE_START + relevanceBoost + score;
            }

            return relevanceBoost;
        }

        /**
         * Some {@link IProcessableProposal}s are not produced by the {@link JavaCompletionProposalComputer}, but by
         * some other {@link IJavaCompletionProposalComputer}, e.g., the {@link HTMLTagCompletionProposalComputer}.
         * These proposals do not have a core proposal.
         */
        private boolean isFromJavaCompletionProposalComputer(final IProcessableProposal proposal) {
            return proposal.getCoreProposal().isPresent();
        }
    });
}

From source file:org.eclipse.recommenders.internal.types.rcp.TypesCompletionSessionProcessor.java

License:Open Source License

@Override
public void process(IProcessableProposal proposal) throws Exception {
    if (subtypes == null || subtypes.isEmpty()) {
        return;/* ww w.ja v  a  2s  . co  m*/
    }

    final CompletionProposal coreProposal = proposal.getCoreProposal().or(NULL_PROPOSAL);
    switch (coreProposal.getKind()) {
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.LOCAL_VARIABLE_REF:
    case CompletionProposal.TYPE_REF:
        handleProposal(proposal, coreProposal.getSignature());
        break;
    case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
    case CompletionProposal.CONSTRUCTOR_INVOCATION:
        handleProposal(proposal, coreProposal.getDeclarationSignature());
        break;
    case CompletionProposal.METHOD_REF:
        handleProposal(proposal, Signature.getReturnType(coreProposal.getSignature()));
        break;
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
        handleProposal(proposal, coreProposal.getReceiverSignature());
        break;
    }
}

From source file:org.eclipse.recommenders.internal.types.rcp.TypesCompletionSessionProcessorTest.java

License:Open Source License

private IProcessableProposal mockProcessableProposal(int coreProposalKind, String coreProposalSig) {
    IProcessableProposal processableProposal = mock(ProcessableJavaCompletionProposal.class);
    ProposalProcessorManager manager = mock(ProposalProcessorManager.class);
    when(processableProposal.getProposalProcessorManager()).thenReturn(manager);

    CompletionProposal coreProposal = mock(CompletionProposal.class);
    when(coreProposal.getKind()).thenReturn(coreProposalKind);
    when(processableProposal.getCoreProposal()).thenReturn(Optional.fromNullable(coreProposal));

    switch (coreProposalKind) {
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.LOCAL_VARIABLE_REF:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.TYPE_REF:
        when(coreProposal.getSignature()).thenReturn(coreProposalSig.toCharArray());
        break;/* ww w . java  2 s  .  c  o  m*/
    case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
    case CompletionProposal.CONSTRUCTOR_INVOCATION:
        when(coreProposal.getDeclarationSignature()).thenReturn(coreProposalSig.toCharArray());
        break;
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
        when(coreProposal.getReceiverSignature()).thenReturn(coreProposalSig.toCharArray());
        break;
    }

    return processableProposal;
}

From source file:org.jboss.tools.vscode.java.internal.CompletionProposalDescriptionProvider.java

License:Open Source License

/**
 * Updates the description fields of the item. 
 *  /*from   w w w . ja  v  a2s . c  om*/
 * @param proposal
 * @param item
 */
public void updateDescription(CompletionProposal proposal, CompletionItem item) {
    switch (proposal.getKind()) {
    case CompletionProposal.METHOD_NAME_REFERENCE:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.CONSTRUCTOR_INVOCATION:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        if (fContext != null && fContext.isInJavadoc()) {
            createJavadocMethodProposalLabel(proposal, item);
            break;
        }
        createMethodProposalLabel(proposal, item);
        break;
    case CompletionProposal.METHOD_DECLARATION:
        createOverrideMethodProposalLabel(proposal, item);
        break;
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
    case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
        createAnonymousTypeLabel(proposal, item);
        break;
    case CompletionProposal.TYPE_REF:
        createTypeProposalLabel(proposal, item);
        break;
    case CompletionProposal.JAVADOC_TYPE_REF:
        createJavadocTypeProposalLabel(proposal, item);
        break;
    case CompletionProposal.JAVADOC_FIELD_REF:
    case CompletionProposal.JAVADOC_VALUE_REF:
    case CompletionProposal.JAVADOC_BLOCK_TAG:
    case CompletionProposal.JAVADOC_INLINE_TAG:
    case CompletionProposal.JAVADOC_PARAM_REF:
        createJavadocSimpleProposalLabel(proposal, item);
        break;
    case CompletionProposal.JAVADOC_METHOD_REF:
        createJavadocMethodProposalLabel(proposal, item);
        break;
    case CompletionProposal.PACKAGE_REF:
        createPackageProposalLabel(proposal, item);
        break;
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
        createLabelWithTypeAndDeclaration(proposal, item);
        break;
    case CompletionProposal.LOCAL_VARIABLE_REF:
    case CompletionProposal.VARIABLE_DECLARATION:
        createSimpleLabelWithType(proposal, item);
        break;
    case CompletionProposal.KEYWORD:
    case CompletionProposal.LABEL_REF:
        item.setLabel(createSimpleLabel(proposal).toString());
        break;
    default:
        Assert.isTrue(false);
    }
}

From source file:org.jboss.tools.vscode.java.internal.CompletionProposalRequestor.java

License:Open Source License

private int mapKind(final int kind) {
    switch (kind) {
    case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
    case CompletionProposal.CONSTRUCTOR_INVOCATION:
        return 4;//Constructor
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
    case CompletionProposal.TYPE_REF:
        return 7;// Class
    case CompletionProposal.FIELD_IMPORT:
    case CompletionProposal.METHOD_IMPORT:
    case CompletionProposal.METHOD_NAME_REFERENCE:
    case CompletionProposal.PACKAGE_REF:
    case CompletionProposal.TYPE_IMPORT:
        return 9;//Module
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
        return 5;//Field
    case CompletionProposal.KEYWORD:
        return 14;//Keyword
    case CompletionProposal.LABEL_REF:
        return 18;//Reference
    case CompletionProposal.LOCAL_VARIABLE_REF:
    case CompletionProposal.VARIABLE_DECLARATION:
        return 6; //Variable
    case CompletionProposal.METHOD_DECLARATION:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        return 3;//Function
    //text/*from  ww w. jav  a 2s  . co  m*/
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
    case CompletionProposal.JAVADOC_BLOCK_TAG:
    case CompletionProposal.JAVADOC_FIELD_REF:
    case CompletionProposal.JAVADOC_INLINE_TAG:
    case CompletionProposal.JAVADOC_METHOD_REF:
    case CompletionProposal.JAVADOC_PARAM_REF:
    case CompletionProposal.JAVADOC_TYPE_REF:
    case CompletionProposal.JAVADOC_VALUE_REF:
    default:
        return 1; //Text
    }
    // vscode kinds      
    //         Text = 1,
    //              Method = 2,
    //              Function = 3,
    //              Constructor = 4,
    //              Field = 5,
    //              Variable = 6,
    //              Class = 7,
    //              Interface = 8,
    //              Module = 9,
    //              Property = 10,
    //              Unit = 11,
    //              Value = 12,
    //              Enum = 13,
    //              Keyword = 14,
    //              Snippet = 15,
    //              Color = 16,
    //              File = 17,
    //              Reference = 18
}