List of usage examples for org.eclipse.jdt.core CompletionContext CompletionContext
CompletionContext
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; }//from w w w .ja v a 2 s . c om 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. j ava 2s .c o m*/ } 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.JavaCompletionProcessor.java
License:Open Source License
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int position) { try {//from ww w. j a va 2 s . co m setErrorMessage(null); if (editor.getConsoleConfiguration() == null) { setErrorMessage(HibernateConsoleMessages.JavaCompletionProcessor_no_console_configuration_found); return new ICompletionProposal[0]; } String prefix = HibernateConsoleMessages.JavaCompletionProcessor_session_session; // has to do this because of https://bugs.eclipse.org/bugs/show_bug.cgi?id=141518 IJavaCompletionProposal[] results = new IJavaCompletionProposal[0]; IJavaProject[] projects = null; //try { projects = ProjectUtils.findJavaProjects(editor.getConsoleConfiguration()); /*} catch (RuntimeException e){ String mess = NLS.bind(HibernateConsoleMessages.JavaCompletionProcessor_error_find_project, editor.getConsoleConfiguration().getName()); HibernateConsolePlugin.getDefault().logErrorMessage(mess, e); }*/ for (int i = 0; projects != null && i < projects.length && results.length <= 0; i++) { IJavaProject javaProject = projects[i]; collector = new CompletionProposalCollector(javaProject); collector.acceptContext(new CompletionContext()); try { editor.codeComplete(prefix, collector, position, javaProject); } catch (JavaModelException x) { Shell shell = viewer.getTextWidget().getShell(); ErrorDialog.openError(shell, HibernateConsoleMessages.JavaCompletionProcessor_error, HibernateConsoleMessages.JavaCompletionProcessor_error_while_performing_code_completion, x.getStatus()); HibernateConsolePlugin.getDefault().log(x); } results = collector.getJavaCompletionProposals(); } CompletionHelper.transpose(null, -prefix.length(), results); /*if (editor.getConsoleConfiguration().getConfiguration() == null){ ICompletionProposal[] results2 = new ICompletionProposal[results.length + 1]; System.arraycopy(results, 0, results2, 1, results.length); results2[0] = new LoadConsoleCFGCompletionProposal(editor.getConsoleConfiguration()); return results2; }*/ return results; } finally { if (collector != null) { setErrorMessage(collector.getErrorMessage()); collector = null; } } }
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); }/*w w w.ja v a 2s . c o m*/ 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]; }
From source file:org.hibernate.eclipse.mapper.extractor.FieldPropertyHandler.java
License:Open Source License
public ICompletionProposal[] attributeCompletionProposals(IJavaProject project, Node node, String attributeName, String start, int offset) { // TODO: should also try to find properties getXXX() if (project != null) { Node parentNode = node.getParentNode(); String typename = null;/*from w w w . java2s . co m*/ typename = this.extractor.getNearestType(project, parentNode); if (typename == null) { return new IJavaCompletionProposal[0]; // could not locate type } HibernateResultCollector rc = null; try { IType type = project.findType(typename); if (type == null) return new ICompletionProposal[0]; //nothing to look for then rc = new HibernateResultCollector(project); rc.acceptContext(new CompletionContext()); rc.setAccepts(false, false, false, false, true, false); // TODO: only handle properties ? //rc.reset(offset, javaProject, null); type.codeComplete(start.toCharArray(), -1, start.length(), new char[0][0], new char[0][0], new int[0], false, rc); } catch (JavaModelException jme) { // TODO: report } IJavaCompletionProposal[] results = rc.getJavaCompletionProposals(); CompletionHelper.transpose(start, offset, results); return results; } return new ICompletionProposal[0]; }