summaryrefslogtreecommitdiff
path: root/queries/elixir/locals.scm
diff options
context:
space:
mode:
Diffstat (limited to 'queries/elixir/locals.scm')
-rw-r--r--queries/elixir/locals.scm144
1 files changed, 86 insertions, 58 deletions
diff --git a/queries/elixir/locals.scm b/queries/elixir/locals.scm
index 29aacf00..b79feb3a 100644
--- a/queries/elixir/locals.scm
+++ b/queries/elixir/locals.scm
@@ -1,7 +1,3 @@
-; Scopes
-(call (do_block)) @scope
-(stab_clause) @scope
-
; References
(identifier) @reference
(alias) @reference
@@ -11,39 +7,6 @@
target: ((identifier) @_identifier (#eq? @_identifier "defmodule"))
(arguments (alias) @definition.type))
-; Local Function Definitions
-; TODO: add support for test blocks
-; test "foo", %{conn: conn} do
-(call
- target: ((identifier) @_identifier (#any-of? @_identifier "def" "defp" "defmacro" "defmacrop" "defguard" "defguardp" "defn" "defnp" "for"))
- (arguments [
- (identifier) @definition.function
- (binary_operator left: (identifier) @definition.function)
- (call target: (identifier) @definition.function (arguments [
- (identifier) @definition.parameter
- (_ (identifier) @definition.parameter)
- (_ (_ (identifier) @definition.parameter))
- (_ (_ (_ (identifier) @definition.parameter)))
- (_ (_ (_ (_ (identifier) @definition.parameter))))
- (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))
- (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))
- (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))))))
- ]))
- ]?) (#set! definition.function.scope parent))
-
; Pattern Match Definitions
(binary_operator left: [
(identifier) @definition.var
@@ -70,27 +33,55 @@
] operator: "=")
; Stab Clause Definitions
-(stab_clause left: [
- (_ (identifier) @definition.var)
- (_ (_ (identifier) @definition.var))
- (_ (_ (_ (identifier) @definition.var)))
- (_ (_ (_ (_ (identifier) @definition.var))))
- (_ (_ (_ (_ (_ (identifier) @definition.var)))))
- (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))
- (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))))
- (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))))
+(stab_clause
+ left: [
+ (arguments [
+ (identifier) @definition.var
+ (_ (identifier) @definition.var)
+ (_ (_ (identifier) @definition.var))
+ (_ (_ (_ (identifier) @definition.var)))
+ (_ (_ (_ (_ (identifier) @definition.var))))
+ (_ (_ (_ (_ (_ (identifier) @definition.var)))))
+ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))
+ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))))
+ ])
+ (binary_operator
+ left: (arguments [
+ (identifier) @definition.var
+ (_ (identifier) @definition.var)
+ (_ (_ (identifier) @definition.var))
+ (_ (_ (_ (identifier) @definition.var)))
+ (_ (_ (_ (_ (identifier) @definition.var))))
+ (_ (_ (_ (_ (_ (identifier) @definition.var)))))
+ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))
+ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))))
+ ]) operator: "when")
])
; Aliases
@@ -104,3 +95,40 @@
(_ (_ (_ (_ (alias) @definition.import))))
]
))
+
+; Local Function Definitions & Scopes
+(call
+ target: ((identifier) @_identifier (#any-of? @_identifier "def" "defp" "defmacro" "defmacrop" "defguard" "defguardp" "defn" "defnp" "for"))
+ (arguments [
+ (identifier) @definition.function
+ (binary_operator left: (identifier) @definition.function operator: "when")
+ (binary_operator (identifier) @definition.parameter)
+ (call target: (identifier) @definition.function (arguments [
+ (identifier) @definition.parameter
+ (_ (identifier) @definition.parameter)
+ (_ (_ (identifier) @definition.parameter))
+ (_ (_ (_ (identifier) @definition.parameter)))
+ (_ (_ (_ (_ (identifier) @definition.parameter))))
+ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))
+ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))
+ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))))
+ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))))))
+ ]))
+ ]?) (#set! definition.function.scope parent)
+ (do_block)?
+) @scope
+
+; Stab Clause Scopes
+(stab_clause) @scope