/******************************************************************************* * Copyright (c) 2011 Subgraph. * 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: * Subgraph - initial API and implementation ******************************************************************************/ package com.subgraph.vega.ui.httpviewer; 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.ITokenScanner; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.SourceViewerConfiguration; import com.subgraph.vega.ui.httpviewer.syntax.HttpHeaderScanner; import com.subgraph.vega.ui.httpviewer.syntax.RequestLineScanner; import com.subgraph.vega.ui.httpviewer.syntax.ResponseLineScanner; public class Configuration extends SourceViewerConfiguration { private final Colors colors; private final IPresentationReconciler reconciler; Configuration(Colors colors) { this.colors = colors; this.reconciler = createReconciler(); } private IPresentationReconciler createReconciler() { final PresentationReconciler pr = new PresentationReconciler(); addDamagerRepairer(pr, HttpMessageDocumentFactory.PARTITION_REQUEST_LINE, new RequestLineScanner(colors)); addDamagerRepairer(pr, HttpMessageDocumentFactory.PARTITION_RESPONSE_LINE, new ResponseLineScanner(colors)); addDamagerRepairer(pr, HttpMessageDocumentFactory.PARTITION_MESSAGE_HEADER, new HttpHeaderScanner(colors)); return pr; } private void addDamagerRepairer(PresentationReconciler pr, String partition, ITokenScanner scanner) { final DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner); pr.setDamager(dr, partition); pr.setRepairer(dr, partition); } @Override public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) { return reconciler; } }