45 lines
1.8 KiB
Plaintext
Executable File
45 lines
1.8 KiB
Plaintext
Executable File
This is a Factor port of the jEdit 4.3 syntax highlighting engine
|
|
(http://www.jedit.org).
|
|
|
|
jEdit 1.2, released in late 1998, was the first release to support
|
|
syntax highlighting. It featured a small number of hand-coded
|
|
"token markers" -- simple incremental parers -- all based on the
|
|
original JavaTokenMarker contributed by Tal Davidson.
|
|
|
|
Around the time of jEdit 1.5 in 1999, Mike Dillon began developing a
|
|
jEdit plugin named "XMode". This plugin implemented a generic,
|
|
rule-driven token marker which read mode descriptions from XML files.
|
|
XMode eventually matured to the point where it could replace the
|
|
formerly hand-coded token markers.
|
|
|
|
With the release of jEdit 2.4, I merged XMode into the core and
|
|
eliminated the old hand-coded token markers.
|
|
|
|
XMode suffers from a somewhat archaic design, and was written at a time
|
|
when Java VMs with JIT compilers were relatively uncommon, object
|
|
allocation was expensive, and heap space tight. As a result the parser
|
|
design is less general than it could be.
|
|
|
|
Furthermore, the parser has a few bugs which some mode files have come
|
|
to depend on:
|
|
|
|
- If a RULES tag does not define any keywords or rules, then its
|
|
NO_WORD_SEP attribute is ignored.
|
|
|
|
The Factor implementation duplicates this behavior.
|
|
|
|
- if a RULES tag does not have a NO_WORD_SEP attribute, then
|
|
it inherits the value of the NO_WORD_SEP attribute from the previous
|
|
RULES tag.
|
|
|
|
The Factor implementation does not duplicate this behavior. If you
|
|
find a mode file which depends on this flaw, please fix it and submit
|
|
the changes to the jEdit project.
|
|
|
|
- References to non-existent rule sets in IMPORT tags and DELEGATE
|
|
attributes were ignored in jEdit. They raise an error in Factor.
|
|
|
|
If you wish to contribute a new or improved mode file, please contact
|
|
the jEdit project. Updated mode files in jEdit will be periodically
|
|
imported into the Factor source tree.
|