lexrupy / gmate

Gedit Plugins, Colorschemes and GtkSourceview Improvements to Gedit

This URL has Read+Write access

gmate / lang-specs / mako.lang
100644 128 lines (111 sloc) 4.213 kb
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
<?xml version="1.0" encoding="UTF-8"?>
<!--
 Authors: Joost de Mes <joost.demes@surfnet.nl>
 Copyright (C) 2007 Nobody
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Library General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later version.
 
 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
 License along with this library; if not, write to the
 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.
 
-->
<language id="mako" _name="Mako" version="2.0" _section="Scripts">
<metadata>
<property name="mimetypes">application/mako;text/mako</property>
<property name="globs">*.mako</property>
</metadata>
 
<styles>
<style id="mako-close-control" _name="Mako control loop close" map-to="def:keyword"/>
<style id="mako-function" _name="Mako Function" map-to="def:keyword"/>
</styles>
 
<definitions>
<define-regex id="makofunctionname">(page|include|def|namespace|inherit|call|doc|text)</define-regex>
 
<context id="mako-close-control" style-ref="mako-close-control">
<keyword>endif</keyword>
<keyword>endfor</keyword>
<keyword>endwhile</keyword>
</context>
 
<context id="embedded-python-block-ltgt" end-at-line-end="false">
<start>^&lt;%$</start>
<end>^%&gt;$</end>
<include>
<context sub-pattern="0" where="start" style-ref="mako-function"/>
<context sub-pattern="0" where="end" style-ref="mako-function"/>
<context ref="python:python"/>
</include>
</context>
 
<context id="embedded-python-block-perc" end-at-line-end="true">
<start>^[\s]*%[\s]+</start>
<include>
<context sub-pattern="0" where="start" style-ref="mako-function"/>
<context ref="python:python"/>
<context ref="mako-close-control"/>
</include>
</context>
 
<context id="embedded-python-block-str" end-at-line-end="false">
<start>\${</start>
<end>}</end>
<include>
<context sub-pattern="0" where="start" style-ref="mako-function"/>
<context sub-pattern="0" where="end" style-ref="mako-function"/>
<context ref="python:python"/>
</include>
</context>
 
<context id="mako-function-start-tag">
<start>&lt;%\%{makofunctionname}(?!/)</start>
<end>/?&gt;</end>
<include>
<context sub-pattern="0" where="start" style-ref="mako-function"/>
<context sub-pattern="0" where="end" style-ref="mako-function"/>
<context ref="xml:entity"/>
<context ref="xml:character-reference"/>
<context ref="xml:unallowed-chars"/>
<context ref="xml:namespace"/>
<context ref="xml:element-name"/>
<context ref="xml:attribute-name"/>
<context ref="xml:attribute-value"/>
<context style-ref="xml:error" extend-parent="false">
<match>\S</match>
</context>
</include>
</context>
 
<context id="mako-function-end-tag">
<start>&lt;/%\%{makofunctionname}</start>
<end>&gt;</end>
<include>
<context sub-pattern="0" where="start" style-ref="mako-function"/>
<context sub-pattern="0" where="end" style-ref="mako-function"/>
<context ref="xml:entity"/>
<context ref="xml:character-reference"/>
<context ref="xml:unallowed-chars"/>
<context ref="xml:namespace"/>
<context ref="xml:element-name"/>
<context style-ref="xml:error" extend-parent="false">
<match>\S</match>
</context>
</include>
</context>
 
 
<context id="mako-block">
<include>
<context ref="embedded-python-block-ltgt"/>
<context ref="embedded-python-block-perc"/>
<context ref="embedded-python-block-str"/>
<context ref="mako-function-start-tag" />
<context ref="mako-function-end-tag" />
</include>
</context>
 
<replace id="html:embedded-lang-hook" ref="mako-block"/>
 
<context id="mako">
<include>
<context ref="html:html"/>
<context ref="mako-block"/>
</include>
</context>
</definitions>
</language>