diff -ru jEdit/org/gjt/sp/jedit/Buffer.java jEdit-patched/org/gjt/sp/jedit/Buffer.java
--- jEdit/org/gjt/sp/jedit/Buffer.java 2010-05-09 14:29:25.000000000 +0200
+++ jEdit-patched/org/gjt/sp/jedit/Buffer.java 2011-06-18 18:28:19.000000000 +0200
@@ -2232,7 +2232,7 @@
start = next;
token = token.next;
}
- if (token.id == Token.END || token.id == Token.NULL)
+ if (token.id == Token.END || (token.id % Token.ID_COUNT) == Token.NULL)
{
JOptionPane.showMessageDialog(jEdit.getActiveView(),
jEdit.getProperty("syntax-style-no-token.message"),
diff -ru jEdit/org/gjt/sp/jedit/syntax/Token.java jEdit-patched/org/gjt/sp/jedit/syntax/Token.java
--- jEdit/org/gjt/sp/jedit/syntax/Token.java 2010-05-09 14:29:24.000000000 +0200
+++ jEdit-patched/org/gjt/sp/jedit/syntax/Token.java 2011-06-18 18:28:10.000000000 +0200
@@ -57,7 +57,7 @@
*/
public static String tokenToString(byte token)
{
- return (token == Token.END) ? "END" : TOKEN_TYPES[token];
+ return (token == Token.END) ? "END" : TOKEN_TYPES[token % ID_COUNT];
} //}}}
//{{{ Token types
diff -ru jEdit/org/gjt/sp/util/SyntaxUtilities.java jEdit-patched/org/gjt/sp/util/SyntaxUtilities.java
--- jEdit/org/gjt/sp/util/SyntaxUtilities.java 2010-05-09 14:29:29.000000000 +0200
+++ jEdit-patched/org/gjt/sp/util/SyntaxUtilities.java 2011-06-19 21:24:41.000000000 +0200
@@ -26,6 +26,7 @@
//{{{ Imports
import java.awt.Color;
import java.awt.Font;
+import java.awt.font.TextAttribute;
import java.util.Locale;
import java.util.StringTokenizer;
import org.gjt.sp.jedit.syntax.SyntaxStyle;
@@ -194,6 +195,22 @@
}
/**
+ * Style with sub/superscript font attribute.
+ */
+ public static SyntaxStyle scriptStyle(SyntaxStyle style, int script)
+ {
+ java.util.Map attributes = new java.util.HashMap();
+ attributes.put(TextAttribute.SUPERSCRIPT, new Integer(script));
+ return new SyntaxStyle(style.getForegroundColor(), style.getBackgroundColor(),
+ style.getFont().deriveFont(attributes));
+ }
+
+ public static SyntaxStyle boldStyle(SyntaxStyle style) {
+ return new SyntaxStyle(style.getForegroundColor(), style.getBackgroundColor(),
+ style.getFont().deriveFont(Font.BOLD));
+ }
+
+ /**
* Loads the syntax styles from the properties, giving them the specified
* base font family and size.
* @param family The font family
@@ -203,10 +220,10 @@
*/
public static SyntaxStyle[] loadStyles(String family, int size, boolean color)
{
- SyntaxStyle[] styles = new SyntaxStyle[Token.ID_COUNT];
+ SyntaxStyle[] styles = new SyntaxStyle[4 * Token.ID_COUNT + 1];
// start at 1 not 0 to skip Token.NULL
- for(int i = 1; i < styles.length; i++)
+ for(int i = 1; i < Token.ID_COUNT; i++)
{
try
{
@@ -223,6 +240,17 @@
}
}
+ styles[0] = new SyntaxStyle(Color.black, null, new Font(family, 0, size));
+ for(int i = 0; i < Token.ID_COUNT; i++)
+ {
+ styles[i + Token.ID_COUNT] = scriptStyle(styles[i], -1);
+ styles[i + 2 * Token.ID_COUNT] = scriptStyle(styles[i], 1);
+ styles[i + 3 * Token.ID_COUNT] = boldStyle(styles[i]);
+ }
+ styles[0] = null;
+ styles[4 * Token.ID_COUNT] =
+ new SyntaxStyle(Color.white, null, new Font(family, 0, 1));
+
return styles;
} //}}}