ProjectKivy/KivyLexer.py

branch
eric7
changeset 50
265ebe67da39
parent 47
072c7c4791d4
child 57
ebf3e41eff26
equal deleted inserted replaced
49:907db4c690f0 50:265ebe67da39
14 14
15 from pygments.lexer import RegexLexer, bygroups, using 15 from pygments.lexer import RegexLexer, bygroups, using
16 from pygments.lexers.agile import PythonLexer 16 from pygments.lexers.agile import PythonLexer
17 from pygments.token import Comment, Text, Name, Punctuation, Operator 17 from pygments.token import Comment, Text, Name, Punctuation, Operator
18 18
19 __all__ = ['KivyLexer'] 19 __all__ = ["KivyLexer"]
20 20
21 21
22 class KivyLexer(RegexLexer): 22 class KivyLexer(RegexLexer):
23 """ 23 """
24 Class implementing a Pygments lexer for the Kivy language. 24 Class implementing a Pygments lexer for the Kivy language.
25 """ 25 """
26 name = 'Kivy' 26
27 aliases = ['kivy', 'kv'] 27 name = "Kivy"
28 filenames = ['*.kv', '*.kivy'] 28 aliases = ["kivy", "kv"]
29 mimetypes = ['application/x-kivy'] 29 filenames = ["*.kv", "*.kivy"]
30 mimetypes = ["application/x-kivy"]
30 tokens = { 31 tokens = {
31 'root': [ 32 "root": [
32 (r'#:.*?$', Comment.Preproc), 33 (r"#:.*?$", Comment.Preproc),
33 (r'#.*?$', using(PythonLexer)), 34 (r"#.*?$", using(PythonLexer)),
34 (r'\s+', Text), 35 (r"\s+", Text),
35 (r'<.+>', Name.Namespace), 36 (r"<.+>", Name.Namespace),
36 (r'(\[)(\s*)(.*?)(\s*)(@)', 37 (
38 r"(\[)(\s*)(.*?)(\s*)(@)",
37 bygroups(Punctuation, Text, Name.Class, Text, Operator), 39 bygroups(Punctuation, Text, Name.Class, Text, Operator),
38 'classList'), 40 "classList",
39 (r'[A-Za-z][A-Za-z0-9]*$', Name.Attribute), 41 ),
40 (r'(.*?)(\s*)(:)(\s*)$', 42 (r"[A-Za-z][A-Za-z0-9]*$", Name.Attribute),
41 bygroups(Name.Class, Text, Punctuation, Text)), 43 (r"(.*?)(\s*)(:)(\s*)$", bygroups(Name.Class, Text, Punctuation, Text)),
42 (r'(.*?)(\s*)(:)(\s*)(.*?)$', 44 (
43 bygroups(Name.Attribute, Text, Punctuation, Text, 45 r"(.*?)(\s*)(:)(\s*)(.*?)$",
44 using(PythonLexer))), 46 bygroups(Name.Attribute, Text, Punctuation, Text, using(PythonLexer)),
45 (r'[^:]+?$', using(PythonLexer)) 47 ),
48 (r"[^:]+?$", using(PythonLexer)),
46 ], 49 ],
47 'classList': [ 50 "classList": [
48 (r'(,)(\s*)([A-Z][A-Za-z0-9]*)', 51 (r"(,)(\s*)([A-Z][A-Za-z0-9]*)", bygroups(Punctuation, Text, Name.Class)),
49 bygroups(Punctuation, Text, Name.Class)), 52 (r"(\+)(\s*)([A-Z][A-Za-z0-9]*)", bygroups(Operator, Text, Name.Class)),
50 (r'(\+)(\s*)([A-Z][A-Za-z0-9]*)', 53 (r"\s+", Text),
51 bygroups(Operator, Text, Name.Class)), 54 (r"[A-Z][A-Za-z0-9]*", Name.Class),
52 (r'\s+', Text), 55 (r"\]", Punctuation, "#pop"),
53 (r'[A-Z][A-Za-z0-9]*', Name.Class),
54 (r'\]', Punctuation, '#pop')
55 ], 56 ],
56 } 57 }
57 58
59
58 # 60 #
59 # eflag: noqa = M702 61 # eflag: noqa = M702

eric ide

mercurial