X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/DeclarationEngine.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/DeclarationEngine.java index e7c66c1..56274cd 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/DeclarationEngine.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/DeclarationEngine.java @@ -8,15 +8,17 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.SortedMap; +import net.sourceforge.phpdt.core.ICompilationUnit; import net.sourceforge.phpdt.core.compiler.ITerminalSymbols; -import net.sourceforge.phpdt.internal.corext.template.ContextType; import net.sourceforge.phpdt.internal.corext.template.php.CompilationUnitContextType; -import net.sourceforge.phpdt.internal.corext.template.php.PHPUnitContext; +import net.sourceforge.phpdt.internal.corext.template.php.JavaContext; +import net.sourceforge.phpdt.internal.corext.template.php.JavaContextType; import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.builder.PHPIdentifierLocation; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; @@ -28,12 +30,13 @@ import org.eclipse.swt.graphics.Point; public class DeclarationEngine { /** The context type. */ - private ContextType fContextType; + private JavaContextType fContextType; /** The result proposals. */ private ArrayList fProposals = new ArrayList(); /** Token determines last which declarations are allowed for proposal */ private int fLastSignificantToken; + private IProject fProject; private IFile fFile; // private String fFileName; @@ -41,8 +44,9 @@ public class DeclarationEngine { * Creates the template engine for a particular context type. * See TemplateContext for supported context types. */ - public DeclarationEngine(ContextType contextType, int lastSignificantToken, IFile file) { + public DeclarationEngine(IProject project, JavaContextType contextType, int lastSignificantToken, IFile file) { // Assert.isNotNull(contextType); + fProject = project; fContextType = contextType; fLastSignificantToken = lastSignificantToken; @@ -78,7 +82,7 @@ public class DeclarationEngine { * @param completionPosition the context position in the document of the text viewer * @param compilationUnit the compilation unit (may be null) */ - public void complete(ITextViewer viewer, int completionPosition, SortedMap map) { + public void complete(ITextViewer viewer, int completionPosition, SortedMap map, ICompilationUnit compilationUnit) { IDocument document = viewer.getDocument(); if (!(fContextType instanceof CompilationUnitContextType)) @@ -96,9 +100,12 @@ public class DeclarationEngine { } } - ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition, selection.y); +// ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition, selection.y); + +// CompilationUnitContext context = (CompilationUnitContext) fContextType.createContext(); + JavaContext context = (JavaContext) fContextType.createContext(document, completionPosition,selection.y,compilationUnit); + context.setVariable("selection", selectedText); //$NON-NLS-1$ - PHPUnitContext context = (PHPUnitContext) fContextType.createContext(); int start = context.getStart(); int end = context.getEnd(); String prefix = context.getKey(); @@ -151,7 +158,7 @@ public class DeclarationEngine { if (maxProposals-- < 0) { return; } - fProposals.add(new DeclarationProposal(identifier, location, context, region, viewer)); + fProposals.add( new DeclarationProposal(fProject, identifier, location, context, region, viewer)); } } }