aboutsummaryrefslogtreecommitdiffstats
path: root/queries/elixir
diff options
context:
space:
mode:
authorConnor Lay (Clay) <connorlay@pm.me>2021-10-08 13:26:46 -0700
committerStephan Seitz <stephan.seitz@fau.de>2021-10-13 01:31:49 +0200
commit725ef8fc1828db4882b1b590fd81287588d5f0ee (patch)
tree55ed906451ba8b4d03bdd178a5ee5035ea9b09c3 /queries/elixir
parentIncrease Elixir locals pattern match depth to 20 nodes (diff)
downloadnvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.tar
nvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.tar.gz
nvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.tar.bz2
nvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.tar.lz
nvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.tar.xz
nvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.tar.zst
nvim-treesitter-725ef8fc1828db4882b1b590fd81287588d5f0ee.zip
Locals matching "when" operator, add pipe queries
Diffstat (limited to 'queries/elixir')
-rw-r--r--queries/elixir/highlights.scm13
-rw-r--r--queries/elixir/locals.scm144
2 files changed, 95 insertions, 62 deletions
diff --git a/queries/elixir/highlights.scm b/queries/elixir/highlights.scm
index f8c810163..c1f23bbfc 100644
--- a/queries/elixir/highlights.scm
+++ b/queries/elixir/highlights.scm
@@ -86,16 +86,16 @@
(stab_clause
operator: _ @operator)
-; Calling a local function
+; Local Function Calls
(call target: (identifier) @function)
-; Calling a remote function
+; Remove Function Calls
(call target: (dot left: [
(atom) @type
(_)
] right: (identifier) @function) (arguments))
-; Calling a local def function
+; Definition Function Calls
(call target: ((identifier) @keyword.function (#any-of? @keyword.function
"def"
"defdelegate"
@@ -142,7 +142,7 @@
"with"
)))
-; Special constants
+; Special Constants
((identifier) @constant.builtin (#any-of? @constant.builtin
"__CALLER__"
"__DIR__"
@@ -182,6 +182,11 @@
)
])
+; Pipe Operator
+(binary_operator
+ operator: "|>"
+ right: (identifier) @function)
+
; Module attributes
(unary_operator
operator: "@" @constant
diff --git a/queries/elixir/locals.scm b/queries/elixir/locals.scm
index 29aacf004..b79feb3ad 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