public class HTMLSyntaxHighlighter extends Object
The main method is process(String, Node)
.
NOTE: There should be a more elegant and stable way to achieve this, e.g. by creating a specialized LogicPrinter. However, this is a very involved job to do since all kinds of changes would have to performed to other classes, for instance to maintain a correct position table in the sequent view.
Modifier and Type | Class and Description |
---|---|
private static interface |
HTMLSyntaxHighlighter.StringTransformer
Simple interface as a replacement for a lambda realizing a String
transformation.
|
Modifier and Type | Field and Description |
---|---|
private static String |
DELIMITERS_REGEX |
private static String[] |
DYNAMIC_LOGIC_KEYWORDS |
static Pattern |
DYNAMIC_LOGIC_KEYWORDS_PATTERN |
private static String |
DYNAMIC_LOGIC_KEYWORDS_REGEX |
private static String |
DYNAMIC_LOGIC_KEYWORDS_REPLACEMENT |
private static String[] |
JAVA_KEYWORDS |
private static Pattern |
JAVA_KEYWORDS_PATTERN |
static String |
JAVA_KEYWORDS_REGEX |
private static String |
JAVA_KEYWORDS_REPLACEMENT |
private static Pattern |
MODALITY_PATTERN |
private static int |
NUM_FORMULAE_IN_SEQ_THRESHOLD |
private static int |
NUM_PROGVAR_THRESHOLD |
private static String |
PROGVAR_REPLACEMENT |
private static String[] |
PROP_LOGIC_KEYWORDS |
static Pattern |
PROP_LOGIC_KEYWORDS_PATTERN |
private static String |
PROP_LOGIC_KEYWORDS_REGEX |
private static String |
PROP_LOGIC_KEYWORDS_REPLACEMENT |
Constructor and Description |
---|
HTMLSyntaxHighlighter(HTMLDocument document)
Creates a new
HTMLSyntaxHighlighter for this HTMLDocument. |
Modifier and Type | Method and Description |
---|---|
private String |
addSyntaxHighlighting(String htmlString,
Iterable<? extends ProgramVariable> programVariables)
Adds syntax highlighting to the given HTML String.
|
static String |
concat(String... strings)
Concatenates the given Strings using a
StringBuilder . |
private static String |
concat(String delim,
Iterable<? extends Object> strings)
Concatenates the given String array where the elements are separated by
the given delimiter in the result String.
|
private static String |
concat(String delim,
Iterable<? extends Object> strings,
HTMLSyntaxHighlighter.StringTransformer strTransformer)
Concatenates the given String array where the elements are separated by
the given delimiter in the result String.
|
String |
process(String plainTextString,
Node displayedNode)
Computes a String for the given plain text where HTML elements have been
escaped and syntax highlighting has been added.
|
private static String |
toHTML(String plainTextString)
Shortcut for
LogicPrinter.escapeHTML(String, boolean) . |
private static final int NUM_FORMULAE_IN_SEQ_THRESHOLD
private static final int NUM_PROGVAR_THRESHOLD
private static final String[] PROP_LOGIC_KEYWORDS
private static final String PROP_LOGIC_KEYWORDS_REGEX
public static final Pattern PROP_LOGIC_KEYWORDS_PATTERN
private static final String PROP_LOGIC_KEYWORDS_REPLACEMENT
private static final String[] DYNAMIC_LOGIC_KEYWORDS
private static final String DYNAMIC_LOGIC_KEYWORDS_REGEX
public static final Pattern DYNAMIC_LOGIC_KEYWORDS_PATTERN
private static final String DYNAMIC_LOGIC_KEYWORDS_REPLACEMENT
private static final String[] JAVA_KEYWORDS
public static final String JAVA_KEYWORDS_REGEX
private static final String DELIMITERS_REGEX
private static final Pattern JAVA_KEYWORDS_PATTERN
private static final Pattern MODALITY_PATTERN
private static final String JAVA_KEYWORDS_REPLACEMENT
private static final String PROGVAR_REPLACEMENT
public HTMLSyntaxHighlighter(HTMLDocument document)
HTMLSyntaxHighlighter
for this HTMLDocument.document
- The HTMLDocument
of the parent JEditorPane
.
Used to add CSS rules.public String process(String plainTextString, Node displayedNode)
plainTextString
- The String to add syntax highlighting to.displayedNode
- The node the sequent of which should be augmented with syntax
highlighting.private String addSyntaxHighlighting(String htmlString, Iterable<? extends ProgramVariable> programVariables)
htmlString
- The HTML String to add syntax highlighting tags to.programVariables
- The program variables to highlight.private static String toHTML(String plainTextString)
LogicPrinter.escapeHTML(String, boolean)
.plainTextString
- The String to transform.private static String concat(String delim, Iterable<? extends Object> strings)
delim
- Delimiter for the elements in the array.strings
- Strings to concatenate.private static String concat(String delim, Iterable<? extends Object> strings, HTMLSyntaxHighlighter.StringTransformer strTransformer)
delim
- Delimiter for the elements in the array.strings
- Strings to concatenate.strTransformer
- Transformation applied to the input Strings before
the concatenation is performed.public static String concat(String... strings)
StringBuilder
.strings
- Strings to concatenate.