blob: a1bcdcb9a0c6f95ca094af9d2239b44663c3bbc9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002, 2006 GEBIT Gesellschaft fuer EDV-Beratung
* und Informatik-Technologien mbH,
* Berlin, Duesseldorf, Frankfurt (Germany) 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:
* GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial API and implementation
* IBM Corporation - bug 32890, bug 24108, bug 111740
* John-Mason P. Shackelford - bug 57379
*******************************************************************************/
package org.eclipse.ant.internal.ui.editor.text;
/*
* This file originates from an internal package of Eclipse's
* Manifest Editor. It has been copied by GEBIT to here in order to
* permanently use those features. It has been renamed and edited by GEBIT
* after copying.
*/
import org.eclipse.jface.text.rules.IPredicateRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.MultiLineRule;
import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
import org.eclipse.jface.text.rules.Token;
/**
* Scanner that scans the document and partitions the document into the four
* supported content types:
* <ul>
* <li>XML_COMMENT</li>
* <li>XML_TAG</li>
* <li>XML_CDATA</li>
* <li>XML_DTD</li>
* </ul>
*/
public class AntEditorPartitionScanner extends RuleBasedPartitionScanner {
public final static String XML_COMMENT = "__xml_comment"; //$NON-NLS-1$
public final static String XML_TAG = "__xml_tag"; //$NON-NLS-1$
public final static String XML_CDATA = "__xml_cdata"; //$NON-NLS-1$
public final static String XML_DTD = "__xml_dtd"; //$NON-NLS-1$
/**
* Creates an instance.
*/
public AntEditorPartitionScanner() {
IPredicateRule[] rules =new IPredicateRule[4];
IToken xmlCDATA = new Token(XML_CDATA);
rules[0]= new MultiLineRule("<![CDATA[", "]]>", xmlCDATA); //$NON-NLS-1$ //$NON-NLS-2$
IToken xmlComment = new Token(XML_COMMENT);
rules[1]= new MultiLineRule("<!--", "-->", xmlComment, '\\', true); //$NON-NLS-1$ //$NON-NLS-2$
IToken tag = new Token(XML_TAG);
rules[2]= new TagRule(tag);
IToken xmlDTD = new Token(XML_DTD);
rules[3]= new DocTypeRule(xmlDTD);
setPredicateRules(rules);
}
}