;; Forked from https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/lua/injections.scm ;; Licensed under the Apache License 2.0 ( (function_call name: [ (identifier) @_cdef_identifier (_ _ (identifier) @_cdef_identifier ) ] arguments: (arguments (string content: _ @c ) ) ) (#eq? @_cdef_identifier "cdef") ) ( (function_call name: (_) @_vimcmd_identifier arguments: (arguments . (string content: _ @vim ) ) ) (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec" "vim.api.nvim_exec2") ) ( (function_call name: (_) @_vimcmd_identifier arguments: (arguments (string content: _ @query ) . ) ) (#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse_query" "vim.treesitter.query.parse") ) ; vim.rcprequest(123, "nvim_exec_lua", "return vim.api.nvim_buf_get_lines(0, 0, -1, false)", false) ( (function_call name: (_) @_vimcmd_identifier arguments: (arguments . (_) . (string content: _ @_method ) . (string content: _ @lua ) ) ) (#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify") (#eq? @_method "nvim_exec_lua") ) ; highlight string as query if starts with `;; query` (string content: _ @query (#lua-match? @query "^%s*;+%s?query") ) ( (comment) @luadoc (#lua-match? @luadoc "[-][-][-][%s]*@") (#offset! @luadoc 0 3 0 0) ) ; string.match("123", "%d+") (function_call (dot_index_expression field: (identifier) @_method (#any-of? @_method "find" "match") ) arguments: (arguments (_) . (string content: _ @luap ) ) ) (function_call (dot_index_expression field: (identifier) @_method (#any-of? @_method "gmatch" "gsub") ) arguments: (arguments (_) (string content: _ @luap ) ) ) ; ("123"):match("%d+") (function_call (method_index_expression method: (identifier) @_method (#any-of? @_method "find" "match") ) arguments: (arguments . (string content: _ @luap ) ) ) (function_call (method_index_expression method: (identifier) @_method (#any-of? @_method "gmatch" "gsub") ) arguments: (arguments (string content: _ @luap ) ) ) (comment) @comment