/******************************************************************************* * Copyright (c) 2005 Vlad Dumitrescu and others. * 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: * Vlad Dumitrescu *******************************************************************************/ package org.erlide.ui.editors.internal.reconciling; // import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.reconciler.DirtyRegion; import org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension; import org.erlide.engine.model.root.IErlModule; import org.erlide.engine.services.parsing.ScannerService; import org.erlide.ui.editors.erl.AbstractErlangEditor; import org.erlide.util.ErlLogger; public class ErlReconcilingStrategy implements IErlReconcilingStrategy, IReconcilingStrategyExtension { private IErlModule fModule; private final AbstractErlangEditor fEditor; // private IDocument fDoc; private IProgressMonitor mon; private ScannerService fScanner; // private boolean initialInsert; public ErlReconcilingStrategy(final AbstractErlangEditor editor) { fEditor = editor; } @Override public void setDocument(final IDocument document) { if (fEditor == null) { return; } // fDoc = document; } @Override public void reconcile(final DirtyRegion dirtyRegion, final IRegion subRegion) { ErlLogger.error("reconcile called"); } @Override public void reconcile(final IRegion partition) { ErlLogger.error("reconcile called"); } @Override public void initialReconcile() { fModule = fEditor != null ? fEditor.getModule() : null; fScanner = fEditor != null ? fEditor.getScanner() : null; if (fModule != null) { fModule.initialReconcile(); } // notify(new OtpErlangAtom("initialReconcile")); } @Override public void setProgressMonitor(final IProgressMonitor monitor) { mon = monitor; } @Override public void uninstall() { if (fModule != null) { fModule.finalReconcile(); } } @Override public void chunkReconciled() { if (fModule != null) { fModule.postReconcile(mon); } } @Override public void reconcile(final ErlDirtyRegion r) { if (fModule != null) { fModule.reconcileText(r.getOffset(), r.getLength(), r.getText(), mon); } else if (fScanner != null) { fScanner.replaceText(r.getOffset(), r.getLength(), r.getText()); } } public IErlModule getModule() { return fModule; } }