Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / basis / xmode / README.txt
blob07d56dd8777790eb106b734aaa035382836868e4
1 This is a Factor port of the jEdit 4.3 syntax highlighting engine
2 (http://www.jedit.org).
4 jEdit 1.2, released in late 1998, was the first release to support
5 syntax highlighting. It featured a small number of hand-coded
6 "token markers" -- simple incremental parers -- all based on the
7 original JavaTokenMarker contributed by Tal Davidson.
9 Around the time of jEdit 1.5 in 1999, Mike Dillon began developing a
10 jEdit plugin named "XMode". This plugin implemented a generic,
11 rule-driven token marker which read mode descriptions from XML files.
12 XMode eventually matured to the point where it could replace the
13 formerly hand-coded token markers.
15 With the release of jEdit 2.4, I merged XMode into the core and
16 eliminated the old hand-coded token markers.
18 XMode suffers from a somewhat archaic design, and was written at a time
19 when Java VMs with JIT compilers were relatively uncommon, object
20 allocation was expensive, and heap space tight. As a result the parser
21 design is less general than it could be.
23 Furthermore, the parser has a few bugs which some mode files have come
24 to depend on:
26 - If a RULES tag does not define any keywords or rules, then its
27   NO_WORD_SEP attribute is ignored.
29   The Factor implementation duplicates this behavior.
31 - if a RULES tag does not have a NO_WORD_SEP attribute, then
32   it inherits the value of the NO_WORD_SEP attribute from the previous
33   RULES tag.
35   The Factor implementation does not duplicate this behavior. If you
36   find a mode file which depends on this flaw, please fix it and submit
37   the changes to the jEdit project.
39 - References to non-existent rule sets in IMPORT tags and DELEGATE
40   attributes were ignored in jEdit. They raise an error in Factor.
42 If you wish to contribute a new or improved mode file, please contact
43 the jEdit project. Updated mode files in jEdit will be periodically
44 imported into the Factor source tree.