From d169c0614c55c69afd1cc880b6bef004e4184aa7 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Sun, 19 Apr 2020 17:54:27 +0200 Subject: fix: prepare injections mechanism --- lua/nvim-treesitter/parsers.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lua/nvim-treesitter/parsers.lua') diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index c8517773..e046ca45 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -8,13 +8,17 @@ function M.has_parser(lang) return #api.nvim_get_runtime_file('parser/' .. lang .. '.*', false) > 0 end -function M.get_parser(bufnr) +function M.get_parser(bufnr, lang) if M.has_parser() then local buf = bufnr or api.nvim_get_current_buf() + local lang = lang or api.nvim_buf_get_option(buf, 'ft') if not M[buf] then - M[buf] = ts.get_parser(buf) + M[buf] = {} end - return M[buf] + if not M[buf][lang] then + M[buf][lang] = ts.get_parser(buf, lang) + end + return M[buf][lang] end end -- cgit v1.2.3