1 11 12 package org.eclipse.ant.internal.ui.editor.text; 13 14 import org.eclipse.jface.text.rules.ICharacterScanner; 15 import org.eclipse.jface.text.rules.IToken; 16 import org.eclipse.jface.text.rules.MultiLineRule; 17 18 public class DocTypeRule extends MultiLineRule { 19 20 private int fEmbeddedStart= 0; 21 22 public DocTypeRule(IToken token) { 23 super("<!DOCTYPE", ">", token); } 25 26 31 protected boolean endSequenceDetected(ICharacterScanner scanner) { 32 int c; 33 while ((c = scanner.read()) != ICharacterScanner.EOF) { 34 if (c == fEscapeCharacter) { 35 scanner.read(); 37 } else if (c == '<') { 38 fEmbeddedStart++; 39 } else if (c == '>') { 40 if (fEmbeddedStart == 0) { 41 return true; 42 } 43 fEmbeddedStart--; 44 } 45 } 46 47 scanner.unread(); 48 return false; 49 } 50 } | Popular Tags |