package com.htmlhifive.h5.tools.codeassist.core.test; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.text.IDocument; import org.eclipse.wst.jsdt.core.IJavaScriptProject; import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import com.htmlhifive.h5.tools.codeassist.core.test.util.TestUtilAndConst; public class DefaultContext extends ProposalContextAdapter { private final String assistStr; private IJavaScriptProject project; public DefaultContext(String assistStr, IJavaScriptProject project) { this.assistStr = assistStr; this.project = project; } @Override public int getInvocationOffset() { StringBuilder sb = new StringBuilder(TestUtilAndConst.createRealCode()); sb.append(assistStr); return sb.lastIndexOf(assistStr) + assistStr.length(); } @Override public IDocument getDocument() { return null; } @Override public IJavaScriptProject getProject() { return project; } @Override public IJavaScriptUnit getCompilationUnit() { StringBuilder sb = new StringBuilder(TestUtilAndConst.createRealCode()); try { IJavaScriptUnit unit = project.getPackageFragments()[0].getJavaScriptUnit("sample.js").getWorkingCopy(null); sb.append(assistStr); unit.getBuffer().setContents(sb.toString()); return unit; } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }