List of usage examples for org.eclipse.jdt.internal.codeassist InternalCompletionProposal getName
@Override public char[] getName()
From source file:org.codehaus.groovy.eclipse.codeassist.proposals.GroovyFieldProposal.java
License:Apache License
private CompletionProposal createProposal(ContentAssistContext context) { InternalCompletionProposal proposal = (InternalCompletionProposal) CompletionProposal .create(CompletionProposal.FIELD_REF, context.completionLocation); proposal.setFlags(field.getModifiers()); proposal.setName(field.getName().toCharArray()); proposal.setCompletion(proposal.getName()); proposal.setSignature(ProposalUtils.createTypeSignature(field.getType())); proposal.setDeclarationSignature(ProposalUtils.createTypeSignature(field.getDeclaringClass())); proposal.setRelevance(computeRelevance()); int startIndex = context.completionLocation - context.completionExpression.length(); proposal.setReplaceRange(startIndex, context.completionEnd); return proposal; }
From source file:org.codehaus.groovy.eclipse.codeassist.proposals.GroovyPropertyProposal.java
License:Apache License
private CompletionProposal createProposal(ContentAssistContext context) { InternalCompletionProposal proposal = (InternalCompletionProposal) CompletionProposal .create(CompletionProposal.FIELD_REF, context.completionLocation); proposal.setFlags(property.getModifiers()); proposal.setName(property.getName().toCharArray()); proposal.setCompletion(proposal.getName()); proposal.setSignature(ProposalUtils.createTypeSignature(property.getType())); proposal.setDeclarationSignature(ProposalUtils.createTypeSignature(property.getDeclaringClass())); proposal.setRelevance(computeRelevance()); int startIndex = context.completionLocation - context.completionExpression.length(); proposal.setReplaceRange(startIndex, context.completionEnd); return proposal; }
From source file:org.eclipse.recommenders.args.completion.rcp.ParameterCompletionProposalComputer.java
License:Open Source License
@Override public final List<ICompletionProposal> computeCompletionProposals( final ContentAssistInvocationContext javaContext, final IProgressMonitor monitor) { List<ICompletionProposal> output = new ArrayList<ICompletionProposal>(); this.jdtContext = (JavaContentAssistInvocationContext) javaContext; this.crContext = ctxFactory.create(jdtContext); //get the type of the node, and the index of parameter ASTNode completeNode = crContext.getCompletionNode().orNull(); String declarationSignature = null; int index = 0; if (completeNode instanceof MessageSend) { MessageSend mn = (MessageSend) completeNode; if (mn.actualReceiverType == null) { return Collections.emptyList(); }/*from w w w .j av a2 s .c o m*/ declarationSignature = new String(mn.actualReceiverType.closestMatch().signature()).replace('/', '.'); if (mn.arguments != null) { index = mn.arguments.length; } } else if (completeNode instanceof CompletionOnQualifiedAllocationExpression) { CompletionOnQualifiedAllocationExpression cn = (CompletionOnQualifiedAllocationExpression) completeNode; declarationSignature = new String(cn.resolvedType.signature()).replace('/', '.'); if (cn.arguments != null) { index = cn.arguments.length; } } else { return Collections.EMPTY_LIST; } //calculate the possible parameters for every proposal Map<IJavaCompletionProposal, CompletionProposal> proposals = crContext.getProposals(); for (IJavaCompletionProposal k : proposals.keySet()) { try { InternalCompletionProposal proposol = (InternalCompletionProposal) proposals.get(k); int kind = proposol.getKind(); //if is an anonymous class declaration then continue if (kind == CompletionProposal.ANONYMOUS_CLASS_DECLARATION) { continue; } if (getParameterTypes(proposol).length <= index) { continue; } char[][] parameterNames = proposol.findParameterNames(null); PreciseParamRecommender preciseParamRecommender = new PreciseParamRecommender(); preciseParamRecommender.setIcu(jdtContext.getCompilationUnit()); preciseParamRecommender.setClassName(declarationSignature); preciseParamRecommender.setSrcString(jdtContext.getCompilationUnit().getSource()); String methodName = ""; if (proposol.getName() == null) { String s = declarationSignature; s = s.substring(1, s.length() - 1); Class ownClass = Class.forName(s); methodName = ownClass.getSimpleName(); } else { methodName = new String(proposol.getName()); } preciseParamRecommender.setMethodName(new StringBuffer().append(methodName)); preciseParamRecommender.setParameterNames(proposol.findParameterNames(null)); preciseParamRecommender.setParameterTypes(getParameterTypes(proposol)); preciseParamRecommender.setInvocationOffset(jdtContext.getInvocationOffset()); preciseParamRecommender.setCurrentPosition(index); // TODO: find a better solution to take into account info other than names List<IField> visibleFields = crContext.getVisibleFields(); List<ILocalVariable> visibleLocals = crContext.getVisibleLocals(); List<String> visibleNames = new ArrayList<String>(); for (IField f : visibleFields) { visibleNames.add(f.getElementName()); } for (ILocalVariable v : visibleLocals) { visibleNames.add(v.getElementName()); } preciseParamRecommender.setVisibleNames(visibleNames); preciseParamRecommender.parse(); preciseParamRecommender.recommend(); ICompletionProposal[] argsProposals = integrateProposals( preciseParamRecommender.getRecommendationsList().get(index)); output.addAll(0, Arrays.asList(argsProposals)); } catch (JavaModelException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } List<ICompletionProposal> temp = output; Set<String> containsProposal = new HashSet<String>(); output = new ArrayList<ICompletionProposal>(); for (ICompletionProposal proposal : temp) { if (containsProposal.contains(proposal.getDisplayString())) { continue; } containsProposal.add(proposal.getDisplayString()); output.add(proposal); } if (output.size() > RECOMMENDATION_LIMIT) { output = output.subList(0, RECOMMENDATION_LIMIT - 1); } if (output.size() == 0) { return Collections.emptyList(); } return output; }