11 package net.sf.gridarta.textedit.textarea;
13 import java.awt.Color;
15 import java.awt.Graphics;
16 import javax.swing.text.Segment;
17 import javax.swing.text.TabExpander;
18 import javax.swing.text.Utilities;
19 import org.jetbrains.annotations.NotNull;
43 public static boolean regionMatches(
final boolean ignoreCase,
final Segment text,
final int offset, @NotNull
final CharSequence match) {
44 final int length = offset + match.length();
45 final char[] textArray = text.array;
46 if (length > text.offset + text.count) {
50 for (
int i = offset, j = 0; i < length; i++, j++) {
51 char c1 = textArray[i];
52 char c2 = match.charAt(j);
54 c1 = Character.toUpperCase(c1);
55 c2 = Character.toUpperCase(c2);
101 public static int paintSyntaxLine(@NotNull
final Segment line, @NotNull
final Iterable<Token> tokens, @NotNull
final SyntaxStyles styles, @NotNull
final TabExpander expander, @NotNull
final Graphics gfx,
final int x,
final int y) {
102 final Font defaultFont = gfx.getFont();
103 final Color defaultColor = gfx.getColor();
106 for (
final Token token : tokens) {
107 final byte id = token.getId();
109 final int length = token.getLength();
111 if (!defaultColor.equals(gfx.getColor())) {
112 gfx.setColor(defaultColor);
114 if (!defaultFont.equals(gfx.getFont())) {
115 gfx.setFont(defaultFont);
118 styles.getStyle(
id).setGraphicsFlags(gfx, defaultFont);
122 xPos = Utilities.drawTabbedText(line, xPos, y, gfx, expander, 0);
123 line.offset += length;