package org.nodeclipse.enide.editors.jade.editors;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentPartitioner;
import org.eclipse.jface.text.rules.FastPartitioner;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.editors.text.FileDocumentProvider;
import org.nodeclipse.enide.editors.jade.highlight.JadePartitionScanner;
public class NodeDocumentProvider extends FileDocumentProvider {
@Override
protected IDocument createDocument(Object element) throws CoreException {
IDocument doc = super.createDocument(element);
if (doc != null) {
IDocumentPartitioner partitioner = new FastPartitioner(new JadePartitionScanner(), JadePartitionScanner.PARTITION_TYPES);
partitioner.connect(doc);
doc.setDocumentPartitioner(partitioner);
}
return doc;
}
/**
* Alternative implementation of the method that does not require file to be
* a physical file.
*/
@Override
public boolean isDeleted(Object element) {
if (element instanceof IFileEditorInput) {
IFileEditorInput input = (IFileEditorInput) element;
IProject project = input.getFile().getProject();
if (project != null && !project.exists()) {
return true;
}
return !input.getFile().exists();
}
return super.isDeleted(element);
}
}