List of usage examples for org.eclipse.jdt.core.eval IEvaluationContext codeComplete
public void codeComplete(String codeSnippet, int position, org.eclipse.jdt.core.ICodeCompletionRequestor requestor) throws JavaModelException;
From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProcessor.java
License:Open Source License
private IJavaCompletionProposal[] computePackageAndTypeProposals(String js, int lineStartOffset, int cursorOffset) throws JavaModelException { Matcher matcher = PACKAGE_OR_TYPE_REF_START.matcher(js); if (!matcher.find()) { // Bail if we're not inside a JSNI Java package/type reference return null; }// w ww. j a va 2 s . c o m // Extract from the match the (maybe partial) package/type reference int refOffset = matcher.start(1) + lineStartOffset; int refLength = cursorOffset - refOffset; String partialRef = matcher.group(1); CompletionProposalCollector requestor = JsniCompletionProposalCollector .createPackageAndTypeProposalCollector(cu, refOffset, refLength); IEvaluationContext evalContext = createEvaluationContext(); evalContext.codeComplete(partialRef, partialRef.length(), requestor); return requestor.getJavaCompletionProposals(); }
From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.CodeCompleteProposalComputer.java
License:Open Source License
public static void completeCodeUsingAlphabet(IEvaluationContext evalContext, ProposalGeneratingCompletionRequestor requestor) throws JavaModelException { for (char letter = 'a'; letter <= 'z'; letter++) { evalContext.codeComplete(String.valueOf(letter), 1, requestor); if (requestor.getProposals().size() > 0) { /*//from ww w . j a v a 2s . c o m * Once we've hit a letter that returns at least one valid proposal, * bail out. */ return; } } }
From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.CodeCompleteProposalComputer.java
License:Open Source License
public void computeProposals(List<ICompletionProposal> proposals) throws UiBinderException { try {//from w ww . ja v a 2s .c om IEvaluationContext evalContext = createEvaluationContext(); // for <ui:import field='____'> autocomplete if (packageName != null) { evalContext.setPackageName(packageName); } ProposalGeneratingCompletionRequestor requestor = new ProposalGeneratingCompletionRequestor( getReplaceOffset(), getReplaceLength(), allowedCompletionTypes, getJavaProject(), forceFullyQualifiedFieldNames); if (getEnteredText().trim().length() == 0) { completeCodeUsingAlphabet(evalContext, requestor); } else { evalContext.codeComplete(getEnteredText(), getEnteredText().length(), requestor); } proposals.addAll(requestor.getProposals()); } catch (JavaModelException e) { throw new UiBinderException(e); } }
From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.JavaElExpressionProposalComputer.java
License:Open Source License
public void computeProposals(List<ICompletionProposal> proposals) throws UiBinderException { IEvaluationContext evalContext = createEvaluationContext(); try {//from w w w . j a va2 s . co m // Get proposals for instance methods and static methods by treating the // Java type as an instance. // Since the type does not necessarily have to have a zero-arg // constructor, we use a local variable in the completion request below JavaElExpressionCompletionRequestor requestor = new JavaElExpressionCompletionRequestor( CompletionProposal.METHOD_REF); String snippet = javaType.getFullyQualifiedName('.') + " tmpVar; tmpVar." + getEnteredText(); evalContext.codeComplete(snippet, snippet.length(), requestor); proposals.addAll(requestor.getProposals()); } catch (JavaModelException e) { throw new UiBinderException(e); } }
From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.WidgetProposalComputer.java
License:Open Source License
public void computeProposals(List<ICompletionProposal> proposals) throws UiBinderException { if (!isWidgetAllowed()) { return;//from w w w.j a va 2s .c o m } IEvaluationContext evalContext = createEvaluationContext(); String packageName = null; String prefix = XmlUtilities.getPrefix(enteredText); if (prefix != null) { packageName = packageManager.getPackageName(prefix); if (packageName == null) { // The user has specified a namespace prefix but there is not a matching // package, so no widgets here return; } } ProposalGeneratingCompletionRequestor requestor = new WidgetCompletionRequestor(packageName); String unprefixedEnteredText = XmlUtilities.getUnprefixed(enteredText); try { if (unprefixedEnteredText.trim().length() > 0) { evalContext.codeComplete(enteredText, enteredText.length(), requestor); } else { // Offer all possible types available to the project as // completions. See // http://code.google.com/p/google-plugin-for-eclipse/issues/detail?id=11 CodeCompleteProposalComputer.completeCodeUsingAlphabet(evalContext, requestor); } proposals.addAll(requestor.getProposals()); } catch (JavaModelException e) { throw new UiBinderException(e); } }
From source file:org.drools.eclipse.editors.completion.DefaultCompletionProcessor.java
License:Apache License
protected List getAllClassProposals(final String classNameStart, final int documentOffset, final String prefix) { List result = new ArrayList(); IJavaProject javaProject = getCurrentJavaProject(); if (javaProject == null) { return result; }/*www. java 2 s .com*/ CompletionProposalCollector collector = new CompletionProposalCollector(javaProject) { public void accept(CompletionProposal proposal) { if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.PACKAGE_REF || proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.TYPE_REF) { super.accept(proposal); } } }; collector.acceptContext(new CompletionContext()); try { IEvaluationContext evalContext = javaProject.newEvaluationContext(); evalContext.codeComplete(classNameStart, classNameStart.length(), collector); IJavaCompletionProposal[] proposals = collector.getJavaCompletionProposals(); for (int i = 0; i < proposals.length; i++) { if (proposals[i] instanceof AbstractJavaCompletionProposal) { AbstractJavaCompletionProposal javaProposal = (AbstractJavaCompletionProposal) proposals[i]; int replacementOffset = documentOffset - (classNameStart.length() - javaProposal.getReplacementOffset()); javaProposal.setReplacementOffset(replacementOffset); if (javaProposal instanceof LazyJavaTypeCompletionProposal) { String completionPrefix = classNameStart .substring(classNameStart.length() - javaProposal.getReplacementLength()); int dotIndex = completionPrefix.lastIndexOf('.'); // match up to the last dot in order to make higher level matching still work (camel case...) if (dotIndex != -1) { javaProposal.setReplacementString( ((LazyJavaTypeCompletionProposal) javaProposal).getQualifiedTypeName()); } } result.add(proposals[i]); } } } catch (Throwable t) { DroolsEclipsePlugin.log(t); } return result; }
From source file:org.drools.eclipse.editors.completion.DefaultCompletionProcessor.java
License:Apache License
protected void requestJavaCompletionProposals(final String javaText, final String prefix, final int documentOffset, Map params, Collection results, boolean useDrools, boolean useContext) { String javaTextWithoutPrefix = CompletionUtil.getTextWithoutPrefix(javaText, prefix); // boolean to filter default Object methods produced by code completion when in the beginning of a statement boolean filterObjectMethods = false; if ("".equals(javaTextWithoutPrefix.trim()) || CompletionUtil.START_OF_NEW_JAVA_STATEMENT.matcher(javaTextWithoutPrefix).matches()) { filterObjectMethods = true;//from w w w . jav a 2 s . c om } IJavaProject javaProject = getCurrentJavaProject(); if (javaProject == null) { return; } CompletionProposalCollector collector = new CompletionProposalCollector(javaProject); collector.acceptContext(new CompletionContext()); try { IEvaluationContext evalContext = javaProject.newEvaluationContext(); List imports = getImports(); if (imports != null && imports.size() > 0) { evalContext.setImports((String[]) imports.toArray(new String[imports.size()])); } StringBuffer javaTextWithParams = new StringBuffer(); Iterator iterator = params.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator.next(); // this does not seem to work, so adding variables manually // evalContext.newVariable((String) entry.getValue(), (String) entry.getKey(), null); javaTextWithParams.append(entry.getValue() + " " + entry.getKey() + ";\n"); } if (useDrools) { javaTextWithParams.append("org.drools.spi.KnowledgeHelper drools;"); javaTextWithParams.append("org.drools.runtime.rule.RuleContext kcontext;"); } if (useContext) { javaTextWithParams.append("org.drools.spi.ProcessContext context;"); javaTextWithParams.append("org.drools.runtime.process.ProcessContext kcontext;"); } javaTextWithParams.append(javaText); String jtext = javaTextWithParams.toString(); String fixedText = new KnowledgeHelperFixer().fix(jtext); evalContext.codeComplete(fixedText, fixedText.length(), collector); IJavaCompletionProposal[] proposals = collector.getJavaCompletionProposals(); for (int i = 0; i < proposals.length; i++) { if (proposals[i] instanceof AbstractJavaCompletionProposal) { AbstractJavaCompletionProposal javaProposal = (AbstractJavaCompletionProposal) proposals[i]; int replacementOffset = documentOffset - (fixedText.length() - javaProposal.getReplacementOffset()); javaProposal.setReplacementOffset(replacementOffset); if (javaProposal instanceof LazyJavaTypeCompletionProposal) { String completionPrefix = javaText .substring(javaText.length() - javaProposal.getReplacementLength()); int dotIndex = completionPrefix.lastIndexOf('.'); // match up to the last dot in order to make higher level matching still work (camel case...) if (dotIndex != -1) { javaProposal.setReplacementString( ((LazyJavaTypeCompletionProposal) javaProposal).getQualifiedTypeName()); } } if (!filterObjectMethods || !(proposals[i] instanceof JavaMethodCompletionProposal)) { results.add(proposals[i]); } } } } catch (Throwable t) { DroolsEclipsePlugin.log(t); } }
From source file:org.hibernate.eclipse.criteriaeditor.CriteriaEditor.java
License:Open Source License
public void codeComplete(String prefix, CompletionProposalCollector collector, int position, IJavaProject project) throws JavaModelException { String code = getSourceViewer().getDocument().get(); code = prefix + code;/*from ww w .j a va2 s. c o m*/ IEvaluationContext e = getEvaluationContext(project); if (e != null) { e.codeComplete(code, prefix.length() + position, collector); } }
From source file:org.hibernate.eclipse.hqleditor.CompletionHelper.java
License:Open Source License
static public ICompletionProposal[] completeOnJavaTypes(IJavaProject javaProject, Settings settings, String packageName, String start, int offset) { if (javaProject != null) { IEvaluationContext context = javaProject.newEvaluationContext(); if (packageName != null) { context.setPackageName(packageName); }//from ww w . j a v a 2 s. c om HibernateResultCollector rc = new HibernateResultCollector(javaProject); rc.acceptContext(new CompletionContext()); //rc.reset(offset, javaProject, null); rc.setAccepts(settings); try { // cannot send in my own document as it won't compile as // java - so we just send in // the smallest snippet possible context.codeComplete(start, start.length(), rc); } catch (JavaModelException jme) { HibernateConsolePlugin.getDefault().logErrorMessage( HibernateConsoleMessages.CompletionHelper_could_not_complete_java_types, jme); } IJavaCompletionProposal[] results = rc.getJavaCompletionProposals(); transpose(start, offset, results); return results; } return new ICompletionProposal[0]; }