package net.sourceforge.phpeclipse.phpeditor; /********************************************************************** Copyright (c) 2000, 2002 IBM Corp. and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html Contributors: IBM Corporation - Initial implementation Klaus Hartlage - www.eclipseproject.de **********************************************************************/ import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentPartitioner; 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. */ 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 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= 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; } }