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

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

Introduction

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

Prototype

int ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION

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

Click Source Link

Document

Completion is a reference of a constructor of an anonymous class.

Usage

From source file:iot.jcypher.eclipse.JCypherCompletionProposalComputer.java

License:Apache License

private List<ICompletionProposal> internalComputeCompletionProposals(int offset,
        JavaContentAssistInvocationContext context) {
    ICompilationUnit unit = context.getCompilationUnit();
    if (unit == null)
        return Collections.emptyList();

    ITextViewer viewer = context.getViewer();

    CompletionProposalCollector collector = createCollector(context);
    collector.setInvocationContext(context);

    collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.TYPE_REF, true);
    collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.TYPE_IMPORT, true);
    collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.FIELD_IMPORT, true);

    collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.TYPE_REF, true);
    collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.TYPE_IMPORT, true);
    collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.METHOD_IMPORT, true);

    collector.setAllowsRequiredProposals(CompletionProposal.CONSTRUCTOR_INVOCATION, CompletionProposal.TYPE_REF,
            true);/*w ww. j  a va  2 s  . c om*/

    collector.setAllowsRequiredProposals(CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION,
            CompletionProposal.TYPE_REF, true);
    collector.setAllowsRequiredProposals(CompletionProposal.ANONYMOUS_CLASS_DECLARATION,
            CompletionProposal.TYPE_REF, true);

    collector.setAllowsRequiredProposals(CompletionProposal.TYPE_REF, CompletionProposal.TYPE_REF, true);

    try {
        Point selection = viewer.getSelectedRange();
        if (selection.y > 0)
            collector.setReplacementLength(selection.y);
        unit.codeComplete(offset, collector, fTimeoutProgressMonitor);
    } catch (OperationCanceledException x) {
        fErrorMessage = "Code assist took too long and is incomplete. Please close the list and type more characters";
    } catch (JavaModelException x) {
        Shell shell = viewer.getTextWidget().getShell();
        if (x.isDoesNotExist() && !unit.getJavaProject().isOnClasspath(unit))
            MessageDialog.openInformation(shell, "Cannot Perform Operation",
                    "The compilation unit is not on the build path of a Java project.");
        else
            ErrorDialog.openError(shell, "Error Accessing Compilation Unit", "Cannot access compilation unit",
                    x.getStatus());
    }

    ICompletionProposal[] javaProposals = collector.getJavaCompletionProposals();

    List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>(Arrays.asList(javaProposals));
    if (proposals.size() == 0) {
        String error = collector.getErrorMessage();
        if (error.length() > 0)
            fErrorMessage = error;
    }
    return buildJCypherProposals(proposals);
}

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

License:Open Source License

/**
 * Creates and returns a parameter list of the given method or type proposal suitable for
 * display. The list does not include parentheses. The lower bound of parameter types is
 * returned.//  ww  w.  j a v  a2 s.  c  o m
 * <p>
 * Examples:
 * 
 * <pre>
 *   &quot;void method(int i, String s)&quot; -&gt; &quot;int i, String s&quot;
 *   &quot;? extends Number method(java.lang.String s, ? super Number n)&quot; -&gt; &quot;String s, Number n&quot;
 * </pre>
 * 
 * </p>
 * 
 * @param proposal the proposal to create the parameter list for
 * @return the list of comma-separated parameters suitable for display
 */
public StringBuilder createParameterList(CompletionProposal proposal) {
    int kind = proposal.getKind();
    switch (kind) {
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.CONSTRUCTOR_INVOCATION:
        return appendUnboundedParameterList(new StringBuilder(), proposal);
    case CompletionProposal.TYPE_REF:
    case CompletionProposal.JAVADOC_TYPE_REF:
        return appendTypeParameterList(new StringBuilder(), proposal);
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
    case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
        return appendUnboundedParameterList(new StringBuilder(), proposal);
    default:
        Assert.isLegal(false);
        return null; // dummy
    }
}

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 w w  w  . ja  v a  2  s.com
 */
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.flux.jdt.services.CompletionProposalReplacementProvider.java

License:Open Source License

private boolean isSupportingRequiredProposals(CompletionProposal proposal) {
    return proposal != null && (proposal.getKind() == CompletionProposal.METHOD_REF
            || proposal.getKind() == CompletionProposal.FIELD_REF
            || proposal.getKind() == CompletionProposal.TYPE_REF
            || proposal.getKind() == CompletionProposal.CONSTRUCTOR_INVOCATION
            || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION);
}

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

License:Open Source License

protected JSONArray computeContentAssist(String username, String resourcePath, int offset, String prefix)
        throws JSONException {
    final List<CompletionProposal> proposals = new ArrayList<CompletionProposal>();
    final CompletionContext[] completionContextParam = new CompletionContext[] { null };

    ICompilationUnit liveEditUnit = liveEditUnits.getLiveEditUnit(username, resourcePath);
    try {// w ww  . j a  v  a 2 s . c  o  m
        if (liveEditUnit != null) {
            CompletionRequestor collector = new CompletionRequestor() {
                @Override
                public void accept(CompletionProposal proposal) {
                    proposals.add(proposal);
                }

                @Override
                public void acceptContext(CompletionContext context) {
                    super.acceptContext(context);
                    completionContextParam[0] = context;
                }

            };

            // Allow completions for unresolved types - since 3.3
            collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.TYPE_REF,
                    true);
            collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.TYPE_IMPORT,
                    true);
            collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.FIELD_IMPORT,
                    true);

            collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.TYPE_REF,
                    true);
            collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.TYPE_IMPORT,
                    true);
            collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF,
                    CompletionProposal.METHOD_IMPORT, true);

            collector.setAllowsRequiredProposals(CompletionProposal.CONSTRUCTOR_INVOCATION,
                    CompletionProposal.TYPE_REF, true);

            collector.setAllowsRequiredProposals(CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION,
                    CompletionProposal.TYPE_REF, true);
            collector.setAllowsRequiredProposals(CompletionProposal.ANONYMOUS_CLASS_DECLARATION,
                    CompletionProposal.TYPE_REF, true);

            collector.setAllowsRequiredProposals(CompletionProposal.TYPE_REF, CompletionProposal.TYPE_REF,
                    true);

            liveEditUnit.codeComplete(offset, collector, new NullProgressMonitor());
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    List<JSONObject> jsonProposals = new ArrayList<JSONObject>(proposals.size());
    CompletionContext completionContext = completionContextParam[0];
    for (CompletionProposal proposal : proposals) {
        JSONObject jsonDescription = getDescription(proposal, completionContext);
        ProposalReplcamentInfo replacementInfo = new CompletionProposalReplacementProvider(liveEditUnit,
                proposal, completionContext, offset, prefix).createReplacement();

        JSONObject jsonProposal = new JSONObject();
        jsonProposal.put("description", jsonDescription);
        jsonProposal.put("proposal", replacementInfo.replacement);
        int initOffset = offset - prefix.length();
        if (replacementInfo.extraChanges != null) {
            jsonProposal.put("additionalEdits", Utils.editsToJsonArray(replacementInfo.extraChanges));
            initOffset += Utils.getOffsetAdjustment(replacementInfo.extraChanges, initOffset);
        }
        if (replacementInfo.positions != null && !replacementInfo.positions.isEmpty()) {
            jsonProposal.put("positions", getPositions(replacementInfo.positions, initOffset));
        }
        jsonProposal.put("escapePosition", initOffset + replacementInfo.replacement.length());
        jsonProposal.put("style", "attributedString");
        jsonProposal.put("replace", true);
        jsonProposal.put("relevance", proposal.getRelevance());

        jsonProposals.add(jsonProposal);
    }

    Collections.sort(jsonProposals, new Comparator<JSONObject>() {
        @Override
        public int compare(JSONObject o1, JSONObject o2) {
            try {
                int diff = o2.getInt("relevance") - o1.getInt("relevance");
                if (diff == 0) {
                    JSONArray nameDescription1 = o1.getJSONObject("description").getJSONArray("segments");
                    JSONArray nameDescription2 = o2.getJSONObject("description").getJSONArray("segments");
                    StringBuilder nameBuffer1 = new StringBuilder();
                    for (int i = 0; i < nameDescription1.length(); i++) {
                        nameBuffer1.append(nameDescription1.getJSONObject(i).getString("value"));
                    }
                    StringBuilder nameBuffer2 = new StringBuilder();
                    for (int i = 0; i < nameDescription2.length(); i++) {
                        nameBuffer2.append(nameDescription2.getJSONObject(i).getString("value"));
                    }
                    return nameBuffer1.toString().compareTo(nameBuffer2.toString());
                } else {
                    return diff;
                }
            } catch (JSONException e) {
                return -1;
            }
        }
    });

    return new JSONArray(jsonProposals);
}

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;// w  w w  .  j a va2 s .com
    }

    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

@Test
public void testAnonymousClassConstructorInvocationProposal() throws Exception {
    ITypesIndexService service = mockTypesIndexServer(ImmutableSetMultimap.of(SET, "java.util.AbstractSet"));
    IRecommendersCompletionContext context = mockCompletionContextWithExpectedTypeNames(SET);

    TypesCompletionSessionProcessor sut = new TypesCompletionSessionProcessor(service, new SharedImages());

    boolean shouldProcess = sut.startSession(context);

    assertThat(shouldProcess, is(equalTo(true)));

    IProcessableProposal abstractSetProcessableProposal = mockProcessableProposal(
            CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION, ABSTRACT_SET_SIGNATURE);

    sut.process(abstractSetProcessableProposal);

    verifyWasBoosted(abstractSetProcessableProposal);
}

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;//from  www .  j av a2 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  a  2s.  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 w w  w  . j a  va 2 s .c  o  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
}