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

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

Introduction

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

Prototype

public void setReplaceRange(int startIndex, int endIndex) 

Source Link

Document

Sets the character indices of the subrange in the source file buffer to be replaced by the completion string.

Usage

From source file:de.ovgu.featureide.ui.editors.Completion.java

License:Open Source License

@Override
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext arg0,
        IProgressMonitor arg1) {//from   w  w w .j  ava 2s. c o m

    final IFile file = ((IFileEditorInput) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
            .getActiveEditor().getEditorInput()).getFile();
    final IFeatureProject featureProject = CorePlugin.getFeatureProject(file);
    final ArrayList<ICompletionProposal> list = new ArrayList<ICompletionProposal>();

    if (featureProject == null)
        return list;

    String featureName = featureProject.getFeatureName(file);
    JavaContentAssistInvocationContext context = (JavaContentAssistInvocationContext) arg0;

    String prefix = new String(context.getCoreContext().getToken());

    //      projectStructure = MPLPlugin.getDefault().extendedModules_getStruct(featureProject, featureName);
    //      if (projectStructure == null) {
    //         return list;
    //      }
    //      List<CompletionProposal> l = MPLPlugin.getDefault().extendedModules(projectStructure);
    List<CompletionProposal> l = MPLPlugin.getDefault().extendedModules_getCompl(featureProject, featureName);

    for (CompletionProposal curProp : l) {
        curProp.setReplaceRange(context.getInvocationOffset() - context.getCoreContext().getToken().length,
                context.getInvocationOffset());

        if (curProp.getKind() == CompletionProposal.TYPE_REF) {
            LazyJavaCompletionProposal prsss = new LazyJavaCompletionProposal(curProp, context);

            prsss.setStyledDisplayString(new StyledString(new String(curProp.getCompletion())));
            prsss.setReplacementString(new String(curProp.getCompletion()));
            if (prefix.length() >= 0 && new String(curProp.getCompletion()).startsWith(prefix)) {
                list.add(prsss);
            }
        } else if (curProp.getKind() == CompletionProposal.METHOD_REF) {
            LazyJavaCompletionProposal meth = new LazyJavaCompletionProposal(curProp, context);

            String displayString = new String(curProp.getCompletion());
            displayString = displayString.concat("(");
            int paramNr = Signature.getParameterCount(curProp.getSignature());
            for (int i = 0; i < paramNr; i++) {
                displayString = displayString
                        .concat(Signature.getParameterTypes(curProp.getSignature()) + " arg" + i);
                if (i + 1 < paramNr) {
                    displayString = displayString.concat(", ");
                }
            }
            displayString = displayString.concat(") : ");
            // displayString = displayString.concat(new
            // String(Signature.getReturnType(curProp.getSignature())));

            StyledString methString = new StyledString(displayString);
            Styler styler = StyledString.createColorRegistryStyler(JFacePreferences.DECORATIONS_COLOR,
                    JFacePreferences.CONTENT_ASSIST_BACKGROUND_COLOR);
            // TextStyle style = new
            // TextStyle(JFaceResources.getDefaultFont(),JFaceResources.getResources().createColor(new
            // RGB(10, 10,
            // 10)),JFaceResources.getResources().createColor(new
            // RGB(0,0,0)));
            // styler.applyStyles(style);
            StyledString infoString = new StyledString(
                    new String(" - " + new String(curProp.getName()) + " " + featureName), styler);
            methString.append(infoString);
            meth.setStyledDisplayString(methString);

            meth.setReplacementString(new String(curProp.getCompletion()));

            if (prefix.length() >= 0 && new String(curProp.getCompletion()).startsWith(prefix)) {
                list.add(meth);
            }
        } else if (curProp.getKind() == CompletionProposal.FIELD_REF) {
            LazyJavaCompletionProposal field = new LazyJavaCompletionProposal(curProp, context);
            StyledString fieldString = new StyledString(new String(curProp.getCompletion()));
            Styler styler = StyledString.createColorRegistryStyler(JFacePreferences.DECORATIONS_COLOR,
                    JFacePreferences.CONTENT_ASSIST_BACKGROUND_COLOR);
            StyledString infoString = new StyledString(
                    new String(" - " + new String(curProp.getName()) + " " + featureName), styler);
            fieldString.append(infoString);
            field.setStyledDisplayString(fieldString);

            field.setReplacementString(new String(curProp.getCompletion()));
            if (prefix.length() > 0 && new String(curProp.getCompletion()).startsWith(prefix)) {
                list.add(field);
            }
        }
    }
    return list;
}

From source file:org.bonitasoft.studio.contract.ui.property.constraint.edit.editor.contentassist.ContractInputProposalsCodeVisitorSupport.java

License:Open Source License

private ICompletionProposal createProposalFor(final ContentAssistInvocationContext context,
        final CharSequence prefix, final ContractInput input) {
    final String name = input.getName();
    final CompletionProposal proposal = CompletionProposal.create(CompletionProposal.FIELD_REF,
            context.getInvocationOffset());
    proposal.setCompletion(name.substring(prefix.length()).toCharArray());
    proposal.setName(name.toCharArray());
    proposal.setFlags(Flags.AccPublic);/*  www .  j  a v a2  s.com*/
    proposal.setReplaceRange(context.getInvocationOffset(), context.getInvocationOffset());
    final String completion = String.valueOf(proposal.getCompletion());
    final int start = proposal.getReplaceStart();
    final int end = proposal.getReplaceEnd();
    final int length = end - start;

    final ContractInputLabelProvider labelProvider = new ContractInputLabelProvider();
    final Image image = labelProvider.getImage(input);
    return new JavaCompletionProposal(completion, start, length, image, labelProvider.getStyledString(input),
            100, false);
}

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

License:Open Source License

private JavaCompletionProposal getProposalFor(final ContentAssistInvocationContext context,
        final CompletionProposalLabelProvider fLabelProvider, final CharSequence prefix, final String name,
        final String typeName) {
    final CompletionProposal proposal = CompletionProposal.create(CompletionProposal.FIELD_REF,
            context.getInvocationOffset());
    proposal.setCompletion(name.substring(prefix.length()).toCharArray());
    proposal.setName(name.toCharArray());
    proposal.setFlags(Flags.AccPublic);/*  w  ww .  j  a  v a  2  s  .c om*/
    proposal.setReplaceRange(context.getInvocationOffset(), context.getInvocationOffset());
    //        Class type = BonitaSyntaxHighlighting.getTypeForKeyWord(keyWord) ;
    if (typeName != null) {
        proposal.setSignature(Signature.createTypeSignature(typeName, true).toCharArray());
    }
    String completion = String.valueOf(proposal.getCompletion());
    int start = proposal.getReplaceStart();
    int end = proposal.getReplaceEnd();
    int length = end - start;

    StyledString label = fLabelProvider.createStyledLabel(proposal);
    final Image image = JavaPlugin.getImageDescriptorRegistry()
            .get(fLabelProvider.createImageDescriptor(proposal));
    return new JavaCompletionProposal(completion, start, length, image, label, 100, false);

    //        final CompletionProposal proposal = CompletionProposal.create(CompletionProposal.FIELD_REF, context.getInvocationOffset());
    //        proposal.setCompletion(name.toCharArray());
    //        proposal.setName(name.toCharArray());
    //        proposal.setFlags(Flags.AccPublic);
    //        proposal.setReplaceRange(context.getInvocationOffset() - prefix.length(), context.getInvocationOffset() + name.length() - prefix.length());
    //        if (typeName != null) {
    //            proposal.setSignature(Signature.createTypeSignature(typeName, true).toCharArray());
    //        }
    //        final String completion = String.valueOf(proposal.getCompletion());
    //        final int start = proposal.getReplaceStart();
    //        final int end = proposal.getReplaceEnd();
    //        final int length = end - start;
    //
    //        final StyledString label = fLabelProvider.createStyledLabel(proposal);
    //
    //        final BonitaConstantsCompletionProposal javaProposal = new BonitaConstantsCompletionProposal(
    //                ((JavaContentAssistInvocationContext) context).getCompilationUnit(), completion, start, length, image, label, 1000, false,
    //                (JavaContentAssistInvocationContext) context);
    //        return javaProposal;
}

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.  ja  v a 2s  .  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.codehaus.groovy.eclipse.codeassist.processors.LocalVariableCompletionProcessor.java

License:Apache License

/**
 * @param offset//from ww  w  .  j  a  v  a 2 s .  c  om
 * @param replaceLength
 * @param context
 * @param proposals
 * @param nameType
 */
private ICompletionProposal createProposal(String replaceName, ClassNode type) {
    CompletionProposal proposal = CompletionProposal.create(CompletionProposal.LOCAL_VARIABLE_REF, offset);
    proposal.setCompletion(replaceName.toCharArray());
    proposal.setReplaceRange(offset - replaceLength, getContext().completionEnd);
    proposal.setSignature(ProposalUtils.createTypeSignature(type));

    proposal.setRelevance(Relevance.HIGH.getRelavance());
    LazyJavaCompletionProposal completion = new LazyJavaCompletionProposal(proposal, javaContext);
    completion.setRelevance(proposal.getRelevance());
    return completion;
}

From source file:org.eclipse.ajdt.internal.core.contentassist.ProposalRequestorWrapper.java

License:Open Source License

private void translateReplaceRange(CompletionProposal proposal) {
    int s = proposal.getReplaceStart();
    int e = proposal.getReplaceEnd();
    proposal.setReplaceRange(trans(s), trans(e));

    /* AJDT 1.7 */
    // translate all proposals contained in this one
    if (proposal instanceof InternalCompletionProposal) {
        InternalCompletionProposal internalProposal = (InternalCompletionProposal) proposal;
        if (internalProposal.getRequiredProposals() != null) {
            for (int i = 0; i < internalProposal.getRequiredProposals().length; i++) {
                translateReplaceRange(internalProposal.getRequiredProposals()[i]);
            }//from   w w  w  .  j a v a 2 s  .  c  o  m
        }
    }
}

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   www .java2 s.  c  om*/
    res.setRelevance(relevance);
    return res;
}

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(//from w  w  w .  j ava2  s.  com
                    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) {/*from  ww w .  ja  v  a 2s.  c om*/
    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;
}