summaryrefslogtreecommitdiffstats
path: root/kate/data/context.xml
blob: ebd3faaa453ee0e0c1210c1ca3ce711680c77d75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="ConTeXt" version="1.1" section="Markup" kateversion="2.3" priority="8" extensions="*.ctx" mimetype="text/x-tex" casesensitive="1" author="Philipp A. ([email protected])" license="GPL" >
	<highlighting>
		<list name="titles">
			<item>\part</item>
			<item>\chapter</item>
			<item>\section</item>
			<item>\subsection</item>
			<item>\subsubsection</item>
			<item>\title</item>
			<item>\subject</item>
			<item>\subsubject</item>
			<item>\subsubsubject</item>
		</list>
		<contexts>
			<!-- Normal text -->
			<context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
				<DetectChar   char="$"               attribute="Block" context="MathMode"/>
				<Detect2Chars char="$" char1="$"     attribute="Block" context="MathModeDisplay"/>
				<RegExpr String="\\math(ematics)?"   attribute="Block" context="MathModeMacroFind"/>
				<StringDetect String="\startformula" attribute="Block" context="MathModeFormula"/>
				<StringDetect String="\starttyping"  attribute="Block" context="Verbatim"/>
				<keyword String="titles"             attribute="Section" context="#stay"/>
				<IncludeRules context="Common"/>
			</context>

			<!-- Macro -->
			<context name="Macro" attribute="Macro" lineEndContext="#stay">
				<RegExpr String="[a-zA-Z_]+[a-zA-Z@_]*" attribute="Macro" context="#pop"/>
				<RegExpr String="[^a-zA-Z_]"            attribute="Macro" context="#pop"/>
			</context>

			<!-- Comment -->
			<context name="Comment" attribute="Comment" lineEndContext="#pop">
				<RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
			</context>

			<!-- Math Modes -->
			<context name="MathMode" attribute="Math" lineEndContext="#pop">
				<DetectChar   char="$"               attribute="Block" context="#pop"/>
				<Detect2Chars char="$" char1="$"     attribute="Error" context="#stay"/>
				<StringDetect String="\stopformula"  attribute="Error" context="#stay"/>
				<IncludeRules context="MathModeCommon"/>
			</context>
			<context name="MathModeMacroFind" attribute="Math" lineEndContext="#stay">
				<DetectChar   char="{"               attribute="Brace" context="#popMathModeMacro"/>
			</context>
			<context name="MathModeMacro" attribute="Math" lineEndContext="#stay">
				<DetectChar   char="{"               attribute="Brace" context="MathModeMacro"/>
				<DetectChar   char="}"               attribute="Brace" context="#pop"/>
				<DetectChar   char="$"               attribute="Error" context="#stay"/>
				<Detect2Chars char="$" char1="$"     attribute="Error" context="#stay"/>
				<StringDetect String="\stopformula"  attribute="Error" context="#stay"/>
				<IncludeRules context="MathModeCommon"/>
			</context>
			<context name="MathModeDisplay" attribute="Math" lineEndContext="#stay">
				<DetectChar   char="$"               attribute="Error" context="#stay"/>
				<Detect2Chars char="$" char1="$"     attribute="Block" context="#pop"/>
				<StringDetect String="\stopformula"  attribute="Error" context="#stay"/>
				<IncludeRules context="MathModeCommon"/>
			</context>
			<context name="MathModeFormula" attribute="Math" lineEndContext="#stay">
				<DetectChar   char="$"               attribute="Error" context="#stay"/>
				<Detect2Chars char="$" char1="$"     attribute="Error" context="#stay"/>
				<StringDetect String="\stopformula"  attribute="Block" context="#pop"/>
				<IncludeRules context="MathModeCommon"/>
			</context>
			<context name="MathModeCommon" attribute="Error" lineEndContext="#stay">
				<DetectChar   char="^"               attribute="Brace" context="#stay"/>
				<DetectChar   char="_"               attribute="Brace" context="#stay"/>
				<StringDetect String="\startformula" attribute="Error" context="#stay"/>
				<StringDetect String="\text"         attribute="Block" context="MathModeTextFind"/>
				<IncludeRules context="Common"/>
			</context>
			<!--Math text-->
			<context name="MathModeTextFind" attribute="Normal Text" lineEndContext="#stay" >
				<DetectChar char="{" attribute="Brace" context="#popMathModeText"/>
			</context>
			<context name="MathModeText" attribute="Normal Text" lineEndContext="#stay" >
				<DetectChar char="{" attribute="Brace" context="MathModeText"/>
				<DetectChar char="}" attribute="Brace" context="#pop"/>
				<IncludeRules context="Normal Text"/>
			</context>

			<!--Verbatim TODO: \startC support-->
			<context name="Verbatim" attribute="Verbatim" lineEndContext="#stay">
				<StringDetect String="\stoptyping"  attribute="Block" context="#pop"/>
			</context>

			<!--Common-->
			<context name="Common" attribute="Error" lineEndContext="#stay">
				<DetectChar char="%" attribute="Comment" context="Comment"/>
				<RegExpr String="\\start([a-zA-Z_]+)" attribute="Block" context="#stay" beginRegion="block"/>
				<RegExpr String="\\stop([a-zA-Z_]+)"  attribute="Block" context="#stay" endRegion="block"/>
				<DetectChar char="\" attribute="Macro"   context="Macro"/>
				<DetectChar char="{" attribute="Brace"   context="#stay" beginRegion="block"/>
				<DetectChar char="}" attribute="Brace"   context="#stay" endRegion="block"/>
			</context>
		</contexts>

		<itemDatas>
			<itemData name="Normal Text" defStyleNum="dsNormal"                            /><!--(Hi, I’m text)-->
			<itemData name="Comment"     defStyleNum="dsComment"                           /><!--(%Comment)-->
			<itemData name="Section"     defStyleNum="dsKeyword"                           /><!--\section{(Fancy!)}-->
			<itemData name="Alert"       defStyleNum="dsAlert"        spellChecking="false"/><!--%(TODO):do sth.!-->
			<itemData name="Brace"       defStyleNum="dsChar"         spellChecking="false"/><!--({})-->
			<itemData name="Math"        defStyleNum="dsOthers"       spellChecking="false"/><!--($5$)-->
			<itemData name="Macro"       defStyleNum="dsFunction"     spellChecking="false"/><!--(\foo)-->
			<itemData name="Label Ref"   defStyleNum="dsRegionMarker" spellChecking="false"/><!--\placeWUTEVA[(spam)], \ref[(spam)]-->
			<itemData name="Block"       defStyleNum="dsRegionMarker" spellChecking="false"/><!--\start(bar), \stop(bar)-->
			<itemData name="Error"       defStyleNum="dsError"        spellChecking="false"/><!--$($$)-->
			<itemData name="Verbatim"    defStyleNum="dsString"       spellChecking="false"/><!--\starttyping(eggs)\stoptyping, \definetyping[C] \startC(umm…)\stopC-->
		</itemDatas>
	</highlighting>

	<general>
		<keywords weakDeliminator="\" wordWrapDeliminator=",{}[]"/>
		<comments>
			<comment name="singleLine" start="%" />
		</comments>
	</general>

	<spellchecking>
		<configuration encodingReplacementPolicy="EncodeWhenPresent"/>
		<encodings>
			<encoding string="''" ignored="true" />
		</encodings>
	</spellchecking>
</language>

<!-- kate: space-indent off; indent-width 4; -->