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