public class HTMLSyntaxHighlighter
extends java.lang.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 java.lang.String |
DELIMITERS_REGEX |
private static java.lang.String[] |
DYNAMIC_LOGIC_KEYWORDS |
static java.util.regex.Pattern |
DYNAMIC_LOGIC_KEYWORDS_PATTERN |
private static java.lang.String |
DYNAMIC_LOGIC_KEYWORDS_REGEX |
private static java.lang.String |
DYNAMIC_LOGIC_KEYWORDS_REPLACEMENT |
private static java.lang.String[] |
JAVA_KEYWORDS |
private static java.util.regex.Pattern |
JAVA_KEYWORDS_PATTERN |
static java.lang.String |
JAVA_KEYWORDS_REGEX |
private static java.lang.String |
JAVA_KEYWORDS_REPLACEMENT |
private static java.util.regex.Pattern |
MODALITY_PATTERN |
private static int |
NUM_FORMULAE_IN_SEQ_THRESHOLD |
private static int |
NUM_PROGVAR_THRESHOLD |
private static java.lang.String |
PROGVAR_REPLACEMENT |
private static java.lang.String[] |
PROP_LOGIC_KEYWORDS |
static java.util.regex.Pattern |
PROP_LOGIC_KEYWORDS_PATTERN |
private static java.lang.String |
PROP_LOGIC_KEYWORDS_REGEX |
private static java.lang.String |
PROP_LOGIC_KEYWORDS_REPLACEMENT |
private static java.util.regex.Pattern |
SINGLE_LINE_COMMENT_PATTERN |
private static java.lang.String |
SINGLE_LINE_COMMENT_REPLACEMENT |
Constructor and Description |
---|
HTMLSyntaxHighlighter(javax.swing.text.html.HTMLDocument document)
Creates a new
HTMLSyntaxHighlighter for this HTMLDocument. |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
addSyntaxHighlighting(java.lang.String htmlString,
java.lang.Iterable<? extends IProgramVariable> programVariables)
Adds syntax highlighting to the given HTML String.
|
static java.lang.String |
concat(java.lang.String... strings)
Concatenates the given Strings using a
StringBuilder . |
private static java.lang.String |
concat(java.lang.String delim,
java.lang.Iterable<? extends java.lang.Object> strings)
Concatenates the given String array where the elements are separated by
the given delimiter in the result String.
|
private static java.lang.String |
concat(java.lang.String delim,
java.lang.Iterable<? extends java.lang.Object> strings,
HTMLSyntaxHighlighter.StringTransformer strTransformer)
Concatenates the given String array where the elements are separated by
the given delimiter in the result String.
|
java.lang.String |
process(java.lang.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 java.lang.String |
toHTML(java.lang.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 java.lang.String[] PROP_LOGIC_KEYWORDS
private static final java.lang.String PROP_LOGIC_KEYWORDS_REGEX
public static final java.util.regex.Pattern PROP_LOGIC_KEYWORDS_PATTERN
private static final java.lang.String PROP_LOGIC_KEYWORDS_REPLACEMENT
private static final java.lang.String[] DYNAMIC_LOGIC_KEYWORDS
private static final java.lang.String DYNAMIC_LOGIC_KEYWORDS_REGEX
public static final java.util.regex.Pattern DYNAMIC_LOGIC_KEYWORDS_PATTERN
private static final java.lang.String DYNAMIC_LOGIC_KEYWORDS_REPLACEMENT
private static final java.lang.String[] JAVA_KEYWORDS
public static final java.lang.String JAVA_KEYWORDS_REGEX
private static final java.lang.String DELIMITERS_REGEX
private static final java.util.regex.Pattern JAVA_KEYWORDS_PATTERN
private static final java.util.regex.Pattern MODALITY_PATTERN
private static final java.lang.String JAVA_KEYWORDS_REPLACEMENT
private static final java.lang.String PROGVAR_REPLACEMENT
private static final java.util.regex.Pattern SINGLE_LINE_COMMENT_PATTERN
private static final java.lang.String SINGLE_LINE_COMMENT_REPLACEMENT
public HTMLSyntaxHighlighter(javax.swing.text.html.HTMLDocument document)
HTMLSyntaxHighlighter
for this HTMLDocument.document
- The HTMLDocument
of the parent JEditorPane
.
Used to add CSS rules.public java.lang.String process(java.lang.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 java.lang.String addSyntaxHighlighting(java.lang.String htmlString, java.lang.Iterable<? extends IProgramVariable> programVariables)
htmlString
- The HTML String to add syntax highlighting tags to.programVariables
- The program variables to highlight.private static java.lang.String toHTML(java.lang.String plainTextString)
LogicPrinter.escapeHTML(String, boolean)
.plainTextString
- The String to transform.private static java.lang.String concat(java.lang.String delim, java.lang.Iterable<? extends java.lang.Object> strings)
delim
- Delimiter for the elements in the array.strings
- Strings to concatenate.private static java.lang.String concat(java.lang.String delim, java.lang.Iterable<? extends java.lang.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 java.lang.String concat(java.lang.String... strings)
StringBuilder
.strings
- Strings to concatenate.