Skip to content
This repository was archived by the owner on Nov 2, 2025. It is now read-only.

Commit 19aa8de

Browse files
pqnCopybara Bot
andauthored
Project import generated by Copybara. (#9)
GitOrigin-RevId: c44aa3ca6ca6ce1bc8134c46867008f0082f16e3 Co-authored-by: Copybara Bot <[email protected]>
1 parent f23066c commit 19aa8de

File tree

3 files changed

+78
-7
lines changed

3 files changed

+78
-7
lines changed

goldens/test.py.golden

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,37 @@ pattern2b(1)
3939
Name: foo
4040
Reference (reference.call):
4141
Pattern2a.foo()
42+
43+
Name: DecoratedClass
44+
Doc:
45+
"""Decorated class docstring."""
46+
Definition (definition.class):
47+
@decorated1
48+
@decorated2
49+
class DecoratedClass:
50+
"""Decorated class docstring."""
51+
@decorated1
52+
@decorated2
53+
def decorated_method(self):
54+
"""Decorated method docstring."""
55+
56+
Name: decorated_method
57+
Parameters: (self)
58+
Doc:
59+
"""Decorated method docstring."""
60+
Definition (definition.function):
61+
@decorated1
62+
@decorated2
63+
def decorated_method(self):
64+
"""Decorated method docstring."""
65+
Lineage: [DecoratedClass]
66+
67+
Name: decorated_function
68+
Parameters: ()
69+
Doc:
70+
"""Decorated function docstring."""
71+
Definition (definition.function):
72+
@decorated1
73+
@decorated2
74+
def decorated_function():
75+
"""Decorated function docstring."""

queries/python_tags.scm

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
;; 0. Pattern 0 from tags.scm.
2-
(class_definition
3-
name: (identifier) @name
4-
body: (block . (expression_statement . (string) @doc .)?)) @definition.class
2+
(
3+
(class_definition
4+
name: (identifier) @name
5+
body: (block . (expression_statement . (string) @doc .)?)) @definition.class
6+
(#not-has-parent? @definition.class decorated_definition)
7+
)
58

69
;; 1. Pattern 1 from tags.scm.
7-
(function_definition
8-
name: (identifier) @name
9-
parameters: (parameters) @codeium.parameters
10-
body: (block . (expression_statement . (string) @doc .)?)) @definition.function
10+
(
11+
(function_definition
12+
name: (identifier) @name
13+
parameters: (parameters) @codeium.parameters
14+
body: (block . (expression_statement . (string) @doc .)?)) @definition.function
15+
(#not-has-parent? @definition.function decorated_definition)
16+
)
1117

1218
;; 2. Pattern 2 from tags.scm.
1319
;; Note that we can't distinguish from @reference.class.
@@ -17,3 +23,18 @@
1723
(attribute
1824
attribute: (identifier) @name)
1925
]) @reference.call
26+
27+
(
28+
(decorated_definition
29+
definition: (class_definition
30+
name: (identifier) @name
31+
body: (block . (expression_statement . (string) @doc .)?))) @definition.class
32+
)
33+
34+
(
35+
(decorated_definition
36+
definition: (function_definition
37+
name: (identifier) @name
38+
parameters: (parameters) @codeium.parameters
39+
body: (block . (expression_statement . (string) @doc .)?))) @definition.function
40+
)

test_files/test.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# fmt: off
22

3+
from foo import decorated1
4+
from foo import decorated2
35
from foo import Pattern2a
46
from foo import pattern2b
57

@@ -21,4 +23,18 @@ def pattern1(param1):
2123
pattern2b(1)
2224
Pattern2a.foo()
2325

26+
@decorated1
27+
@decorated2
28+
class DecoratedClass:
29+
"""Decorated class docstring."""
30+
@decorated1
31+
@decorated2
32+
def decorated_method(self):
33+
"""Decorated method docstring."""
34+
35+
@decorated1
36+
@decorated2
37+
def decorated_function():
38+
"""Decorated function docstring."""
39+
2440
# fmt: on

0 commit comments

Comments
 (0)