|
12 | 12 |
|
13 | 13 |
|
14 | 14 | TEMPLATE = r'''
|
15 |
| -package lexers |
| 15 | +package {{package}} |
16 | 16 |
|
17 | 17 | import (
|
18 |
| - . "github.com/alecthomas/chroma" // nolint |
19 |
| - "github.com/alecthomas/chroma/lexers/internal" |
| 18 | + . "github.com/alecthomas/chroma" // nolint |
| 19 | + "github.com/alecthomas/chroma/lexers/internal" |
20 | 20 | )
|
21 | 21 |
|
22 | 22 | // {{upper_name}} lexer.
|
23 | 23 | var {{upper_name}} = internal.Register(MustNewLazyLexer(
|
24 |
| - &Config{ |
25 |
| - Name: "{{name}}", |
26 |
| - Aliases: []string{ {{#aliases}}"{{.}}", {{/aliases}} }, |
27 |
| - Filenames: []string{ {{#filenames}}"{{.}}", {{/filenames}} }, |
28 |
| - MimeTypes: []string{ {{#mimetypes}}"{{.}}", {{/mimetypes}} }, |
| 24 | + &Config{ |
| 25 | + Name: "{{name}}", |
| 26 | + {{=<% %>=}} |
| 27 | + Aliases: []string{<%#aliases%>"<%.%>", <%/aliases%>}, |
| 28 | + Filenames: []string{<%#filenames%>"<%.%>", <%/filenames%>}, |
| 29 | + MimeTypes: []string{<%#mimetypes%>"<%.%>", <%/mimetypes%>}, |
| 30 | + <%={{ }}=%> |
29 | 31 | {{#re_not_multiline}}
|
30 |
| - NotMultiline: true, |
| 32 | + NotMultiline: true, |
31 | 33 | {{/re_not_multiline}}
|
32 | 34 | {{#re_dotall}}
|
33 |
| - DotAll: true, |
| 35 | + DotAll: true, |
34 | 36 | {{/re_dotall}}
|
35 | 37 | {{#re_ignorecase}}
|
36 |
| - CaseInsensitive: true, |
| 38 | + CaseInsensitive: true, |
37 | 39 | {{/re_ignorecase}}
|
38 |
| - }, |
39 |
| - func() Rules { |
40 |
| - return Rules{ |
| 40 | + }, |
| 41 | + func() Rules { |
| 42 | + return Rules{ |
41 | 43 | {{#tokens}}
|
42 |
| - "{{state}}": { |
43 |
| - {{#rules}} |
44 |
| - {{{.}}}, |
45 |
| - {{/rules}} |
46 |
| - }, |
| 44 | + "{{state}}": { |
| 45 | + {{#rules}} |
| 46 | + {{{.}}}, |
| 47 | + {{/rules}} |
| 48 | + }, |
47 | 49 | {{/tokens}}
|
48 |
| - } |
49 |
| - }, |
| 50 | + } |
| 51 | + }, |
50 | 52 | ))
|
51 | 53 | '''
|
52 | 54 |
|
@@ -150,7 +152,7 @@ def translate_rules(rules):
|
150 | 152 | modifier = 'Push("%s")' % '", "'.join(rule[2])
|
151 | 153 | else:
|
152 | 154 | raise ValueError('unsupported modifier %r' % (rule[2],))
|
153 |
| - out.append('{{ {}, {}, {} }}'.format(regex, emitter, modifier)) |
| 155 | + out.append('{{{}, {}, {}}}'.format(regex, emitter, modifier)) |
154 | 156 | elif isinstance(rule, pygments_lexer.include):
|
155 | 157 | out.append('Include("{}")'.format(rule))
|
156 | 158 | elif isinstance(rule, pygments_lexer.default):
|
@@ -185,9 +187,10 @@ def main():
|
185 | 187 | assert issubclass(lexer_cls, pygments_lexer.RegexLexer), 'can only translate from RegexLexer'
|
186 | 188 |
|
187 | 189 | print(pystache.render(TEMPLATE, TemplateView(
|
| 190 | + package=lexer_cls.name.lower()[0], |
188 | 191 | name=lexer_cls.name,
|
189 | 192 | regex_flags=lexer_cls.flags,
|
190 |
| - upper_name=to_camel_case(lexer_cls.name), |
| 193 | + upper_name=to_camel_case(re.sub(r'\W', '_', lexer_cls.name)), |
191 | 194 | aliases=lexer_cls.aliases,
|
192 | 195 | filenames=lexer_cls.filenames,
|
193 | 196 | mimetypes=lexer_cls.mimetypes,
|
|
0 commit comments