blob: 52fd75da2201a5be19bbb20de8faa25b39c3294a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004-2008 Istvan Rath and Daniel Varro
* 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:
* Istvan Rath - initial API and implementation
*******************************************************************************/
package org.eclipse.viatra2.editor.text.light.vtml;
import org.eclipse.viatra2.editor.text.Activator;
import org.eclipse.viatra2.editor.text.light.IVTEConstants;
import org.eclipse.viatra2.editor.text.light.VTEAutoIndentStrategy;
import org.eclipse.viatra2.editor.text.light.VTEColorProvider;
import org.eclipse.viatra2.editor.text.light.VTEColorToken;
import org.eclipse.jface.text.IAutoEditStrategy;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.presentation.IPresentationReconciler;
import org.eclipse.jface.text.presentation.PresentationReconciler;
import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.swt.SWT;
public class VTMLConfiguration extends SourceViewerConfiguration
{
private VTMLCodeScanner iCodeScanner = null;
private VTEColorProvider iColorProvider = null;
private VTEColorToken iColorToken = null;
@SuppressWarnings("static-access")
public VTMLConfiguration(VTEColorProvider cm)
{
iColorProvider = cm;
iColorProvider.initializeDefaults(Activator.getDefault().getPreferenceStore());
iColorToken = new VTEColorToken();
iColorToken.COMMENT = new Token(new TextAttribute(iColorProvider.getColor(IVTEConstants.COMMENT)));
iColorToken.KEYWORD = new Token(new TextAttribute(iColorProvider.getColor(IVTEConstants.KEYWORD),null,SWT.BOLD));
iColorToken.STRING = new Token(new TextAttribute(iColorProvider.getColor(IVTEConstants.STRING)));
iColorToken.OTHER = new Token(new TextAttribute(iColorProvider.getColor(IVTEConstants.DEFAULT)));
iCodeScanner = new VTMLCodeScanner(iColorProvider,iColorToken);
}
/**
* Define reconciler for VTMLEditor
*/
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
PresentationReconciler reconciler = new PresentationReconciler();
DefaultDamagerRepairer dr = new DefaultDamagerRepairer(iCodeScanner);
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
return reconciler;
}
@Override
public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType)
{
return new IAutoEditStrategy[]{new VTEAutoIndentStrategy()};
}
}