From bb319daf5f374064e824f84f1f7cda487313af4e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 22 Jan 2022 11:02:55 +0100 Subject: feat: specify abi version for generate on newer ts cli Check tree-sitter CLI version and if > 0.20.3 and generating a parser from grammar, use `--abi=vim.treesitter.language_version`. Besides being able to opt-in to newer ABI benefits, this is a necessary workaround for an upstream bug with 0.20.3, where `parser.h` is not generated if the (optional) `--abi` flag is omitted. --- lua/nvim-treesitter/utils.lua | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lua/nvim-treesitter/utils.lua') diff --git a/lua/nvim-treesitter/utils.lua b/lua/nvim-treesitter/utils.lua index e6a6358a..0e836404 100644 --- a/lua/nvim-treesitter/utils.lua +++ b/lua/nvim-treesitter/utils.lua @@ -193,4 +193,13 @@ function M.to_func(a) return type(a) == "function" and a or M.constant(a) end +function M.ts_cli_version() + if fn.executable "tree-sitter" == 1 then + local handle = io.popen "tree-sitter -V" + local result = handle:read "*a" + handle:close() + return vim.split(result, "\n")[1]:match "[^tree%psitter ].*" + end +end + return M -- cgit v1.2.3