package org.basex.gui.layout; import static org.basex.data.DataText.*; import static org.basex.gui.GUIConstants.*; import java.awt.Color; /** * This class defines syntax highlighting for XML files. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class XMLSyntax extends BaseXSyntax { /** Last quote. */ private int quote; /** Tag flag. */ private boolean tag; /** Flag for printing element name. */ private boolean elem; @Override public void init() { quote = 0; tag = false; } @Override public Color getColor(final BaseXTextTokens text) { final int ch = text.curr(); if(tag) { if(quote != 0) { if(quote == ch) quote = 0; return RED; } if(ch == '"' || ch == '\'') { quote = ch; return RED; } if(ch == '>') tag = false; if(ch == '=' || ch == '>' || ch == '/') return BLUE; if(elem) { if(ch <= ' ') elem = false; return BLUE; } return PINK; } if(ch == '<') { tag = true; elem = true; return BLUE; } return Color.black; } @Override public byte[] commentOpen() { return COMM_O; } @Override public byte[] commentEnd() { return COMM_C; } }