]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/typoscript.xml
b9a705b0e47fc5451042ff6177459120ddd9a3a0
[factor.git] / basis / xmode / modes / typoscript.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <!-- TypoScript syntax highlighting, by Neil Bertram <neil@tasmanstudios.co.nz>\r
6         Based on Kasper's highlighter in ExtDevEval and his "TypoScript Syntax and In-depth Study"\r
7         available at http://typo3.org/documentation/document-library/doc_core_ts/\r
8 \r
9   -->\r
10 \r
11 <MODE>\r
12         <PROPS>\r
13                 <PROPERTY NAME="lineComment" VALUE="#"/>\r
14                 <PROPERTY NAME="lineComment" VALUE="/"/>\r
15                 <PROPERTY NAME="commentStart" VALUE="/*"/>\r
16                 <PROPERTY NAME="commentEnd" VALUE="*/"/>\r
17                 <PROPERTY NAME="indentOpenBrackets" VALUE="({"/>\r
18                 <PROPERTY NAME="indentCloseBrackets" VALUE=")}"/>\r
19                 <PROPERTY NAME="lineUpClosingBracket" VALUE="true"/>\r
20         </PROPS>\r
21         <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="FALSE" NO_WORD_SEP=":" DEFAULT="MARKUP">\r
22                 <!-- Include statement (<INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/html/mainmenu_typoscript.txt">) -->\r
23                 <SPAN TYPE="KEYWORD4" NO_LINE_BREAK="TRUE" AT_LINE_START="TRUE">\r
24                         <BEGIN>&lt;INCLUDE</BEGIN>\r
25                         <END>&gt;</END>\r
26                 </SPAN>\r
27 \r
28                 <!-- Assignments (using the = operator) are delegated to the assignment rule for more flexibility -->\r
29                 <EOL_SPAN TYPE="OPERATOR" DELEGATE="typoscript::assignment" AT_LINE_START="FALSE" AT_WHITESPACE_END="FALSE">=</EOL_SPAN>\r
30 \r
31                 <!-- Multi-line assignments (using the (blah blah) syntax) -->\r
32                 <SPAN TYPE="OPERATOR" AT_LINE_START="FALSE" NO_LINE_BREAK="FALSE" DELEGATE="typoscript::assignment">\r
33                         <BEGIN>(</BEGIN>\r
34                         <END>)</END>\r
35                 </SPAN>\r
36 \r
37                 <!-- Object copies (using the < operator)\r
38                         Note that object references (=<) are not highlighted due to the fact\r
39                         that they're only supported by the core template engine, and not\r
40                         actually a feature of typoscript itself\r
41                   -->\r
42                 <EOL_SPAN TYPE="OPERATOR" AT_LINE_START="FALSE" DELEGATE="typoscript::copy">&lt;</EOL_SPAN>\r
43 \r
44                 <!-- Comments\r
45                         - note that block comments must start/end at the beginning of the trimmed line\r
46                           but this is difficult to accomplish here, so we just force it to be line-start\r
47                   -->\r
48                 <EOL_SPAN AT_WORD_START="TRUE" TYPE="COMMENT4">#</EOL_SPAN>\r
49                 <SPAN TYPE="COMMENT1" NO_LINE_BREAK="FALSE" AT_LINE_START="TRUE">\r
50                         <BEGIN>/*</BEGIN>\r
51                         <END>*/</END>\r
52                 </SPAN>\r
53                 <EOL_SPAN AT_WORD_START="TRUE" TYPE="COMMENT2">/</EOL_SPAN>\r
54 \r
55                 <!-- Conditionals (anything inside square brackets at a word start -->\r
56                 <SPAN TYPE="KEYWORD1" NO_LINE_BREAK="TRUE" AT_WORD_START="TRUE">\r
57                         <BEGIN>[</BEGIN>\r
58                         <END>]</END>\r
59                 </SPAN>\r
60 \r
61                 <!-- Special characters that haven't been caught yet -->\r
62                 <SEQ TYPE="NULL">{</SEQ>\r
63                 <SEQ TYPE="NULL">}</SEQ>\r
64                 <SEQ TYPE="NULL">(</SEQ>\r
65                 <SEQ TYPE="NULL">)</SEQ>\r
66         </RULES>\r
67 \r
68         <!-- Rule for both single and multi-line assignments -->\r
69         <RULES SET="assignment" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="FALSE" DEFAULT="LITERAL1">\r
70                 <!-- TypoScript constants inserted with {$blah} are highlighted -->\r
71                 <SPAN TYPE="LABEL" AT_WORD_START="FALSE" AT_LINE_START="FALSE">\r
72                         <BEGIN>{$</BEGIN>\r
73                         <END>}</END>\r
74                 </SPAN>\r
75         </RULES>\r
76 \r
77         <!-- Rule for object copies -->\r
78         <RULES SET="copy" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="FALSE" DEFAULT="KEYWORD2">\r
79                 <!-- nothing right now -->\r
80         </RULES>\r
81 </MODE>\r