1; Identifier naming conventions
2
3(identifier) @variable
4
5((identifier) @constructor
6 (#match? @constructor "^[A-Z]"))
7
8((identifier) @constant
9 (#match? @constant "^[A-Z][A-Z_]*$"))
10
11; Function calls
12
13(decorator) @function
14(decorator
15 (identifier) @function)
16
17(call
18 function: (attribute attribute: (identifier) @function.method))
19(call
20 function: (identifier) @function)
21
22; Builtin functions
23
24((call
25 function: (identifier) @function.builtin)
26 (#match?
27 @function.builtin
28 "^(abs|all|any|ascii|bin|bool|breakpoint|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip|__import__)$"))
29
30; Function definitions
31
32(function_definition
33 name: (identifier) @function)
34
35(attribute attribute: (identifier) @property)
36(type (identifier) @type)
37
38; Literals
39
40[
41 (none)
42 (true)
43 (false)
44] @constant.builtin
45
46[
47 (integer)
48 (float)
49] @number
50
51(comment) @comment
52(string) @string
53(escape_sequence) @escape
54
55(interpolation
56 "{" @punctuation.special
57 "}" @punctuation.special) @embedded
58
59[
60 "-"
61 "-="
62 "!="
63 "*"
64 "**"
65 "**="
66 "*="
67 "/"
68 "//"
69 "//="
70 "/="
71 "&"
72 "&="
73 "%"
74 "%="
75 "^"
76 "^="
77 "+"
78 "->"
79 "+="
80 "<"
81 "<<"
82 "<<="
83 "<="
84 "<>"
85 "="
86 ":="
87 "=="
88 ">"
89 ">="
90 ">>"
91 ">>="
92 "|"
93 "|="
94 "~"
95 "@="
96 "and"
97 "in"
98 "is"
99 "not"
100 "or"
101 "is not"
102 "not in"
103] @operator
104
105[
106 "as"
107 "assert"
108 "async"
109 "await"
110 "break"
111 "class"
112 "continue"
113 "def"
114 "del"
115 "elif"
116 "else"
117 "except"
118 "exec"
119 "finally"
120 "for"
121 "from"
122 "global"
123 "if"
124 "import"
125 "lambda"
126 "nonlocal"
127 "pass"
128 "print"
129 "raise"
130 "return"
131 "try"
132 "while"
133 "with"
134 "yield"
135 "match"
136 "case"
137] @keyword