Skip to content

Commit 8869e67

Browse files
committed
feat: expand python language support
1 parent 306cd74 commit 8869e67

File tree

2 files changed

+65
-17
lines changed

2 files changed

+65
-17
lines changed

languages/python/python_test.go

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,39 @@ func TestPython(t *testing.T) {
1313
Name: "Simple",
1414
FileName: "simple.py",
1515
Input: `
16+
class Square:
17+
side = 1
18+
19+
def __init__(self, side):
20+
self.side = side
21+
22+
def area(self):
23+
return self.side * self.side
24+
25+
def perimeter(self):
26+
return 4 * self.side
27+
1628
def main():
1729
a = 1
1830
`,
1931
Expected: `
20-
(tree [0,0 | 0]-[1,6 | 18]
21-
(function [0,0 | 0]-[1,6 | 18]
22-
(tree [0,0 | 0]-[1,6 | 18]
23-
(assignment a [1,1 | 13]-[1,2 | 14]))))
32+
(tree [0,0 | 0]-[13,6 | 185]
33+
(class Square Square [0,0 | 0]-[10,22 | 165]
34+
(tree [1,1 | 15]-[10,22 | 165]
35+
(assignment int side [1,1 | 15]-[1,5 | 19])
36+
(function any __init__ [3,1 | 26]-[4,18 | 70]
37+
(tree [3,1 | 26]-[4,18 | 70]
38+
(variable any self [3,13 | 38]-[3,25 | 50])
39+
(variable any side [3,13 | 38]-[3,25 | 50])))
40+
(function any area [6,1 | 73]-[7,30 | 119]
41+
(tree [6,1 | 73]-[7,30 | 119]
42+
(variable any self [6,9 | 81]-[6,15 | 87])))
43+
(function any perimeter [9,1 | 122]-[10,22 | 165]
44+
(tree [9,1 | 122]-[10,22 | 165]
45+
(variable any self [9,14 | 135]-[9,20 | 141])))))
46+
(function any main [12,0 | 167]-[13,6 | 185]
47+
(tree [12,0 | 167]-[13,6 | 185]
48+
(assignment int a [13,1 | 180]-[13,2 | 181]))))
2449
`,
2550
},
2651
}

languages/python/symbols.txt

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,41 @@
11
(import_statement
2-
name: (_) @import.path) @import
2+
name: (_) @import.path) @import
3+
4+
(module [(class_definition
5+
name: (identifier) @class.name
6+
body: (block [
7+
(expression_statement
8+
(assignment
9+
left: (identifier) @variable.name
10+
type: (_)? @variable.return-type
11+
right: (_) @variable.content) @variable)
12+
13+
(function_definition
14+
name: (identifier) @method.name
15+
parameters: (parameters
16+
[
17+
(identifier) @parameter.name
18+
(typed_parameter
19+
((identifier) @parameter.name)
20+
type: (_) @parameter.return-type)
21+
]? @parameter) @parameters
22+
body: (block
23+
(return_statement (_) @block.content)?) @block) @method
24+
]) @class.body) @class
325

426
(function_definition
5-
parameters: (parameters
6-
[
7-
(identifier) @parameter.name
8-
(typed_parameter
9-
((identifier) @parameter.name)
10-
type: (_) @parameter.return-type)
11-
]? @parameter) @parameters) @function
12-
(return_statement
13-
(_) @block.content)?
27+
name: (identifier) @function.name
28+
parameters: (parameters
29+
[
30+
(identifier) @parameter.name
31+
(typed_parameter
32+
((identifier) @parameter.name)
33+
type: (_) @parameter.return-type)
34+
]? @parameter) @parameters
35+
body: (block
36+
(return_statement (_) @block.content)?) @block) @function])
1437

1538
(expression_statement
16-
(assignment
17-
left: (identifier) @assignment.name
18-
right: (identifier) @assignment.content) @assignment)
39+
(assignment
40+
left: (identifier) @assignment.name
41+
right: (_) @assignment.content) @assignment)

0 commit comments

Comments
 (0)