treesitter cache

pull/280/head
ray-x 1 year ago
parent b9d9d6ad91
commit c74af231c7

@ -126,11 +126,12 @@ local nodestime = {}
M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col, ntype) M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col, ntype)
ulog(query, lang, defaults, pos_row, pos_col) ulog(query, lang, defaults, pos_row, pos_col)
bufnr = bufnr or api.nvim_get_current_buf() bufnr = bufnr or api.nvim_get_current_buf()
local key = tostring(bufnr) .. query
local filetime = fn.getftime(fn.expand('%')) local filetime = fn.getftime(fn.expand('%'))
if nodes[bufnr] ~= nil and nodestime[bufnr] ~= nil and filetime == nodestime[bufnr] then if nodes[key] ~= nil and nodestime[key] ~= nil and filetime == nodestime[key] then
return nodes[bufnr] return nodes[key]
end end
-- ulog(bufnr, nodestime[bufnr], filetime) -- ulog(bufnr, nodestime[key], filetime)
-- todo a huge number -- todo a huge number
pos_row = pos_row or 30000 pos_row = pos_row or 30000
local success, parsed_query = pcall(function() local success, parsed_query = pcall(function()
@ -222,8 +223,8 @@ M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col, ntype
end end
end end
ulog('total nodes got: ' .. tostring(#results)) ulog('total nodes got: ' .. tostring(#results))
nodes[bufnr] = results nodes[key] = results
nodestime[bufnr] = filetime nodestime[key] = filetime
return results return results
end end

@ -1,33 +1,33 @@
local eq = assert.are.same local eq = assert.are.same
local busted = require("plenary/busted") local busted = require('plenary/busted')
local cur_dir = vim.fn.expand("%:p:h") local cur_dir = vim.fn.expand('%:p:h')
describe("should get nodes ", function() describe('should get nodes ', function()
_GO_NVIM_CFG.verbose = true _GO_NVIM_CFG.verbose = true
_GO_NVIM_CFG.comment_placeholder = "" _GO_NVIM_CFG.comment_placeholder = ''
local status = require("plenary.reload").reload_module("go.nvim") local status = require('plenary.reload').reload_module('go.nvim')
status = require("plenary.reload").reload_module("nvim-treesitter/nvim-treesitter") status = require('plenary.reload').reload_module('nvim-treesitter/nvim-treesitter')
local name = vim.fn.tempname() .. ".go" local name = vim.fn.tempname() .. '.go'
print("tmp:" .. name) print('tmp:' .. name)
-- --
local path = cur_dir .. "/lua/tests/fixtures/ts/playlist.go" -- %:p:h ? %:p local path = cur_dir .. '/lua/tests/fixtures/ts/playlist.go' -- %:p:h ? %:p
local lines = vim.fn.readfile(path) local lines = vim.fn.readfile(path)
vim.fn.writefile(lines, name) vim.fn.writefile(lines, name)
local cmd = "silent exe 'e " .. name .. "'" local cmd = "silent exe 'e " .. name .. "'"
vim.cmd(cmd) vim.cmd(cmd)
local bufn = vim.fn.bufnr("") local bufn = vim.fn.bufnr('')
it("should get struct playlist and generate comments", function() it('should get struct playlist and generate comments', function()
vim.fn.setpos(".", { bufn, 20, 14, 0 }) vim.fn.setpos('.', { bufn, 20, 14, 0 })
local query = require("go.comment").gen(20, 14) local query = require('go.comment').gen(20, 14)
eq("// createPlaylist function  ", query) eq('// createPlaylist function  ', query)
end) end)
it("should get struct playlist and generate comments", function() it('should get struct playlist and generate comments', function()
vim.fn.setpos(".", { bufn, 14, 4, 0 }) vim.fn.setpos('.', { bufn, 14, 4, 0 })
local query = require("go.comment").gen(14, 4) local query = require('go.comment').gen(14, 4)
eq("// playlist struct  ", query) eq('// playlist struct  ', query)
end) end)
end) end)

Loading…
Cancel
Save