eric6/ThirdParty/Pygments/pygments/lexers/templates.py

Tue, 15 Sep 2020 19:09:05 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 15 Sep 2020 19:09:05 +0200
changeset 7701
25f42e208e08
parent 7547
21b0534faebc
child 7983
54c5cfbb1e29
permissions
-rw-r--r--

Pygments: updated to 2.7.0.

7701
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1 # -*- coding: utf-8 -*-
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
3 pygments.lexers.templates
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~~~~~
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
6 Lexers for various template engines' markup.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
8 :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
9 :license: BSD, see LICENSE for details.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
10 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
11
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
12 import re
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
13
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
14 from pygments.lexers.html import HtmlLexer, XmlLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
15 from pygments.lexers.javascript import JavascriptLexer, LassoLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
16 from pygments.lexers.css import CssLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
17 from pygments.lexers.php import PhpLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
18 from pygments.lexers.python import PythonLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
19 from pygments.lexers.perl import PerlLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
20 from pygments.lexers.jvm import JavaLexer, TeaLangLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
21 from pygments.lexers.data import YamlLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
22 from pygments.lexer import Lexer, DelegatingLexer, RegexLexer, bygroups, \
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
23 include, using, this, default, combined
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
24 from pygments.token import Error, Punctuation, Whitespace, \
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
25 Text, Comment, Operator, Keyword, Name, String, Number, Other, Token
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
26 from pygments.util import html_doctype_matches, looks_like_xml
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
27
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
28 __all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
29 'JavascriptPhpLexer', 'ErbLexer', 'RhtmlLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
30 'XmlErbLexer', 'CssErbLexer', 'JavascriptErbLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
31 'SmartyLexer', 'HtmlSmartyLexer', 'XmlSmartyLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
32 'CssSmartyLexer', 'JavascriptSmartyLexer', 'DjangoLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
33 'HtmlDjangoLexer', 'CssDjangoLexer', 'XmlDjangoLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
34 'JavascriptDjangoLexer', 'GenshiLexer', 'HtmlGenshiLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
35 'GenshiTextLexer', 'CssGenshiLexer', 'JavascriptGenshiLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
36 'MyghtyLexer', 'MyghtyHtmlLexer', 'MyghtyXmlLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
37 'MyghtyCssLexer', 'MyghtyJavascriptLexer', 'MasonLexer', 'MakoLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
38 'MakoHtmlLexer', 'MakoXmlLexer', 'MakoJavascriptLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
39 'MakoCssLexer', 'JspLexer', 'CheetahLexer', 'CheetahHtmlLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
40 'CheetahXmlLexer', 'CheetahJavascriptLexer', 'EvoqueLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
41 'EvoqueHtmlLexer', 'EvoqueXmlLexer', 'ColdfusionLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
42 'ColdfusionHtmlLexer', 'ColdfusionCFCLexer', 'VelocityLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
43 'VelocityHtmlLexer', 'VelocityXmlLexer', 'SspLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
44 'TeaTemplateLexer', 'LassoHtmlLexer', 'LassoXmlLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
45 'LassoCssLexer', 'LassoJavascriptLexer', 'HandlebarsLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
46 'HandlebarsHtmlLexer', 'YamlJinjaLexer', 'LiquidLexer',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
47 'TwigLexer', 'TwigHtmlLexer', 'Angular2Lexer', 'Angular2HtmlLexer']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
48
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
49
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
50 class ErbLexer(Lexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
51 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
52 Generic `ERB <http://ruby-doc.org/core/classes/ERB.html>`_ (Ruby Templating)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
53 lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
54
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
55 Just highlights ruby code between the preprocessor directives, other data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
56 is left untouched by the lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
57
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
58 All options are also forwarded to the `RubyLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
59 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
60
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
61 name = 'ERB'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
62 aliases = ['erb']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
63 mimetypes = ['application/x-ruby-templating']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
64
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
65 _block_re = re.compile(r'(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)', re.M)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
66
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
67 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
68 from pygments.lexers.ruby import RubyLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
69 self.ruby_lexer = RubyLexer(**options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
70 Lexer.__init__(self, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
71
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
72 def get_tokens_unprocessed(self, text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
73 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
74 Since ERB doesn't allow "<%" and other tags inside of ruby
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
75 blocks we have to use a split approach here that fails for
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
76 that too.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
77 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
78 tokens = self._block_re.split(text)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
79 tokens.reverse()
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
80 state = idx = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
81 try:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
82 while True:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
83 # text
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
84 if state == 0:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
85 val = tokens.pop()
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
86 yield idx, Other, val
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
87 idx += len(val)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
88 state = 1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
89 # block starts
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
90 elif state == 1:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
91 tag = tokens.pop()
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
92 # literals
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
93 if tag in ('<%%', '%%>'):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
94 yield idx, Other, tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
95 idx += 3
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
96 state = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
97 # comment
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
98 elif tag == '<%#':
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
99 yield idx, Comment.Preproc, tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
100 val = tokens.pop()
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
101 yield idx + 3, Comment, val
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
102 idx += 3 + len(val)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
103 state = 2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
104 # blocks or output
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
105 elif tag in ('<%', '<%=', '<%-'):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
106 yield idx, Comment.Preproc, tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
107 idx += len(tag)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
108 data = tokens.pop()
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
109 r_idx = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
110 for r_idx, r_token, r_value in \
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
111 self.ruby_lexer.get_tokens_unprocessed(data):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
112 yield r_idx + idx, r_token, r_value
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
113 idx += len(data)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
114 state = 2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
115 elif tag in ('%>', '-%>'):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
116 yield idx, Error, tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
117 idx += len(tag)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
118 state = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
119 # % raw ruby statements
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
120 else:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
121 yield idx, Comment.Preproc, tag[0]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
122 r_idx = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
123 for r_idx, r_token, r_value in \
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
124 self.ruby_lexer.get_tokens_unprocessed(tag[1:]):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
125 yield idx + 1 + r_idx, r_token, r_value
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
126 idx += len(tag)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
127 state = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
128 # block ends
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
129 elif state == 2:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
130 tag = tokens.pop()
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
131 if tag not in ('%>', '-%>'):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
132 yield idx, Other, tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
133 else:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
134 yield idx, Comment.Preproc, tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
135 idx += len(tag)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
136 state = 0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
137 except IndexError:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
138 return
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
139
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
140 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
141 if '<%' in text and '%>' in text:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
142 return 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
143
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
144
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
145 class SmartyLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
146 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
147 Generic `Smarty <http://smarty.php.net/>`_ template lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
148
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
149 Just highlights smarty code between the preprocessor directives, other
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
150 data is left untouched by the lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
151 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
152
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
153 name = 'Smarty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
154 aliases = ['smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
155 filenames = ['*.tpl']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
156 mimetypes = ['application/x-smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
157
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
158 flags = re.MULTILINE | re.DOTALL
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
159
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
160 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
161 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
162 (r'[^{]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
163 (r'(\{)(\*.*?\*)(\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
164 bygroups(Comment.Preproc, Comment, Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
165 (r'(\{php\})(.*?)(\{/php\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
166 bygroups(Comment.Preproc, using(PhpLexer, startinline=True),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
167 Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
168 (r'(\{)(/?[a-zA-Z_]\w*)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
169 bygroups(Comment.Preproc, Name.Function, Text), 'smarty'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
170 (r'\{', Comment.Preproc, 'smarty')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
171 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
172 'smarty': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
173 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
174 (r'\{', Comment.Preproc, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
175 (r'\}', Comment.Preproc, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
176 (r'#[a-zA-Z_]\w*#', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
177 (r'\$[a-zA-Z_]\w*(\.\w+)*', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
178 (r'[~!%^&*()+=|\[\]:;,.<>/?@-]', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
179 (r'(true|false|null)\b', Keyword.Constant),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
180 (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
181 r"0[xX][0-9a-fA-F]+[Ll]?", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
182 (r'"(\\\\|\\"|[^"])*"', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
183 (r"'(\\\\|\\'|[^'])*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
184 (r'[a-zA-Z_]\w*', Name.Attribute)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
185 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
186 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
187
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
188 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
189 rv = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
190 if re.search(r'\{if\s+.*?\}.*?\{/if\}', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
191 rv += 0.15
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
192 if re.search(r'\{include\s+file=.*?\}', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
193 rv += 0.15
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
194 if re.search(r'\{foreach\s+.*?\}.*?\{/foreach\}', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
195 rv += 0.15
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
196 if re.search(r'\{\$.*?\}', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
197 rv += 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
198 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
199
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
200
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
201 class VelocityLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
202 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
203 Generic `Velocity <http://velocity.apache.org/>`_ template lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
204
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
205 Just highlights velocity directives and variable references, other
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
206 data is left untouched by the lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
207 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
208
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
209 name = 'Velocity'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
210 aliases = ['velocity']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
211 filenames = ['*.vm', '*.fhtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
212
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
213 flags = re.MULTILINE | re.DOTALL
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
214
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
215 identifier = r'[a-zA-Z_]\w*'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
216
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
217 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
218 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
219 (r'[^{#$]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
220 (r'(#)(\*.*?\*)(#)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
221 bygroups(Comment.Preproc, Comment, Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
222 (r'(##)(.*?$)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
223 bygroups(Comment.Preproc, Comment)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
224 (r'(#\{?)(' + identifier + r')(\}?)(\s?\()',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
225 bygroups(Comment.Preproc, Name.Function, Comment.Preproc, Punctuation),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
226 'directiveparams'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
227 (r'(#\{?)(' + identifier + r')(\}|\b)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
228 bygroups(Comment.Preproc, Name.Function, Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
229 (r'\$!?\{?', Punctuation, 'variable')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
230 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
231 'variable': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
232 (identifier, Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
233 (r'\(', Punctuation, 'funcparams'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
234 (r'(\.)(' + identifier + r')',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
235 bygroups(Punctuation, Name.Variable), '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
236 (r'\}', Punctuation, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
237 default('#pop')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
238 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
239 'directiveparams': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
240 (r'(&&|\|\||==?|!=?|[-<>+*%&|^/])|\b(eq|ne|gt|lt|ge|le|not|in)\b',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
241 Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
242 (r'\[', Operator, 'rangeoperator'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
243 (r'\b' + identifier + r'\b', Name.Function),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
244 include('funcparams')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
245 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
246 'rangeoperator': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
247 (r'\.\.', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
248 include('funcparams'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
249 (r'\]', Operator, '#pop')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
250 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
251 'funcparams': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
252 (r'\$!?\{?', Punctuation, 'variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
253 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
254 (r'[,:]', Punctuation),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
255 (r'"(\\\\|\\"|[^"])*"', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
256 (r"'(\\\\|\\'|[^'])*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
257 (r"0[xX][0-9a-fA-F]+[Ll]?", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
258 (r"\b[0-9]+\b", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
259 (r'(true|false|null)\b', Keyword.Constant),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
260 (r'\(', Punctuation, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
261 (r'\)', Punctuation, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
262 (r'\{', Punctuation, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
263 (r'\}', Punctuation, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
264 (r'\[', Punctuation, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
265 (r'\]', Punctuation, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
266 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
267 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
268
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
269 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
270 rv = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
271 if re.search(r'#\{?macro\}?\(.*?\).*?#\{?end\}?', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
272 rv += 0.25
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
273 if re.search(r'#\{?if\}?\(.+?\).*?#\{?end\}?', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
274 rv += 0.15
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
275 if re.search(r'#\{?foreach\}?\(.+?\).*?#\{?end\}?', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
276 rv += 0.15
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
277 if re.search(r'\$!?\{?[a-zA-Z_]\w*(\([^)]*\))?'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
278 r'(\.\w+(\([^)]*\))?)*\}?', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
279 rv += 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
280 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
281
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
282
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
283 class VelocityHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
284 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
285 Subclass of the `VelocityLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
286 with the `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
287
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
288 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
289
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
290 name = 'HTML+Velocity'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
291 aliases = ['html+velocity']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
292 alias_filenames = ['*.html', '*.fhtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
293 mimetypes = ['text/html+velocity']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
294
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
295 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
296 super().__init__(HtmlLexer, VelocityLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
297
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
298
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
299 class VelocityXmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
300 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
301 Subclass of the `VelocityLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
302 with the `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
303
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
304 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
305
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
306 name = 'XML+Velocity'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
307 aliases = ['xml+velocity']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
308 alias_filenames = ['*.xml', '*.vm']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
309 mimetypes = ['application/xml+velocity']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
310
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
311 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
312 super().__init__(XmlLexer, VelocityLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
313
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
314 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
315 rv = VelocityLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
316 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
317 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
318 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
319
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
320
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
321 class DjangoLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
322 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
323 Generic `django <http://www.djangoproject.com/documentation/templates/>`_
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
324 and `jinja <https://jinja.pocoo.org/jinja/>`_ template lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
325
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
326 It just highlights django/jinja code between the preprocessor directives,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
327 other data is left untouched by the lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
328 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
329
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
330 name = 'Django/Jinja'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
331 aliases = ['django', 'jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
332 mimetypes = ['application/x-django-templating', 'application/x-jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
333
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
334 flags = re.M | re.S
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
335
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
336 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
337 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
338 (r'[^{]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
339 (r'\{\{', Comment.Preproc, 'var'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
340 # jinja/django comments
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
341 (r'\{[*#].*?[*#]\}', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
342 # django comments
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
343 (r'(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
344 r'(\{%)(-?\s*)(endcomment)(\s*-?)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
345 bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
346 Comment, Comment.Preproc, Text, Keyword, Text,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
347 Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
348 # raw jinja blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
349 (r'(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
350 r'(\{%)(-?\s*)(endraw)(\s*-?)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
351 bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
352 Text, Comment.Preproc, Text, Keyword, Text,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
353 Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
354 # filter blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
355 (r'(\{%)(-?\s*)(filter)(\s+)([a-zA-Z_]\w*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
356 bygroups(Comment.Preproc, Text, Keyword, Text, Name.Function),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
357 'block'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
358 (r'(\{%)(-?\s*)([a-zA-Z_]\w*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
359 bygroups(Comment.Preproc, Text, Keyword), 'block'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
360 (r'\{', Other)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
361 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
362 'varnames': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
363 (r'(\|)(\s*)([a-zA-Z_]\w*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
364 bygroups(Operator, Text, Name.Function)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
365 (r'(is)(\s+)(not)?(\s+)?([a-zA-Z_]\w*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
366 bygroups(Keyword, Text, Keyword, Text, Name.Function)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
367 (r'(_|true|false|none|True|False|None)\b', Keyword.Pseudo),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
368 (r'(in|as|reversed|recursive|not|and|or|is|if|else|import|'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
369 r'with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\b',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
370 Keyword),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
371 (r'(loop|block|super|forloop)\b', Name.Builtin),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
372 (r'[a-zA-Z_][\w-]*', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
373 (r'\.\w+', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
374 (r':?"(\\\\|\\"|[^"])*"', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
375 (r":?'(\\\\|\\'|[^'])*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
376 (r'([{}()\[\]+\-*/%,:~]|[><=]=?|!=)', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
377 (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
378 r"0[xX][0-9a-fA-F]+[Ll]?", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
379 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
380 'var': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
381 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
382 (r'(-?)(\}\})', bygroups(Text, Comment.Preproc), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
383 include('varnames')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
384 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
385 'block': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
386 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
387 (r'(-?)(%\})', bygroups(Text, Comment.Preproc), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
388 include('varnames'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
389 (r'.', Punctuation)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
390 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
391 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
392
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
393 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
394 rv = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
395 if re.search(r'\{%\s*(block|extends)', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
396 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
397 if re.search(r'\{%\s*if\s*.*?%\}', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
398 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
399 if re.search(r'\{\{.*?\}\}', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
400 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
401 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
402
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
403
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
404 class MyghtyLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
405 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
406 Generic `myghty templates`_ lexer. Code that isn't Myghty
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
407 markup is yielded as `Token.Other`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
408
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
409 .. versionadded:: 0.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
410
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
411 .. _myghty templates: http://www.myghty.org/
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
412 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
413
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
414 name = 'Myghty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
415 aliases = ['myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
416 filenames = ['*.myt', 'autodelegate']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
417 mimetypes = ['application/x-myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
418
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
419 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
420 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
421 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
422 (r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
423 bygroups(Name.Tag, Text, Name.Function, Name.Tag,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
424 using(this), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
425 (r'(?s)(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
426 bygroups(Name.Tag, Name.Function, Name.Tag,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
427 using(PythonLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
428 (r'(<&[^|])(.*?)(,.*?)?(&>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
429 bygroups(Name.Tag, Name.Function, using(PythonLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
430 (r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
431 bygroups(Name.Tag, Name.Function, using(PythonLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
432 (r'</&>', Name.Tag),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
433 (r'(?s)(<%!?)(.*?)(%>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
434 bygroups(Name.Tag, using(PythonLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
435 (r'(?<=^)#[^\n]*(\n|\Z)', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
436 (r'(?<=^)(%)([^\n]*)(\n|\Z)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
437 bygroups(Name.Tag, using(PythonLexer), Other)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
438 (r"""(?sx)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
439 (.+?) # anything, followed by:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
440 (?:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
441 (?<=\n)(?=[%#]) | # an eval or comment line
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
442 (?=</?[%&]) | # a substitution or block or
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
443 # call start or end
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
444 # - don't consume
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
445 (\\\n) | # an escaped newline
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
446 \Z # end of string
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
447 )""", bygroups(Other, Operator)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
448 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
449 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
450
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
451
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
452 class MyghtyHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
453 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
454 Subclass of the `MyghtyLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
455 with the `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
456
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
457 .. versionadded:: 0.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
458 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
459
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
460 name = 'HTML+Myghty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
461 aliases = ['html+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
462 mimetypes = ['text/html+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
463
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
464 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
465 super().__init__(HtmlLexer, MyghtyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
466
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
467
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
468 class MyghtyXmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
469 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
470 Subclass of the `MyghtyLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
471 with the `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
472
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
473 .. versionadded:: 0.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
474 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
475
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
476 name = 'XML+Myghty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
477 aliases = ['xml+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
478 mimetypes = ['application/xml+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
479
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
480 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
481 super().__init__(XmlLexer, MyghtyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
482
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
483
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
484 class MyghtyJavascriptLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
485 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
486 Subclass of the `MyghtyLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
487 with the `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
488
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
489 .. versionadded:: 0.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
490 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
491
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
492 name = 'JavaScript+Myghty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
493 aliases = ['js+myghty', 'javascript+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
494 mimetypes = ['application/x-javascript+myghty',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
495 'text/x-javascript+myghty',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
496 'text/javascript+mygthy']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
497
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
498 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
499 super().__init__(JavascriptLexer, MyghtyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
500
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
501
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
502 class MyghtyCssLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
503 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
504 Subclass of the `MyghtyLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
505 with the `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
506
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
507 .. versionadded:: 0.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
508 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
509
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
510 name = 'CSS+Myghty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
511 aliases = ['css+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
512 mimetypes = ['text/css+myghty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
513
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
514 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
515 super().__init__(CssLexer, MyghtyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
516
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
517
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
518 class MasonLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
519 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
520 Generic `mason templates`_ lexer. Stolen from Myghty lexer. Code that isn't
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
521 Mason markup is HTML.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
522
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
523 .. _mason templates: http://www.masonhq.com/
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
524
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
525 .. versionadded:: 1.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
526 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
527 name = 'Mason'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
528 aliases = ['mason']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
529 filenames = ['*.m', '*.mhtml', '*.mc', '*.mi', 'autohandler', 'dhandler']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
530 mimetypes = ['application/x-mason']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
531
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
532 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
533 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
534 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
535 (r'(?s)(<%doc>)(.*?)(</%doc>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
536 bygroups(Name.Tag, Comment.Multiline, Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
537 (r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
538 bygroups(Name.Tag, Text, Name.Function, Name.Tag,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
539 using(this), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
540 (r'(?s)(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
541 bygroups(Name.Tag, Name.Function, Name.Tag,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
542 using(PerlLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
543 (r'(?s)(<&[^|])(.*?)(,.*?)?(&>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
544 bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
545 (r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
546 bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
547 (r'</&>', Name.Tag),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
548 (r'(?s)(<%!?)(.*?)(%>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
549 bygroups(Name.Tag, using(PerlLexer), Name.Tag)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
550 (r'(?<=^)#[^\n]*(\n|\Z)', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
551 (r'(?<=^)(%)([^\n]*)(\n|\Z)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
552 bygroups(Name.Tag, using(PerlLexer), Other)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
553 (r"""(?sx)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
554 (.+?) # anything, followed by:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
555 (?:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
556 (?<=\n)(?=[%#]) | # an eval or comment line
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
557 (?=</?[%&]) | # a substitution or block or
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
558 # call start or end
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
559 # - don't consume
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
560 (\\\n) | # an escaped newline
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
561 \Z # end of string
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
562 )""", bygroups(using(HtmlLexer), Operator)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
563 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
564 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
565
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
566 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
567 result = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
568 if re.search(r'</%(class|doc|init)%>', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
569 result = 1.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
570 elif re.search(r'<&.+&>', text, re.DOTALL) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
571 result = 0.11
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
572 return result
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
573
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
574
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
575 class MakoLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
576 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
577 Generic `mako templates`_ lexer. Code that isn't Mako
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
578 markup is yielded as `Token.Other`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
579
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
580 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
581
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
582 .. _mako templates: http://www.makotemplates.org/
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
583 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
584
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
585 name = 'Mako'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
586 aliases = ['mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
587 filenames = ['*.mao']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
588 mimetypes = ['application/x-mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
589
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
590 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
591 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
592 (r'(\s*)(%)(\s*end(?:\w+))(\n|\Z)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
593 bygroups(Text, Comment.Preproc, Keyword, Other)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
594 (r'(\s*)(%)([^\n]*)(\n|\Z)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
595 bygroups(Text, Comment.Preproc, using(PythonLexer), Other)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
596 (r'(\s*)(##[^\n]*)(\n|\Z)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
597 bygroups(Text, Comment.Preproc, Other)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
598 (r'(?s)<%doc>.*?</%doc>', Comment.Preproc),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
599 (r'(<%)([\w.:]+)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
600 bygroups(Comment.Preproc, Name.Builtin), 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
601 (r'(</%)([\w.:]+)(>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
602 bygroups(Comment.Preproc, Name.Builtin, Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
603 (r'<%(?=([\w.:]+))', Comment.Preproc, 'ondeftags'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
604 (r'(?s)(<%(?:!?))(.*?)(%>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
605 bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
606 (r'(\$\{)(.*?)(\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
607 bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
608 (r'''(?sx)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
609 (.+?) # anything, followed by:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
610 (?:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
611 (?<=\n)(?=%|\#\#) | # an eval or comment line
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
612 (?=\#\*) | # multiline comment
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
613 (?=</?%) | # a python block
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
614 # call start or end
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
615 (?=\$\{) | # a substitution
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
616 (?<=\n)(?=\s*%) |
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
617 # - don't consume
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
618 (\\\n) | # an escaped newline
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
619 \Z # end of string
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
620 )
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
621 ''', bygroups(Other, Operator)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
622 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
623 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
624 'ondeftags': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
625 (r'<%', Comment.Preproc),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
626 (r'(?<=<%)(include|inherit|namespace|page)', Name.Builtin),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
627 include('tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
628 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
629 'tag': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
630 (r'((?:\w+)\s*=)(\s*)(".*?")',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
631 bygroups(Name.Attribute, Text, String)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
632 (r'/?\s*>', Comment.Preproc, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
633 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
634 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
635 'attr': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
636 ('".*?"', String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
637 ("'.*?'", String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
638 (r'[^\s>]+', String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
639 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
640 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
641
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
642
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
643 class MakoHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
644 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
645 Subclass of the `MakoLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
646 with the `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
647
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
648 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
649 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
650
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
651 name = 'HTML+Mako'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
652 aliases = ['html+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
653 mimetypes = ['text/html+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
654
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
655 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
656 super().__init__(HtmlLexer, MakoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
657
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
658
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
659 class MakoXmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
660 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
661 Subclass of the `MakoLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
662 with the `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
663
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
664 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
665 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
666
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
667 name = 'XML+Mako'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
668 aliases = ['xml+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
669 mimetypes = ['application/xml+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
670
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
671 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
672 super().__init__(XmlLexer, MakoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
673
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
674
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
675 class MakoJavascriptLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
676 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
677 Subclass of the `MakoLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
678 with the `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
679
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
680 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
681 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
682
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
683 name = 'JavaScript+Mako'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
684 aliases = ['js+mako', 'javascript+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
685 mimetypes = ['application/x-javascript+mako',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
686 'text/x-javascript+mako',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
687 'text/javascript+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
688
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
689 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
690 super().__init__(JavascriptLexer, MakoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
691
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
692
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
693 class MakoCssLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
694 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
695 Subclass of the `MakoLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
696 with the `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
697
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
698 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
699 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
700
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
701 name = 'CSS+Mako'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
702 aliases = ['css+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
703 mimetypes = ['text/css+mako']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
704
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
705 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
706 super().__init__(CssLexer, MakoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
707
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
708
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
709 # Genshi and Cheetah lexers courtesy of Matt Good.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
710
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
711 class CheetahPythonLexer(Lexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
712 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
713 Lexer for handling Cheetah's special $ tokens in Python syntax.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
714 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
715
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
716 def get_tokens_unprocessed(self, text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
717 pylexer = PythonLexer(**self.options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
718 for pos, type_, value in pylexer.get_tokens_unprocessed(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
719 if type_ == Token.Error and value == '$':
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
720 type_ = Comment.Preproc
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
721 yield pos, type_, value
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
722
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
723
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
724 class CheetahLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
725 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
726 Generic `cheetah templates`_ lexer. Code that isn't Cheetah
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
727 markup is yielded as `Token.Other`. This also works for
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
728 `spitfire templates`_ which use the same syntax.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
729
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
730 .. _cheetah templates: http://www.cheetahtemplate.org/
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
731 .. _spitfire templates: http://code.google.com/p/spitfire/
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
732 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
733
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
734 name = 'Cheetah'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
735 aliases = ['cheetah', 'spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
736 filenames = ['*.tmpl', '*.spt']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
737 mimetypes = ['application/x-cheetah', 'application/x-spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
738
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
739 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
740 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
741 (r'(##[^\n]*)$',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
742 (bygroups(Comment))),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
743 (r'#[*](.|\n)*?[*]#', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
744 (r'#end[^#\n]*(?:#|$)', Comment.Preproc),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
745 (r'#slurp$', Comment.Preproc),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
746 (r'(#[a-zA-Z]+)([^#\n]*)(#|$)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
747 (bygroups(Comment.Preproc, using(CheetahPythonLexer),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
748 Comment.Preproc))),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
749 # TODO support other Python syntax like $foo['bar']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
750 (r'(\$)([a-zA-Z_][\w.]*\w)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
751 bygroups(Comment.Preproc, using(CheetahPythonLexer))),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
752 (r'(?s)(\$\{!?)(.*?)(\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
753 bygroups(Comment.Preproc, using(CheetahPythonLexer),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
754 Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
755 (r'''(?sx)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
756 (.+?) # anything, followed by:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
757 (?:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
758 (?=\#[#a-zA-Z]*) | # an eval comment
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
759 (?=\$[a-zA-Z_{]) | # a substitution
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
760 \Z # end of string
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
761 )
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
762 ''', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
763 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
764 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
765 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
766
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
767
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
768 class CheetahHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
769 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
770 Subclass of the `CheetahLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
771 with the `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
772 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
773
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
774 name = 'HTML+Cheetah'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
775 aliases = ['html+cheetah', 'html+spitfire', 'htmlcheetah']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
776 mimetypes = ['text/html+cheetah', 'text/html+spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
777
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
778 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
779 super().__init__(HtmlLexer, CheetahLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
780
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
781
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
782 class CheetahXmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
783 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
784 Subclass of the `CheetahLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
785 with the `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
786 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
787
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
788 name = 'XML+Cheetah'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
789 aliases = ['xml+cheetah', 'xml+spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
790 mimetypes = ['application/xml+cheetah', 'application/xml+spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
791
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
792 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
793 super().__init__(XmlLexer, CheetahLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
794
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
795
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
796 class CheetahJavascriptLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
797 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
798 Subclass of the `CheetahLexer` that highlights unlexed data
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
799 with the `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
800 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
801
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
802 name = 'JavaScript+Cheetah'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
803 aliases = ['js+cheetah', 'javascript+cheetah',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
804 'js+spitfire', 'javascript+spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
805 mimetypes = ['application/x-javascript+cheetah',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
806 'text/x-javascript+cheetah',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
807 'text/javascript+cheetah',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
808 'application/x-javascript+spitfire',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
809 'text/x-javascript+spitfire',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
810 'text/javascript+spitfire']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
811
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
812 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
813 super().__init__(JavascriptLexer, CheetahLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
814
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
815
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
816 class GenshiTextLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
817 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
818 A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ text
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
819 templates.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
820 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
821
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
822 name = 'Genshi Text'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
823 aliases = ['genshitext']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
824 mimetypes = ['application/x-genshi-text', 'text/x-genshi']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
825
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
826 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
827 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
828 (r'[^#$\s]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
829 (r'^(\s*)(##.*)$', bygroups(Text, Comment)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
830 (r'^(\s*)(#)', bygroups(Text, Comment.Preproc), 'directive'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
831 include('variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
832 (r'[#$\s]', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
833 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
834 'directive': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
835 (r'\n', Text, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
836 (r'(?:def|for|if)\s+.*', using(PythonLexer), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
837 (r'(choose|when|with)([^\S\n]+)(.*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
838 bygroups(Keyword, Text, using(PythonLexer)), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
839 (r'(choose|otherwise)\b', Keyword, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
840 (r'(end\w*)([^\S\n]*)(.*)', bygroups(Keyword, Text, Comment), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
841 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
842 'variable': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
843 (r'(?<!\$)(\$\{)(.+?)(\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
844 bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
845 (r'(?<!\$)(\$)([a-zA-Z_][\w.]*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
846 Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
847 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
848 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
849
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
850
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
851 class GenshiMarkupLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
852 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
853 Base lexer for Genshi markup, used by `HtmlGenshiLexer` and
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
854 `GenshiLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
855 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
856
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
857 flags = re.DOTALL
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
858
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
859 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
860 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
861 (r'[^<$]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
862 (r'(<\?python)(.*?)(\?>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
863 bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
864 # yield style and script blocks as Other
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
865 (r'<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
866 (r'<\s*py:[a-zA-Z0-9]+', Name.Tag, 'pytag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
867 (r'<\s*[a-zA-Z0-9:.]+', Name.Tag, 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
868 include('variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
869 (r'[<$]', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
870 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
871 'pytag': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
872 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
873 (r'[\w:-]+\s*=', Name.Attribute, 'pyattr'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
874 (r'/?\s*>', Name.Tag, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
875 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
876 'pyattr': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
877 ('(")(.*?)(")', bygroups(String, using(PythonLexer), String), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
878 ("(')(.*?)(')", bygroups(String, using(PythonLexer), String), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
879 (r'[^\s>]+', String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
880 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
881 'tag': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
882 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
883 (r'py:[\w-]+\s*=', Name.Attribute, 'pyattr'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
884 (r'[\w:-]+\s*=', Name.Attribute, 'attr'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
885 (r'/?\s*>', Name.Tag, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
886 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
887 'attr': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
888 ('"', String, 'attr-dstring'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
889 ("'", String, 'attr-sstring'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
890 (r'[^\s>]*', String, '#pop')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
891 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
892 'attr-dstring': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
893 ('"', String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
894 include('strings'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
895 ("'", String)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
896 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
897 'attr-sstring': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
898 ("'", String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
899 include('strings'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
900 ("'", String)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
901 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
902 'strings': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
903 ('[^"\'$]+', String),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
904 include('variable')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
905 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
906 'variable': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
907 (r'(?<!\$)(\$\{)(.+?)(\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
908 bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
909 (r'(?<!\$)(\$)([a-zA-Z_][\w\.]*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
910 Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
911 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
912 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
913
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
914
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
915 class HtmlGenshiLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
916 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
917 A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ and
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
918 `kid <http://kid-templating.org/>`_ kid HTML templates.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
919 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
920
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
921 name = 'HTML+Genshi'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
922 aliases = ['html+genshi', 'html+kid']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
923 alias_filenames = ['*.html', '*.htm', '*.xhtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
924 mimetypes = ['text/html+genshi']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
925
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
926 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
927 super().__init__(HtmlLexer, GenshiMarkupLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
928
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
929 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
930 rv = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
931 if re.search(r'\$\{.*?\}', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
932 rv += 0.2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
933 if re.search(r'py:(.*?)=["\']', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
934 rv += 0.2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
935 return rv + HtmlLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
936
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
937
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
938 class GenshiLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
939 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
940 A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ and
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
941 `kid <http://kid-templating.org/>`_ kid XML templates.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
942 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
943
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
944 name = 'Genshi'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
945 aliases = ['genshi', 'kid', 'xml+genshi', 'xml+kid']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
946 filenames = ['*.kid']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
947 alias_filenames = ['*.xml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
948 mimetypes = ['application/x-genshi', 'application/x-kid']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
949
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
950 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
951 super().__init__(XmlLexer, GenshiMarkupLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
952
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
953 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
954 rv = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
955 if re.search(r'\$\{.*?\}', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
956 rv += 0.2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
957 if re.search(r'py:(.*?)=["\']', text) is not None:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
958 rv += 0.2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
959 return rv + XmlLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
960
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
961
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
962 class JavascriptGenshiLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
963 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
964 A lexer that highlights javascript code in genshi text templates.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
965 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
966
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
967 name = 'JavaScript+Genshi Text'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
968 aliases = ['js+genshitext', 'js+genshi', 'javascript+genshitext',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
969 'javascript+genshi']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
970 alias_filenames = ['*.js']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
971 mimetypes = ['application/x-javascript+genshi',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
972 'text/x-javascript+genshi',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
973 'text/javascript+genshi']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
974
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
975 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
976 super().__init__(JavascriptLexer, GenshiTextLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
977
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
978 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
979 return GenshiLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
980
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
981
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
982 class CssGenshiLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
983 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
984 A lexer that highlights CSS definitions in genshi text templates.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
985 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
986
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
987 name = 'CSS+Genshi Text'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
988 aliases = ['css+genshitext', 'css+genshi']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
989 alias_filenames = ['*.css']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
990 mimetypes = ['text/css+genshi']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
991
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
992 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
993 super().__init__(CssLexer, GenshiTextLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
994
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
995 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
996 return GenshiLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
997
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
998
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
999 class RhtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1000 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1001 Subclass of the ERB lexer that highlights the unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1002 html lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1003
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1004 Nested Javascript and CSS is highlighted too.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1005 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1006
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1007 name = 'RHTML'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1008 aliases = ['rhtml', 'html+erb', 'html+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1009 filenames = ['*.rhtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1010 alias_filenames = ['*.html', '*.htm', '*.xhtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1011 mimetypes = ['text/html+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1012
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1013 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1014 super().__init__(HtmlLexer, ErbLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1015
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1016 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1017 rv = ErbLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1018 if html_doctype_matches(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1019 # one more than the XmlErbLexer returns
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1020 rv += 0.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1021 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1022
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1023
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1024 class XmlErbLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1025 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1026 Subclass of `ErbLexer` which highlights data outside preprocessor
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1027 directives with the `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1028 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1029
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1030 name = 'XML+Ruby'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1031 aliases = ['xml+erb', 'xml+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1032 alias_filenames = ['*.xml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1033 mimetypes = ['application/xml+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1034
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1035 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1036 super().__init__(XmlLexer, ErbLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1037
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1038 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1039 rv = ErbLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1040 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1041 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1042 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1043
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1044
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1045 class CssErbLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1046 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1047 Subclass of `ErbLexer` which highlights unlexed data with the `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1048 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1049
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1050 name = 'CSS+Ruby'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1051 aliases = ['css+erb', 'css+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1052 alias_filenames = ['*.css']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1053 mimetypes = ['text/css+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1054
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1055 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1056 super().__init__(CssLexer, ErbLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1057
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1058 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1059 return ErbLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1060
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1061
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1062 class JavascriptErbLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1063 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1064 Subclass of `ErbLexer` which highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1065 `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1066 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1067
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1068 name = 'JavaScript+Ruby'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1069 aliases = ['js+erb', 'javascript+erb', 'js+ruby', 'javascript+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1070 alias_filenames = ['*.js']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1071 mimetypes = ['application/x-javascript+ruby',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1072 'text/x-javascript+ruby',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1073 'text/javascript+ruby']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1074
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1075 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1076 super().__init__(JavascriptLexer, ErbLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1077
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1078 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1079 return ErbLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1080
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1081
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1082 class HtmlPhpLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1083 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1084 Subclass of `PhpLexer` that highlights unhandled data with the `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1085
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1086 Nested Javascript and CSS is highlighted too.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1087 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1088
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1089 name = 'HTML+PHP'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1090 aliases = ['html+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1091 filenames = ['*.phtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1092 alias_filenames = ['*.php', '*.html', '*.htm', '*.xhtml',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1093 '*.php[345]']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1094 mimetypes = ['application/x-php',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1095 'application/x-httpd-php', 'application/x-httpd-php3',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1096 'application/x-httpd-php4', 'application/x-httpd-php5']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1097
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1098 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1099 super().__init__(HtmlLexer, PhpLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1100
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1101 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1102 rv = PhpLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1103 if html_doctype_matches(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1104 rv += 0.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1105 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1106
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1107
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1108 class XmlPhpLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1109 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1110 Subclass of `PhpLexer` that highlights unhandled data with the `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1111 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1112
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1113 name = 'XML+PHP'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1114 aliases = ['xml+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1115 alias_filenames = ['*.xml', '*.php', '*.php[345]']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1116 mimetypes = ['application/xml+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1117
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1118 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1119 super().__init__(XmlLexer, PhpLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1120
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1121 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1122 rv = PhpLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1123 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1124 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1125 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1126
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1127
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1128 class CssPhpLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1129 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1130 Subclass of `PhpLexer` which highlights unmatched data with the `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1131 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1132
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1133 name = 'CSS+PHP'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1134 aliases = ['css+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1135 alias_filenames = ['*.css']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1136 mimetypes = ['text/css+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1137
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1138 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1139 super().__init__(CssLexer, PhpLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1140
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1141 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1142 return PhpLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1143
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1144
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1145 class JavascriptPhpLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1146 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1147 Subclass of `PhpLexer` which highlights unmatched data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1148 `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1149 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1150
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1151 name = 'JavaScript+PHP'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1152 aliases = ['js+php', 'javascript+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1153 alias_filenames = ['*.js']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1154 mimetypes = ['application/x-javascript+php',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1155 'text/x-javascript+php',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1156 'text/javascript+php']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1157
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1158 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1159 super().__init__(JavascriptLexer, PhpLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1160
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1161 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1162 return PhpLexer.analyse_text(text)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1163
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1164
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1165 class HtmlSmartyLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1166 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1167 Subclass of the `SmartyLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1168 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1169
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1170 Nested Javascript and CSS is highlighted too.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1171 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1172
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1173 name = 'HTML+Smarty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1174 aliases = ['html+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1175 alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.tpl']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1176 mimetypes = ['text/html+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1177
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1178 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1179 super().__init__(HtmlLexer, SmartyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1180
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1181 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1182 rv = SmartyLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1183 if html_doctype_matches(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1184 rv += 0.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1185 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1186
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1187
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1188 class XmlSmartyLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1189 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1190 Subclass of the `SmartyLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1191 `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1192 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1193
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1194 name = 'XML+Smarty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1195 aliases = ['xml+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1196 alias_filenames = ['*.xml', '*.tpl']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1197 mimetypes = ['application/xml+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1198
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1199 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1200 super().__init__(XmlLexer, SmartyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1201
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1202 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1203 rv = SmartyLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1204 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1205 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1206 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1207
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1208
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1209 class CssSmartyLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1210 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1211 Subclass of the `SmartyLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1212 `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1213 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1214
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1215 name = 'CSS+Smarty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1216 aliases = ['css+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1217 alias_filenames = ['*.css', '*.tpl']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1218 mimetypes = ['text/css+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1219
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1220 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1221 super().__init__(CssLexer, SmartyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1222
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1223 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1224 return SmartyLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1225
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1226
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1227 class JavascriptSmartyLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1228 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1229 Subclass of the `SmartyLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1230 `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1231 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1232
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1233 name = 'JavaScript+Smarty'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1234 aliases = ['js+smarty', 'javascript+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1235 alias_filenames = ['*.js', '*.tpl']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1236 mimetypes = ['application/x-javascript+smarty',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1237 'text/x-javascript+smarty',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1238 'text/javascript+smarty']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1239
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1240 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1241 super().__init__(JavascriptLexer, SmartyLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1242
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1243 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1244 return SmartyLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1245
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1246
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1247 class HtmlDjangoLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1248 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1249 Subclass of the `DjangoLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1250 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1251
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1252 Nested Javascript and CSS is highlighted too.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1253 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1254
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1255 name = 'HTML+Django/Jinja'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1256 aliases = ['html+django', 'html+jinja', 'htmldjango']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1257 alias_filenames = ['*.html', '*.htm', '*.xhtml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1258 mimetypes = ['text/html+django', 'text/html+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1259
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1260 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1261 super().__init__(HtmlLexer, DjangoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1262
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1263 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1264 rv = DjangoLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1265 if html_doctype_matches(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1266 rv += 0.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1267 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1268
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1269
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1270 class XmlDjangoLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1271 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1272 Subclass of the `DjangoLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1273 `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1274 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1275
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1276 name = 'XML+Django/Jinja'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1277 aliases = ['xml+django', 'xml+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1278 alias_filenames = ['*.xml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1279 mimetypes = ['application/xml+django', 'application/xml+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1280
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1281 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1282 super().__init__(XmlLexer, DjangoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1283
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1284 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1285 rv = DjangoLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1286 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1287 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1288 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1289
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1290
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1291 class CssDjangoLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1292 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1293 Subclass of the `DjangoLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1294 `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1295 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1296
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1297 name = 'CSS+Django/Jinja'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1298 aliases = ['css+django', 'css+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1299 alias_filenames = ['*.css']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1300 mimetypes = ['text/css+django', 'text/css+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1301
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1302 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1303 super().__init__(CssLexer, DjangoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1304
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1305 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1306 return DjangoLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1307
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1308
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1309 class JavascriptDjangoLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1310 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1311 Subclass of the `DjangoLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1312 `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1313 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1314
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1315 name = 'JavaScript+Django/Jinja'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1316 aliases = ['js+django', 'javascript+django',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1317 'js+jinja', 'javascript+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1318 alias_filenames = ['*.js']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1319 mimetypes = ['application/x-javascript+django',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1320 'application/x-javascript+jinja',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1321 'text/x-javascript+django',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1322 'text/x-javascript+jinja',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1323 'text/javascript+django',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1324 'text/javascript+jinja']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1325
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1326 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1327 super().__init__(JavascriptLexer, DjangoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1328
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1329 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1330 return DjangoLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1331
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1332
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1333 class JspRootLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1334 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1335 Base for the `JspLexer`. Yields `Token.Other` for area outside of
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1336 JSP tags.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1337
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1338 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1339 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1340
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1341 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1342 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1343 (r'<%\S?', Keyword, 'sec'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1344 # FIXME: I want to make these keywords but still parse attributes.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1345 (r'</?jsp:(forward|getProperty|include|plugin|setProperty|useBean).*?>',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1346 Keyword),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1347 (r'[^<]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1348 (r'<', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1349 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1350 'sec': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1351 (r'%>', Keyword, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1352 # note: '\w\W' != '.' without DOTALL.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1353 (r'[\w\W]+?(?=%>|\Z)', using(JavaLexer)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1354 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1355 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1356
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1357
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1358 class JspLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1359 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1360 Lexer for Java Server Pages.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1361
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1362 .. versionadded:: 0.7
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1363 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1364 name = 'Java Server Page'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1365 aliases = ['jsp']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1366 filenames = ['*.jsp']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1367 mimetypes = ['application/x-jsp']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1368
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1369 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1370 super().__init__(XmlLexer, JspRootLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1371
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1372 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1373 rv = JavaLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1374 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1375 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1376 if '<%' in text and '%>' in text:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1377 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1378 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1379
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1380
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1381 class EvoqueLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1382 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1383 For files using the Evoque templating system.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1384
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1385 .. versionadded:: 1.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1386 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1387 name = 'Evoque'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1388 aliases = ['evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1389 filenames = ['*.evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1390 mimetypes = ['application/x-evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1391
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1392 flags = re.DOTALL
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1393
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1394 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1395 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1396 (r'[^#$]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1397 (r'#\[', Comment.Multiline, 'comment'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1398 (r'\$\$', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1399 # svn keywords
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1400 (r'\$\w+:[^$\n]*\$', Comment.Multiline),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1401 # directives: begin, end
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1402 (r'(\$)(begin|end)(\{(%)?)(.*?)((?(4)%)\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1403 bygroups(Punctuation, Name.Builtin, Punctuation, None,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1404 String, Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1405 # directives: evoque, overlay
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1406 # see doc for handling first name arg: /directives/evoque/
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1407 # + minor inconsistency: the "name" in e.g. $overlay{name=site_base}
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1408 # should be using(PythonLexer), not passed out as String
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1409 (r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+[^=,%}]+?)?'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1410 r'(.*?)((?(4)%)\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1411 bygroups(Punctuation, Name.Builtin, Punctuation, None,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1412 String, using(PythonLexer), Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1413 # directives: if, for, prefer, test
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1414 (r'(\$)(\w+)(\{(%)?)(.*?)((?(4)%)\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1415 bygroups(Punctuation, Name.Builtin, Punctuation, None,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1416 using(PythonLexer), Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1417 # directive clauses (no {} expression)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1418 (r'(\$)(else|rof|fi)', bygroups(Punctuation, Name.Builtin)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1419 # expressions
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1420 (r'(\$\{(%)?)(.*?)((!)(.*?))?((?(2)%)\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1421 bygroups(Punctuation, None, using(PythonLexer),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1422 Name.Builtin, None, None, Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1423 (r'#', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1424 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1425 'comment': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1426 (r'[^\]#]', Comment.Multiline),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1427 (r'#\[', Comment.Multiline, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1428 (r'\]#', Comment.Multiline, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1429 (r'[\]#]', Comment.Multiline)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1430 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1431 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1432
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1433
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1434 class EvoqueHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1435 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1436 Subclass of the `EvoqueLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1437 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1438
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1439 .. versionadded:: 1.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1440 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1441 name = 'HTML+Evoque'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1442 aliases = ['html+evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1443 filenames = ['*.html']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1444 mimetypes = ['text/html+evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1445
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1446 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1447 super().__init__(HtmlLexer, EvoqueLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1448
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1449
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1450 class EvoqueXmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1451 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1452 Subclass of the `EvoqueLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1453 `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1454
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1455 .. versionadded:: 1.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1456 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1457 name = 'XML+Evoque'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1458 aliases = ['xml+evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1459 filenames = ['*.xml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1460 mimetypes = ['application/xml+evoque']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1461
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1462 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1463 super().__init__(XmlLexer, EvoqueLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1464
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1465
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1466 class ColdfusionLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1467 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1468 Coldfusion statements
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1469 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1470 name = 'cfstatement'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1471 aliases = ['cfs']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1472 filenames = []
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1473 mimetypes = []
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1474 flags = re.IGNORECASE
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1475
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1476 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1477 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1478 (r'//.*?\n', Comment.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1479 (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1480 (r'\+\+|--', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1481 (r'[-+*/^&=!]', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1482 (r'<=|>=|<|>|==', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1483 (r'mod\b', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1484 (r'(eq|lt|gt|lte|gte|not|is|and|or)\b', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1485 (r'\|\||&&', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1486 (r'\?', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1487 (r'"', String.Double, 'string'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1488 # There is a special rule for allowing html in single quoted
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1489 # strings, evidently.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1490 (r"'.*?'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1491 (r'\d+', Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1492 (r'(if|else|len|var|xml|default|break|switch|component|property|function|do|'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1493 r'try|catch|in|continue|for|return|while|required|any|array|binary|boolean|'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1494 r'component|date|guid|numeric|query|string|struct|uuid|case)\b', Keyword),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1495 (r'(true|false|null)\b', Keyword.Constant),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1496 (r'(application|session|client|cookie|super|this|variables|arguments)\b',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1497 Name.Constant),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1498 (r'([a-z_$][\w.]*)(\s*)(\()',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1499 bygroups(Name.Function, Text, Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1500 (r'[a-z_$][\w.]*', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1501 (r'[()\[\]{};:,.\\]', Punctuation),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1502 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1503 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1504 'string': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1505 (r'""', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1506 (r'#.+?#', String.Interp),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1507 (r'[^"#]+', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1508 (r'#', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1509 (r'"', String.Double, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1510 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1511 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1512
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1513
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1514 class ColdfusionMarkupLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1515 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1516 Coldfusion markup only
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1517 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1518 name = 'Coldfusion'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1519 aliases = ['cf']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1520 filenames = []
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1521 mimetypes = []
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1522
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1523 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1524 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1525 (r'[^<]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1526 include('tags'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1527 (r'<[^<>]*', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1528 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1529 'tags': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1530 (r'<!---', Comment.Multiline, 'cfcomment'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1531 (r'(?s)<!--.*?-->', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1532 (r'<cfoutput.*?>', Name.Builtin, 'cfoutput'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1533 (r'(?s)(<cfscript.*?>)(.+?)(</cfscript.*?>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1534 bygroups(Name.Builtin, using(ColdfusionLexer), Name.Builtin)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1535 # negative lookbehind is for strings with embedded >
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1536 (r'(?s)(</?cf(?:component|include|if|else|elseif|loop|return|'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1537 r'dbinfo|dump|abort|location|invoke|throw|file|savecontent|'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1538 r'mailpart|mail|header|content|zip|image|lock|argument|try|'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1539 r'catch|break|directory|http|set|function|param)\b)(.*?)((?<!\\)>)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1540 bygroups(Name.Builtin, using(ColdfusionLexer), Name.Builtin)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1541 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1542 'cfoutput': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1543 (r'[^#<]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1544 (r'(#)(.*?)(#)', bygroups(Punctuation, using(ColdfusionLexer),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1545 Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1546 # (r'<cfoutput.*?>', Name.Builtin, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1547 (r'</cfoutput.*?>', Name.Builtin, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1548 include('tags'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1549 (r'(?s)<[^<>]*', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1550 (r'#', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1551 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1552 'cfcomment': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1553 (r'<!---', Comment.Multiline, '#push'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1554 (r'--->', Comment.Multiline, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1555 (r'([^<-]|<(?!!---)|-(?!-->))+', Comment.Multiline),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1556 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1557 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1558
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1559
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1560 class ColdfusionHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1561 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1562 Coldfusion markup in html
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1563 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1564 name = 'Coldfusion HTML'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1565 aliases = ['cfm']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1566 filenames = ['*.cfm', '*.cfml']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1567 mimetypes = ['application/x-coldfusion']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1568
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1569 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1570 super().__init__(HtmlLexer, ColdfusionMarkupLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1571
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1572
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1573 class ColdfusionCFCLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1574 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1575 Coldfusion markup/script components
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1576
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1577 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1578 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1579 name = 'Coldfusion CFC'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1580 aliases = ['cfc']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1581 filenames = ['*.cfc']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1582 mimetypes = []
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1583
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1584 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1585 super().__init__(ColdfusionHtmlLexer, ColdfusionLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1586
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1587
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1588 class SspLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1589 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1590 Lexer for Scalate Server Pages.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1591
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1592 .. versionadded:: 1.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1593 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1594 name = 'Scalate Server Page'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1595 aliases = ['ssp']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1596 filenames = ['*.ssp']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1597 mimetypes = ['application/x-ssp']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1598
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1599 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1600 super().__init__(XmlLexer, JspRootLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1601
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1602 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1603 rv = 0.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1604 if re.search(r'val \w+\s*:', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1605 rv += 0.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1606 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1607 rv += 0.2
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1608 if '<%' in text and '%>' in text:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1609 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1610 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1611
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1612
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1613 class TeaTemplateRootLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1614 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1615 Base for the `TeaTemplateLexer`. Yields `Token.Other` for area outside of
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1616 code blocks.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1617
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1618 .. versionadded:: 1.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1619 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1620
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1621 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1622 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1623 (r'<%\S?', Keyword, 'sec'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1624 (r'[^<]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1625 (r'<', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1626 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1627 'sec': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1628 (r'%>', Keyword, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1629 # note: '\w\W' != '.' without DOTALL.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1630 (r'[\w\W]+?(?=%>|\Z)', using(TeaLangLexer)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1631 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1632 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1633
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1634
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1635 class TeaTemplateLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1636 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1637 Lexer for `Tea Templates <http://teatrove.org/>`_.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1638
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1639 .. versionadded:: 1.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1640 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1641 name = 'Tea'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1642 aliases = ['tea']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1643 filenames = ['*.tea']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1644 mimetypes = ['text/x-tea']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1645
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1646 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1647 super().__init__(XmlLexer, TeaTemplateRootLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1648
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1649 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1650 rv = TeaLangLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1651 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1652 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1653 if '<%' in text and '%>' in text:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1654 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1655 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1656
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1657
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1658 class LassoHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1659 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1660 Subclass of the `LassoLexer` which highlights unhandled data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1661 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1662
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1663 Nested JavaScript and CSS is also highlighted.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1664
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1665 .. versionadded:: 1.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1666 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1667
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1668 name = 'HTML+Lasso'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1669 aliases = ['html+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1670 alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.lasso', '*.lasso[89]',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1671 '*.incl', '*.inc', '*.las']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1672 mimetypes = ['text/html+lasso',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1673 'application/x-httpd-lasso',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1674 'application/x-httpd-lasso[89]']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1675
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1676 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1677 super().__init__(HtmlLexer, LassoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1678
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1679 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1680 rv = LassoLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1681 if html_doctype_matches(text): # same as HTML lexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1682 rv += 0.5
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1683 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1684
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1685
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1686 class LassoXmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1687 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1688 Subclass of the `LassoLexer` which highlights unhandled data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1689 `XmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1690
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1691 .. versionadded:: 1.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1692 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1693
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1694 name = 'XML+Lasso'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1695 aliases = ['xml+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1696 alias_filenames = ['*.xml', '*.lasso', '*.lasso[89]',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1697 '*.incl', '*.inc', '*.las']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1698 mimetypes = ['application/xml+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1699
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1700 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1701 super().__init__(XmlLexer, LassoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1702
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1703 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1704 rv = LassoLexer.analyse_text(text) - 0.01
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1705 if looks_like_xml(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1706 rv += 0.4
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1707 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1708
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1709
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1710 class LassoCssLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1711 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1712 Subclass of the `LassoLexer` which highlights unhandled data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1713 `CssLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1714
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1715 .. versionadded:: 1.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1716 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1717
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1718 name = 'CSS+Lasso'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1719 aliases = ['css+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1720 alias_filenames = ['*.css']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1721 mimetypes = ['text/css+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1722
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1723 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1724 options['requiredelimiters'] = True
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1725 super().__init__(CssLexer, LassoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1726
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1727 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1728 rv = LassoLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1729 if re.search(r'\w+:.+?;', text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1730 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1731 if 'padding:' in text:
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1732 rv += 0.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1733 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1734
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1735
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1736 class LassoJavascriptLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1737 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1738 Subclass of the `LassoLexer` which highlights unhandled data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1739 `JavascriptLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1740
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1741 .. versionadded:: 1.6
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1742 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1743
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1744 name = 'JavaScript+Lasso'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1745 aliases = ['js+lasso', 'javascript+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1746 alias_filenames = ['*.js']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1747 mimetypes = ['application/x-javascript+lasso',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1748 'text/x-javascript+lasso',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1749 'text/javascript+lasso']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1750
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1751 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1752 options['requiredelimiters'] = True
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1753 super().__init__(JavascriptLexer, LassoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1754
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1755 def analyse_text(text):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1756 rv = LassoLexer.analyse_text(text) - 0.05
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1757 return rv
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1758
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1759
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1760 class HandlebarsLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1761 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1762 Generic `handlebars <http://handlebarsjs.com/>` template lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1763
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1764 Highlights only the Handlebars template tags (stuff between `{{` and `}}`).
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1765 Everything else is left for a delegating lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1766
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1767 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1768 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1769
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1770 name = "Handlebars"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1771 aliases = ['handlebars']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1772
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1773 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1774 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1775 (r'[^{]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1776
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1777 # Comment start {{! }} or {{!--
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1778 (r'\{\{!.*\}\}', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1779
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1780 # HTML Escaping open {{{expression
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1781 (r'(\{\{\{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1782
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1783 # {{blockOpen {{#blockOpen {{/blockClose with optional tilde ~
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1784 (r'(\{\{)([#~/]+)([^\s}]*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1785 bygroups(Comment.Preproc, Number.Attribute, Number.Attribute), 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1786 (r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1787 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1788
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1789 'tag': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1790 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1791 # HTML Escaping close }}}
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1792 (r'\}\}\}', Comment.Special, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1793 # blockClose}}, includes optional tilde ~
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1794 (r'(~?)(\}\})', bygroups(Number, Comment.Preproc), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1795
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1796 # {{opt=something}}
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1797 (r'([^\s}]+)(=)', bygroups(Name.Attribute, Operator)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1798
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1799 # Partials {{> ...}}
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1800 (r'(>)(\s*)(@partial-block)', bygroups(Keyword, Text, Keyword)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1801 (r'(#?>)(\s*)([\w-]+)', bygroups(Keyword, Text, Name.Variable)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1802 (r'(>)(\s*)(\()', bygroups(Keyword, Text, Punctuation),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1803 'dynamic-partial'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1804
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1805 include('generic'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1806 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1807 'dynamic-partial': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1808 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1809 (r'\)', Punctuation, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1810
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1811 (r'(lookup)(\s+)(\.|this)(\s+)', bygroups(Keyword, Text,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1812 Name.Variable, Text)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1813 (r'(lookup)(\s+)(\S+)', bygroups(Keyword, Text,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1814 using(this, state='variable'))),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1815 (r'[\w-]+', Name.Function),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1816
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1817 include('generic'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1818 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1819 'variable': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1820 (r'[()/@a-zA-Z][\w-]*', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1821 (r'\.[\w-]+', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1822 (r'(this\/|\.\/|(\.\.\/)+)[\w-]+', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1823 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1824 'generic': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1825 include('variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1826
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1827 # borrowed from DjangoLexer
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1828 (r':?"(\\\\|\\"|[^"])*"', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1829 (r":?'(\\\\|\\'|[^'])*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1830 (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1831 r"0[xX][0-9a-fA-F]+[Ll]?", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1832 ]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1833 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1834
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1835
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1836 class HandlebarsHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1837 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1838 Subclass of the `HandlebarsLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1839 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1840
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1841 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1842 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1843
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1844 name = "HTML+Handlebars"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1845 aliases = ["html+handlebars"]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1846 filenames = ['*.handlebars', '*.hbs']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1847 mimetypes = ['text/html+handlebars', 'text/x-handlebars-template']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1848
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1849 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1850 super().__init__(HtmlLexer, HandlebarsLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1851
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1852
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1853 class YamlJinjaLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1854 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1855 Subclass of the `DjangoLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1856 `YamlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1857
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1858 Commonly used in Saltstack salt states.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1859
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1860 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1861 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1862
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1863 name = 'YAML+Jinja'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1864 aliases = ['yaml+jinja', 'salt', 'sls']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1865 filenames = ['*.sls']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1866 mimetypes = ['text/x-yaml+jinja', 'text/x-sls']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1867
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1868 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1869 super().__init__(YamlLexer, DjangoLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1870
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1871
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1872 class LiquidLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1873 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1874 Lexer for `Liquid templates
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1875 <http://www.rubydoc.info/github/Shopify/liquid>`_.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1876
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1877 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1878 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1879 name = 'liquid'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1880 aliases = ['liquid']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1881 filenames = ['*.liquid']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1882
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1883 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1884 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1885 (r'[^{]+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1886 # tags and block tags
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1887 (r'(\{%)(\s*)', bygroups(Punctuation, Whitespace), 'tag-or-block'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1888 # output tags
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1889 (r'(\{\{)(\s*)([^\s}]+)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1890 bygroups(Punctuation, Whitespace, using(this, state = 'generic')),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1891 'output'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1892 (r'\{', Text)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1893 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1894
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1895 'tag-or-block': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1896 # builtin logic blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1897 (r'(if|unless|elsif|case)(?=\s+)', Keyword.Reserved, 'condition'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1898 (r'(when)(\s+)', bygroups(Keyword.Reserved, Whitespace),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1899 combined('end-of-block', 'whitespace', 'generic')),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1900 (r'(else)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1901 bygroups(Keyword.Reserved, Whitespace, Punctuation), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1902
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1903 # other builtin blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1904 (r'(capture)(\s+)([^\s%]+)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1905 bygroups(Name.Tag, Whitespace, using(this, state = 'variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1906 Whitespace, Punctuation), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1907 (r'(comment)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1908 bygroups(Name.Tag, Whitespace, Punctuation), 'comment'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1909 (r'(raw)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1910 bygroups(Name.Tag, Whitespace, Punctuation), 'raw'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1911
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1912 # end of block
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1913 (r'(end(case|unless|if))(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1914 bygroups(Keyword.Reserved, None, Whitespace, Punctuation), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1915 (r'(end([^\s%]+))(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1916 bygroups(Name.Tag, None, Whitespace, Punctuation), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1917
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1918 # builtin tags (assign and include are handled together with usual tags)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1919 (r'(cycle)(\s+)(?:([^\s:]*)(:))?(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1920 bygroups(Name.Tag, Whitespace,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1921 using(this, state='generic'), Punctuation, Whitespace),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1922 'variable-tag-markup'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1923
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1924 # other tags or blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1925 (r'([^\s%]+)(\s*)', bygroups(Name.Tag, Whitespace), 'tag-markup')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1926 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1927
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1928 'output': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1929 include('whitespace'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1930 (r'\}\}', Punctuation, '#pop'), # end of output
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1931
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1932 (r'\|', Punctuation, 'filters')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1933 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1934
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1935 'filters': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1936 include('whitespace'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1937 (r'\}\}', Punctuation, ('#pop', '#pop')), # end of filters and output
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1938
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1939 (r'([^\s|:]+)(:?)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1940 bygroups(Name.Function, Punctuation, Whitespace), 'filter-markup')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1941 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1942
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1943 'filter-markup': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1944 (r'\|', Punctuation, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1945 include('end-of-tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1946 include('default-param-markup')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1947 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1948
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1949 'condition': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1950 include('end-of-block'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1951 include('whitespace'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1952
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1953 (r'([^\s=!><]+)(\s*)([=!><]=?)(\s*)(\S+)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1954 bygroups(using(this, state = 'generic'), Whitespace, Operator,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1955 Whitespace, using(this, state = 'generic'), Whitespace,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1956 Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1957 (r'\b!', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1958 (r'\bnot\b', Operator.Word),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1959 (r'([\w.\'"]+)(\s+)(contains)(\s+)([\w.\'"]+)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1960 bygroups(using(this, state = 'generic'), Whitespace, Operator.Word,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1961 Whitespace, using(this, state = 'generic'))),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1962
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1963 include('generic'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1964 include('whitespace')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1965 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1966
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1967 'generic-value': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1968 include('generic'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1969 include('end-at-whitespace')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1970 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1971
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1972 'operator': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1973 (r'(\s*)((=|!|>|<)=?)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1974 bygroups(Whitespace, Operator, None, Whitespace), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1975 (r'(\s*)(\bcontains\b)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1976 bygroups(Whitespace, Operator.Word, Whitespace), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1977 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1978
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1979 'end-of-tag': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1980 (r'\}\}', Punctuation, '#pop')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1981 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1982
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1983 'end-of-block': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1984 (r'%\}', Punctuation, ('#pop', '#pop'))
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1985 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1986
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1987 'end-at-whitespace': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1988 (r'\s+', Whitespace, '#pop')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1989 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1990
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1991 # states for unknown markup
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1992 'param-markup': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1993 include('whitespace'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1994 # params with colons or equals
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1995 (r'([^\s=:]+)(\s*)(=|:)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1996 bygroups(Name.Attribute, Whitespace, Operator)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1997 # explicit variables
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1998 (r'(\{\{)(\s*)([^\s}])(\s*)(\}\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
1999 bygroups(Punctuation, Whitespace, using(this, state = 'variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2000 Whitespace, Punctuation)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2001
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2002 include('string'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2003 include('number'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2004 include('keyword'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2005 (r',', Punctuation)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2006 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2007
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2008 'default-param-markup': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2009 include('param-markup'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2010 (r'.', Text) # fallback for switches / variables / un-quoted strings / ...
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2011 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2012
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2013 'variable-param-markup': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2014 include('param-markup'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2015 include('variable'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2016 (r'.', Text) # fallback
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2017 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2018
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2019 'tag-markup': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2020 (r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2021 include('default-param-markup')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2022 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2023
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2024 'variable-tag-markup': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2025 (r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2026 include('variable-param-markup')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2027 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2028
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2029 # states for different values types
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2030 'keyword': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2031 (r'\b(false|true)\b', Keyword.Constant)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2032 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2033
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2034 'variable': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2035 (r'[a-zA-Z_]\w*', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2036 (r'(?<=\w)\.(?=\w)', Punctuation)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2037 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2038
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2039 'string': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2040 (r"'[^']*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2041 (r'"[^"]*"', String.Double)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2042 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2043
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2044 'number': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2045 (r'\d+\.\d+', Number.Float),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2046 (r'\d+', Number.Integer)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2047 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2048
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2049 'generic': [ # decides for variable, string, keyword or number
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2050 include('keyword'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2051 include('string'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2052 include('number'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2053 include('variable')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2054 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2055
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2056 'whitespace': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2057 (r'[ \t]+', Whitespace)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2058 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2059
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2060 # states for builtin blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2061 'comment': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2062 (r'(\{%)(\s*)(endcomment)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2063 bygroups(Punctuation, Whitespace, Name.Tag, Whitespace,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2064 Punctuation), ('#pop', '#pop')),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2065 (r'.', Comment)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2066 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2067
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2068 'raw': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2069 (r'[^{]+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2070 (r'(\{%)(\s*)(endraw)(\s*)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2071 bygroups(Punctuation, Whitespace, Name.Tag, Whitespace,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2072 Punctuation), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2073 (r'\{', Text)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2074 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2075 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2076
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2077
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2078 class TwigLexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2079 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2080 `Twig <http://twig.sensiolabs.org/>`_ template lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2081
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2082 It just highlights Twig code between the preprocessor directives,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2083 other data is left untouched by the lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2084
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2085 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2086 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2087
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2088 name = 'Twig'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2089 aliases = ['twig']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2090 mimetypes = ['application/x-twig']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2091
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2092 flags = re.M | re.S
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2093
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2094 # Note that a backslash is included in the following two patterns
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2095 # PHP uses a backslash as a namespace separator
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2096 _ident_char = r'[\\\w-]|[^\x00-\x7f]'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2097 _ident_begin = r'(?:[\\_a-z]|[^\x00-\x7f])'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2098 _ident_end = r'(?:' + _ident_char + ')*'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2099 _ident_inner = _ident_begin + _ident_end
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2100
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2101 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2102 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2103 (r'[^{]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2104 (r'\{\{', Comment.Preproc, 'var'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2105 # twig comments
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2106 (r'\{\#.*?\#\}', Comment),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2107 # raw twig blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2108 (r'(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2109 r'(\{%)(-?\s*)(endraw)(\s*-?)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2110 bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2111 Other, Comment.Preproc, Text, Keyword, Text,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2112 Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2113 (r'(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2114 r'(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2115 bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2116 Other, Comment.Preproc, Text, Keyword, Text,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2117 Comment.Preproc)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2118 # filter blocks
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2119 (r'(\{%%)(-?\s*)(filter)(\s+)(%s)' % _ident_inner,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2120 bygroups(Comment.Preproc, Text, Keyword, Text, Name.Function),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2121 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2122 (r'(\{%)(-?\s*)([a-zA-Z_]\w*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2123 bygroups(Comment.Preproc, Text, Keyword), 'tag'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2124 (r'\{', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2125 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2126 'varnames': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2127 (r'(\|)(\s*)(%s)' % _ident_inner,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2128 bygroups(Operator, Text, Name.Function)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2129 (r'(is)(\s+)(not)?(\s*)(%s)' % _ident_inner,
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2130 bygroups(Keyword, Text, Keyword, Text, Name.Function)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2131 (r'(?i)(true|false|none|null)\b', Keyword.Pseudo),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2132 (r'(in|not|and|b-and|or|b-or|b-xor|is'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2133 r'if|elseif|else|import'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2134 r'constant|defined|divisibleby|empty|even|iterable|odd|sameas'
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2135 r'matches|starts\s+with|ends\s+with)\b',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2136 Keyword),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2137 (r'(loop|block|parent)\b', Name.Builtin),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2138 (_ident_inner, Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2139 (r'\.' + _ident_inner, Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2140 (r'\.[0-9]+', Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2141 (r':?"(\\\\|\\"|[^"])*"', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2142 (r":?'(\\\\|\\'|[^'])*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2143 (r'([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)', Operator),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2144 (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2145 r"0[xX][0-9a-fA-F]+[Ll]?", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2146 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2147 'var': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2148 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2149 (r'(-?)(\}\})', bygroups(Text, Comment.Preproc), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2150 include('varnames')
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2151 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2152 'tag': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2153 (r'\s+', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2154 (r'(-?)(%\})', bygroups(Text, Comment.Preproc), '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2155 include('varnames'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2156 (r'.', Punctuation),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2157 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2158 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2159
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2160
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2161 class TwigHtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2162 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2163 Subclass of the `TwigLexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2164 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2165
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2166 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2167 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2168
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2169 name = "HTML+Twig"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2170 aliases = ["html+twig"]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2171 filenames = ['*.twig']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2172 mimetypes = ['text/html+twig']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2173
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2174 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2175 super().__init__(HtmlLexer, TwigLexer, **options)
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2176
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2177
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2178 class Angular2Lexer(RegexLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2179 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2180 Generic
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2181 `angular2 <http://victorsavkin.com/post/119943127151/angular-2-template-syntax>`_
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2182 template lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2183
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2184 Highlights only the Angular template tags (stuff between `{{` and `}}` and
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2185 special attributes: '(event)=', '[property]=', '[(twoWayBinding)]=').
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2186 Everything else is left for a delegating lexer.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2187
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2188 .. versionadded:: 2.1
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2189 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2190
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2191 name = "Angular2"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2192 aliases = ['ng2']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2193
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2194 tokens = {
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2195 'root': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2196 (r'[^{([*#]+', Other),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2197
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2198 # {{meal.name}}
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2199 (r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'ngExpression'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2200
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2201 # (click)="deleteOrder()"; [value]="test"; [(twoWayTest)]="foo.bar"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2202 (r'([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2203 bygroups(Punctuation, Name.Attribute, Punctuation, Text, Operator, Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2204 'attr'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2205 (r'([([]+)([\w:.-]+)([\])]+)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2206 bygroups(Punctuation, Name.Attribute, Punctuation, Text)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2207
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2208 # *ngIf="..."; #f="ngForm"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2209 (r'([*#])([\w:.-]+)(\s*)(=)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2210 bygroups(Punctuation, Name.Attribute, Text, Operator, Text), 'attr'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2211 (r'([*#])([\w:.-]+)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2212 bygroups(Punctuation, Name.Attribute, Text)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2213 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2214
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2215 'ngExpression': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2216 (r'\s+(\|\s+)?', Text),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2217 (r'\}\}', Comment.Preproc, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2218
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2219 # Literals
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2220 (r':?(true|false)', String.Boolean),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2221 (r':?"(\\\\|\\"|[^"])*"', String.Double),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2222 (r":?'(\\\\|\\'|[^'])*'", String.Single),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2223 (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2224 r"0[xX][0-9a-fA-F]+[Ll]?", Number),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2225
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2226 # Variabletext
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2227 (r'[a-zA-Z][\w-]*(\(.*\))?', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2228 (r'\.[\w-]+(\(.*\))?', Name.Variable),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2229
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2230 # inline If
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2231 (r'(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)',
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2232 bygroups(Operator, Text, String, Text, Operator, Text, String, Text)),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2233 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2234 'attr': [
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2235 ('".*?"', String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2236 ("'.*?'", String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2237 (r'[^\s>]+', String, '#pop'),
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2238 ],
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2239 }
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2240
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2241
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2242 class Angular2HtmlLexer(DelegatingLexer):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2243 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2244 Subclass of the `Angular2Lexer` that highlights unlexed data with the
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2245 `HtmlLexer`.
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2246
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2247 .. versionadded:: 2.0
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2248 """
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2249
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2250 name = "HTML + Angular2"
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2251 aliases = ["html+ng2"]
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2252 filenames = ['*.ng2']
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2253
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2254 def __init__(self, **options):
25f42e208e08 Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7547
diff changeset
2255 super().__init__(HtmlLexer, Angular2Lexer, **options)

eric ide

mercurial