Added PHPUnitEditor and corresponding PHPPreferencePage
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / PHPDocumentProvider.java
index 919bdd9..4db485f 100644 (file)
@@ -12,55 +12,75 @@ Contributors:
     Klaus Hartlage - www.eclipseproject.de
 **********************************************************************/
 
+import net.sourceforge.phpeclipse.phpeditor.php.IPHPPartitionScannerConstants;
+import net.sourceforge.phpeclipse.phpeditor.php.PHPPartitionScanner;
+
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.text.DefaultLineTracker;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IDocumentPartitioner;
+import org.eclipse.jface.text.ILineTracker;
 import org.eclipse.jface.text.rules.DefaultPartitioner;
-import org.eclipse.jface.text.rules.RuleBasedPartitioner;
 import org.eclipse.ui.editors.text.FileDocumentProvider;
-import net.sourceforge.phpeclipse.phpeditor.php.PHPPartitionScanner;
 
 /** 
- * The JavaDocumentProvider provides the IDocuments used by java editors.
+ * The PHPDocumentProvider provides the IDocuments used by java editors.
  */
 
 public class PHPDocumentProvider extends FileDocumentProvider {
 
-       // private final static String[] TYPES= new String[] { PHPPartitionScanner.PHP, PHPPartitionScanner.JAVA_DOC, PHPPartitionScanner.JAVA_MULTILINE_COMMENT };
-private final static String[] TYPES= new String[] { PHPPartitionScanner.PHP, PHPPartitionScanner.JAVA_MULTILINE_COMMENT };
+  // private final static String[] TYPES= new String[] { PHPPartitionScanner.PHP, PHPPartitionScanner.JAVA_DOC, PHPPartitionScanner.JAVA_MULTILINE_COMMENT };
+  private final static String[] TYPES = new String[] { 
+       IPHPPartitionScannerConstants.PHP,
+       IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT,
+    IPHPPartitionScannerConstants.HTML, 
+       IPHPPartitionScannerConstants.HTML_MULTILINE_COMMENT,
+       IPHPPartitionScannerConstants.JAVASCRIPT,
+       IPHPPartitionScannerConstants.CSS};
+
+  private static PHPPartitionScanner fgScanner = null;
+
+  public PHPDocumentProvider() {
+    super();
+  }
+
+  /* (non-Javadoc)
+   * Method declared on AbstractDocumentProvider
+   */
+  protected IDocument createDocument(Object element) throws CoreException {
+    IDocument document = super.createDocument(element);
+    if (document != null) {
+      IDocumentPartitioner partitioner = createPHPPartitioner();
+      document.setDocumentPartitioner(partitioner);
+      partitioner.connect(document);
+    }
+    return document;
+  }
 
-       private static PHPPartitionScanner fgScanner= null;
+  /**
+   * Return a partitioner for .php files.
+   */
+  private IDocumentPartitioner createPHPPartitioner() {
+    return new DefaultPartitioner(getPHPPartitionScanner(), TYPES);
+  }
 
-       public PHPDocumentProvider() {
-               super();
-       }
-       
-       /* (non-Javadoc)
-        * Method declared on AbstractDocumentProvider
-        */
-        protected IDocument createDocument(Object element) throws CoreException {
-               IDocument document= super.createDocument(element);
-               if (document != null) {
-                       IDocumentPartitioner partitioner= createJavaPartitioner();
-                       document.setDocumentPartitioner(partitioner);
-                       partitioner.connect(document);
-               }
-               return document;
-       }
-       
-       /**
-        * Return a partitioner for .java files.
-        */
-        private IDocumentPartitioner createJavaPartitioner() {
-               return new DefaultPartitioner(getPHPPartitionScanner(), TYPES);
-       }
-       
-       /**
-        * Return a scanner for creating java partitions.
-        */
-        private PHPPartitionScanner getPHPPartitionScanner() {
-               if (fgScanner == null)
-                       fgScanner= new PHPPartitionScanner();
-               return fgScanner;
-       }
+  /**
+   * Return a scanner for creating java partitions.
+   */
+  private PHPPartitionScanner getPHPPartitionScanner() {
+    if (fgScanner == null)
+      fgScanner = new PHPPartitionScanner();
+    return fgScanner;
+  }
+  
+  /**
+   * Creates a line tracker working with the same line delimiters as the document
+   * of the given element. Assumes the element to be managed by this document provider.
+   * 
+   * @param element the element serving as blue print
+   * @return a line tracker based on the same line delimiters as the element's document
+   */
+  public ILineTracker createLineTracker(Object element) {
+    return new DefaultLineTracker();
+  }
 }