Update ts query lua

This commit is contained in:
Andy K. Massimino
2021-07-04 16:23:18 -04:00
parent 4cd3736a68
commit 78775d82af
2 changed files with 19 additions and 0 deletions

View File

@@ -363,6 +363,14 @@ function! s:treesitter_init_module() " {{{1
endif
lua require'treesitter-matchup'.init()
augroup matchup_filetype_query
au!
autocmd FileType query
\ autocmd! MatchupTreesitter BufWritePost <buffer>
\ call v:lua.require('nvim-treesitter.third-party.query')
\ .invalidate_query_file(expand('%:p'))
augroup END
endfunction
"}}}1

View File

@@ -62,11 +62,16 @@ do
function M.invalidate_query_cache(lang, query_name)
if lang and query_name then
cache[lang][query_name] = nil
if query_files_cache[lang] then
query_files_cache[lang][query_name] = nil
end
elseif lang and not query_name then
query_files_cache[lang] = nil
for query_name, _ in pairs(cache[lang]) do
M.invalidate_query_cache(lang, query_name)
end
elseif not lang and not query_name then
query_files_cache = {}
for lang, _ in pairs(cache) do
for query_name, _ in pairs(cache[lang]) do
M.invalidate_query_cache(lang, query_name)
@@ -78,6 +83,12 @@ do
end
end
--- This function is meant for an autocommand and not to be used. Only use if file is a query file.
function M.invalidate_query_file(fname)
local fnamemodify = vim.fn.fnamemodify
M.invalidate_query_cache(fnamemodify(fname, ':p:h:t'), fnamemodify(fname, ':t:r'))
end
local function get_byte_offset(buf, row, col)
local lines = api.nvim_buf_get_lines(buf, row, row + 1, false)
if #lines < 1 then