/ queries / python / assignments.scm
assignments.scm
 1  ;; ═════════════════════════════════════════════════════════════════
 2  ;; Python Variable Assignment Queries (for chain tracking)
 3  ;; ═════════════════════════════════════════════════════════════════
 4  ;; These patterns capture variable-to-variable assignments that may
 5  ;; form chains back to environment variables.
 6  ;;
 7  ;; Example chain: env = os.environ; config = env; val = config["KEY"]
 8  
 9  ;; ───────────────────────────────────────────────────────────────────
10  ;; b = a (simple assignment from identifier)
11  ;; ───────────────────────────────────────────────────────────────────
12  (assignment
13    left: (identifier) @assignment_target
14    right: (identifier) @assignment_source) @assignment
15  
16  ;; ───────────────────────────────────────────────────────────────────
17  ;; b: type = a (annotated assignment)
18  ;; ───────────────────────────────────────────────────────────────────
19  (assignment
20    left: (identifier) @assignment_target
21    type: (_)?
22    right: (identifier) @assignment_source) @assignment
23  
24  ;; ───────────────────────────────────────────────────────────────────
25  ;; Walrus operator: (b := a)
26  ;; ───────────────────────────────────────────────────────────────────
27  (named_expression
28    name: (identifier) @assignment_target
29    value: (identifier) @assignment_source) @assignment