package org.erlide.ui.editors.erl;
import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentExtension3;
import org.eclipse.jface.text.IDocumentPartitioner;
import org.eclipse.jface.text.rules.FastPartitioner;
import org.erlide.ui.editors.erl.scanner.ErlangPartitionScanner;
import org.erlide.ui.editors.erl.scanner.IErlangPartitions;
public class ErlangDocumentSetupParticipant implements IDocumentSetupParticipant {
@Override
public void setup(final IDocument document) {
setupErlangDocumentPartitioner(document, IErlangPartitions.ERLANG_PARTITIONING);
}
public void setupErlangDocumentPartitioner(final IDocument document,
final String partitioning) {
final IDocumentPartitioner partitioner = createDocumentPartitioner();
if (document instanceof IDocumentExtension3) {
final IDocumentExtension3 extension3 = (IDocumentExtension3) document;
extension3.setDocumentPartitioner(partitioning, partitioner);
} else {
document.setDocumentPartitioner(partitioner);
}
partitioner.connect(document);
}
public static IDocumentPartitioner createDocumentPartitioner() {
return new FastPartitioner(new ErlangPartitionScanner(),
IErlangPartitions.LEGAL_PARTITIONS);
}
}