X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/IdentifierEngine.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/IdentifierEngine.java index de2ce2e..f9f0d99 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/IdentifierEngine.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/template/IdentifierEngine.java @@ -6,11 +6,13 @@ package net.sourceforge.phpdt.internal.ui.text.template; import java.util.ArrayList; -import net.sourceforge.phpdt.internal.corext.template.ContextType; +import net.sourceforge.phpdt.core.ICompilationUnit; 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.PHPUiImages; import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; @@ -18,12 +20,12 @@ import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.Region; import org.eclipse.swt.graphics.Point; -//import org.eclipse.jdt.internal.ui.text.link.LinkedPositionManager; +//import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionManager; public class IdentifierEngine { /** The context type. */ - private ContextType fContextType; + private JavaContextType fContextType; /** The result proposals. */ private ArrayList fProposals = new ArrayList(); @@ -31,7 +33,7 @@ public class IdentifierEngine { * Creates the template engine for a particular context type. * See TemplateContext for supported context types. */ - public IdentifierEngine(ContextType contextType) { + public IdentifierEngine(JavaContextType contextType) { // Assert.isNotNull(contextType); fContextType = contextType; } @@ -60,8 +62,7 @@ public class IdentifierEngine { * @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, Object[] identifiers) - //,ICompilationUnit compilationUnit) + public void complete(ITextViewer viewer, int completionPosition, Object[] identifiers,ICompilationUnit compilationUnit) //hrows JavaModelException { IDocument document = viewer.getDocument(); @@ -79,18 +80,26 @@ public class IdentifierEngine { } } - ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition, selection.y); //mpilationUnit); +// ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition, selection.y); //mpilationUnit); - PHPUnitContext context = (PHPUnitContext) fContextType.createContext(); +// JavaContext context = (JavaContext) fContextType.createContext(); + JavaContext context = (JavaContext) fContextType.createContext(document, completionPosition,selection.y,compilationUnit); + context.setVariable("selection", selectedText); //$NON-NLS-1$ + int start = context.getStart(); int end = context.getEnd(); IRegion region = new Region(start, end - start); // Template[] templates= Templates.getInstance().getTemplates(); String identifier = null; + int maxProposals = PHPeclipsePlugin.MAX_PROPOSALS; + for (int i = 0; i != identifiers.length; i++) { identifier = (String) identifiers[i]; if (context.canEvaluate(identifier)) { + if (maxProposals-- < 0) { + return; + } fProposals.add( new IdentifierProposal( identifier,