added PHPDoc contexts
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / text / template / IdentifierEngine.java
index c32bd7f..0658df7 100644 (file)
@@ -12,10 +12,12 @@ import net.sourceforge.phpdt.internal.corext.template.php.PHPUnitContext;
 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
 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 IdentifierEngine {
@@ -71,7 +73,17 @@ public class IdentifierEngine {
                if (!(fContextType instanceof CompilationUnitContextType))
                        return;
                
-               ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition);//mpilationUnit);
+    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();