diff options
Diffstat (limited to 'lua/nvim-treesitter/install.lua')
| -rw-r--r-- | lua/nvim-treesitter/install.lua | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 5362c860..4b187f74 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -14,6 +14,7 @@ local lockfile = {} M.compilers = { vim.fn.getenv "CC", "cc", "gcc", "clang", "cl", "zig" } M.prefer_git = fn.has "win32" == 1 M.command_extra_args = {} +M.ts_generate_args = nil local started_commands = 0 local finished_commands = 0 @@ -259,6 +260,15 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, ) end return + else + if not M.ts_generate_args then + local ts_cli_version = utils.ts_cli_version() + if ts_cli_version and vim.split(ts_cli_version, " ")[1] > "0.20.2" then + M.ts_generate_args = { "generate", "--abi", vim.treesitter.language_version } + else + M.ts_generate_args = { "generate" } + end + end end if generate_from_grammar and vim.fn.executable "node" ~= 1 then api.nvim_err_writeln "Node JS not found: `node` is not executable!" @@ -308,7 +318,7 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, info = "Generating source files from grammar.js...", err = 'Error during "tree-sitter generate"', opts = { - args = { "generate" }, + args = M.ts_generate_args, cwd = compile_location, }, }, |
