fix(treesitter): update parsers and queries

This commit is contained in:
Christian Clason
2024-04-05 18:06:24 +02:00
parent 73de98256c
commit 39a0e6bf3c
9 changed files with 167 additions and 185 deletions

View File

@@ -180,27 +180,24 @@
(vararg_expression) @variable.parameter.builtin
(function_declaration
name:
[
(identifier) @function
(dot_index_expression
field: (identifier) @function)
])
name: [
(identifier) @function
(dot_index_expression
field: (identifier) @function)
])
(function_declaration
name:
(method_index_expression
method: (identifier) @function.method))
name: (method_index_expression
method: (identifier) @function.method))
(assignment_statement
(variable_list
.
name:
[
(identifier) @function
(dot_index_expression
field: (identifier) @function)
])
name: [
(identifier) @function
(dot_index_expression
field: (identifier) @function)
])
(expression_list
.
value: (function_definition)))
@@ -211,14 +208,13 @@
value: (function_definition)))
(function_call
name:
[
(identifier) @function.call
(dot_index_expression
field: (identifier) @function.call)
(method_index_expression
method: (identifier) @function.method.call)
])
name: [
(identifier) @function.call
(dot_index_expression
field: (identifier) @function.call)
(method_index_expression
method: (identifier) @function.method.call)
])
(function_call
(identifier) @function.builtin
@@ -253,21 +249,19 @@
(dot_index_expression
field: (identifier) @_method
(#any-of? @_method "find" "match" "gmatch" "gsub"))
arguments:
(arguments
.
(_)
.
(string
content: (string_content) @string.regexp)))
arguments: (arguments
.
(_)
.
(string
content: (string_content) @string.regexp)))
;("123"):match("%d+")
(function_call
(method_index_expression
method: (identifier) @_method
(#any-of? @_method "find" "match" "gmatch" "gsub"))
arguments:
(arguments
.
(string
content: (string_content) @string.regexp)))
arguments: (arguments
.
(string
content: (string_content) @string.regexp)))

View File

@@ -1,67 +1,69 @@
((function_call
name:
[
(identifier) @_cdef_identifier
(_
_
(identifier) @_cdef_identifier)
]
arguments:
(arguments
(string
content: _ @injection.content)))
name: [
(identifier) @_cdef_identifier
(_
_
(identifier) @_cdef_identifier)
]
arguments: (arguments
(string
content: _ @injection.content)))
(#set! injection.language "c")
(#eq? @_cdef_identifier "cdef"))
((function_call
name: (_) @_vimcmd_identifier
arguments:
(arguments
(string
content: _ @injection.content)))
arguments: (arguments
(string
content: _ @injection.content)))
(#set! injection.language "vim")
(#any-of? @_vimcmd_identifier
"vim.cmd" "vim.api.nvim_command" "vim.api.nvim_command" "vim.api.nvim_exec2"))
((function_call
name: (_) @_vimcmd_identifier
arguments:
(arguments
(string
content: _ @injection.content) .))
arguments: (arguments
(string
content: _ @injection.content) .))
(#set! injection.language "query")
(#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse"))
((function_call
name: (_) @_vimcmd_identifier
arguments:
(arguments
.
(_)
.
(string
content: _ @_method)
.
(string
content: _ @injection.content)))
arguments: (arguments
.
(_)
.
(string
content: _ @_method)
.
(string
content: _ @injection.content)))
(#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify")
(#eq? @_method "nvim_exec_lua")
(#set! injection.language "lua"))
; exec_lua [[ ... ]] in functionaltests
((function_call
name: (identifier) @_function
arguments: (arguments
(string
content: (string_content) @injection.content)))
(#eq? @_function "exec_lua")
(#set! injection.language "lua"))
; vim.api.nvim_create_autocmd("FileType", { command = "injected here" })
(function_call
name: (_) @_vimcmd_identifier
arguments:
(arguments
.
(_)
.
(table_constructor
(field
name: (identifier) @_command
value:
(string
content: (_) @injection.content))) .)
arguments: (arguments
.
(_)
.
(table_constructor
(field
name: (identifier) @_command
value: (string
content: (_) @injection.content))) .)
; limit so only 2-argument functions gets matched before pred handle
(#eq? @_vimcmd_identifier "vim.api.nvim_create_autocmd")
(#eq? @_command "command")
@@ -69,31 +71,29 @@
(function_call
name: (_) @_user_cmd
arguments:
(arguments
.
(_)
.
(string
content: (_) @injection.content)
.
(_) .)
arguments: (arguments
.
(_)
.
(string
content: (_) @injection.content)
.
(_) .)
(#eq? @_user_cmd "vim.api.nvim_create_user_command")
(#set! injection.language "vim"))
(function_call
name: (_) @_user_cmd
arguments:
(arguments
.
(_)
.
(_)
.
(string
content: (_) @injection.content)
.
(_) .)
arguments: (arguments
.
(_)
.
(_)
.
(string
content: (_) @injection.content)
.
(_) .)
; Limiting predicate handling to only functions with 4 arguments
(#eq? @_user_cmd "vim.api.nvim_buf_create_user_command")
(#set! injection.language "vim"))