added PHPDoc contexts
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / text / template / BuiltInEngine.java
index 68d6a36..5b43224 100644 (file)
@@ -7,14 +7,17 @@ package net.sourceforge.phpdt.internal.ui.text.template;
 import java.util.ArrayList;
 
 import net.sourceforge.phpdt.internal.corext.template.ContextType;
-import net.sourceforge.phpdt.internal.corext.template.java.CompilationUnitContext;
-import net.sourceforge.phpdt.internal.corext.template.java.CompilationUnitContextType;
+import net.sourceforge.phpdt.internal.corext.template.php.CompilationUnitContextType;
+import net.sourceforge.phpdt.internal.corext.template.php.PHPUnitContext;
 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
-import net.sourceforge.phpdt.internal.ui.text.java.IJavaCompletionProposal;
+import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal;
+
+import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 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;
 
 public class BuiltInEngine {
@@ -46,8 +49,8 @@ public class BuiltInEngine {
        /**
         * Returns the array of matching templates.
         */
-       public IJavaCompletionProposal[] getResults() {
-               return (IJavaCompletionProposal[]) fProposals.toArray(new IJavaCompletionProposal[fProposals.size()]);
+       public IPHPCompletionProposal[] getResults() {
+               return (IPHPCompletionProposal[]) fProposals.toArray(new IPHPCompletionProposal[fProposals.size()]);
        }
 
        /**
@@ -69,9 +72,18 @@ public class BuiltInEngine {
 
                if (!(fContextType instanceof CompilationUnitContextType))
                        return;
-               
-               ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition);//mpilationUnit);
-               CompilationUnitContext context= (CompilationUnitContext) fContextType.createContext();
+    Point selection= viewer.getSelectedRange();
+    // remember selected text
+    String selectedText= null;
+    if (selection.y != 0) {
+      try {
+        selectedText= document.get(selection.x, selection.y);
+      } catch (BadLocationException e) {}
+    }
+    
+    ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition, selection.y);//mpilationUnit);
+
+               PHPUnitContext context= (PHPUnitContext) fContextType.createContext();
                int start= context.getStart();
                int end= context.getEnd();
                IRegion region= new Region(start, end - start);