mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-16 10:20:11 -04:00
Refactor highlights and locals queries
This commit is contained in:
parent
a04b0abf21
commit
a98e5c1f4f
2 changed files with 143 additions and 159 deletions
|
|
@ -13,83 +13,68 @@
|
|||
(module) @definition.type
|
||||
(#eq? @_call-name "defmodule"))
|
||||
|
||||
(call
|
||||
function: (function_identifier) @_call-name
|
||||
(call
|
||||
function: (function_identifier) @definition.function)
|
||||
(#any-of? @_call-name "def" "defp"))
|
||||
; Function definition without arguments
|
||||
(call (function_identifier) @_call-name
|
||||
(identifier) @definition.function
|
||||
(#any-of? @_call-name "def" "defp" "defguard" "defguardp"))
|
||||
|
||||
(call
|
||||
function: (function_identifier) @_call-name
|
||||
; Function definition with arguments
|
||||
(call (function_identifier) @_call-name
|
||||
(call
|
||||
function: (function_identifier) @definition.function
|
||||
(arguments
|
||||
[(identifier) @definition.parameter
|
||||
(tuple
|
||||
(identifier) @definition.parameter)
|
||||
(list
|
||||
(identifier) @definition.parameter)
|
||||
(map
|
||||
(keyword_list
|
||||
(identifier) @definition.parameter))
|
||||
(struct
|
||||
(keyword_list
|
||||
(identifier) @definition.parameter))
|
||||
(tuple (identifier) @definition.parameter)
|
||||
(list (identifier) @definition.parameter)
|
||||
(_
|
||||
(keyword_list (identifier) @definition.parameter))
|
||||
(binary_op
|
||||
left: (identifier) @definition.parameter
|
||||
operator: "\\\\")]
|
||||
(#lua-match? @definition.parameter "^[^_]")))
|
||||
operator: "\\\\")]))
|
||||
(#any-of? @_call-name "def" "defp"))
|
||||
|
||||
(call
|
||||
function: (function_identifier) @_call-name
|
||||
; Function definition with (some) arguments and guard(s)
|
||||
(call (function_identifier) @_call-name
|
||||
(binary_op
|
||||
left: (call
|
||||
function: (function_identifier) @definition.function
|
||||
(arguments
|
||||
[(identifier) @definition.parameter
|
||||
(tuple
|
||||
(identifier) @definition.parameter)
|
||||
(list
|
||||
(identifier) @definition.parameter)
|
||||
(map
|
||||
(keyword_list
|
||||
(identifier) @definition.parameter))
|
||||
(struct
|
||||
(keyword_list
|
||||
(identifier) @definition.parameter))]
|
||||
(#lua-match? @definition.parameter "^[^_]")))
|
||||
left:
|
||||
(call
|
||||
function: (function_identifier) @definition.function
|
||||
(arguments
|
||||
[(identifier) @definition.parameter
|
||||
(tuple (identifier) @definition.parameter)
|
||||
(list (identifier) @definition.parameter)
|
||||
(_
|
||||
(keyword_list (identifier) @definition.parameter))]))
|
||||
operator: "when")
|
||||
(#any-of? @_call-name "def" "defp"))
|
||||
(#any-of? @_call-name "def" "defp" "defguard" "defguardp"))
|
||||
|
||||
; Variable assignment and simple pattern matching
|
||||
(binary_op
|
||||
left:
|
||||
[(identifier) @definition.var
|
||||
(tuple
|
||||
(identifier) @definition.var)
|
||||
(list
|
||||
(identifier) @definition.var)
|
||||
(map
|
||||
(keyword_list
|
||||
(identifier) @definition.var))
|
||||
(struct
|
||||
(keyword_list
|
||||
(identifier) @definition.var))]
|
||||
operator: "="
|
||||
(#lua-match? @definition.var "^[^_]"))
|
||||
(tuple (identifier) @definition.var)
|
||||
(list (identifier) @definition.var)
|
||||
(_
|
||||
(keyword_list (identifier) @definition.var))]
|
||||
operator: "=")
|
||||
|
||||
; Simple stab expression (ex. case pattern matching) without guard(s)
|
||||
(stab_expression
|
||||
left:
|
||||
(bare_arguments
|
||||
[(identifier) @definition.var
|
||||
(tuple
|
||||
(identifier) @definition.var)
|
||||
(list
|
||||
(identifier) @definition.var)
|
||||
(map
|
||||
(keyword_list
|
||||
(identifier) @definition.var))
|
||||
(struct
|
||||
(keyword_list
|
||||
(identifier) @definition.var))])
|
||||
(#lua-match? @definition.var "^[^_]"))
|
||||
(tuple (identifier) @definition.var)
|
||||
(list (identifier) @definition.var)
|
||||
(_
|
||||
(keyword_list (identifier) @definition.var))]))
|
||||
|
||||
; Simple stab expression (ex. case pattern matching) with guard(s)
|
||||
(stab_expression
|
||||
left:
|
||||
(bare_arguments
|
||||
(binary_op
|
||||
left: [(identifier) @definition.var
|
||||
(tuple (identifier) @definition.var)
|
||||
(list (identifier) @definition.var)
|
||||
(_
|
||||
(keyword_list (identifier) @definition.var))])))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue