/*******************************************************************************
* Copyright (c) 2014 Salesforce.com, inc..
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Salesforce.com, inc. - initial API and implementation
******************************************************************************/
package com.salesforce.ide.ui.editors.apex;
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;
public class ApexDocumentSetupParticipant implements IDocumentSetupParticipant {
private static ApexPartitionScanner apexPartitionScanner = null;
public ApexDocumentSetupParticipant() {
init();
}
private void init() {
if (apexPartitionScanner == null) {
apexPartitionScanner = new ApexPartitionScanner();
}
}
/*
* @see org.eclipse.core.filebuffers.IDocumentSetupParticipant#setup(org.eclipse.jface.text.IDocument)
*/
public void setup(IDocument document) {
if (document instanceof IDocumentExtension3) {
IDocumentExtension3 extension3 = (IDocumentExtension3) document;
IDocumentPartitioner partitioner =
new FastPartitioner(apexPartitionScanner, ApexPartitionScanner.APEX_PARTITION_TYPES);
extension3.setDocumentPartitioner(ApexSourceViewerConfiguration.APEX_PARTITIONING, partitioner);
partitioner.connect(document);
}
}
}