summaryrefslogtreecommitdiff
path: root/lua/nvim-treesitter/install.lua
diff options
context:
space:
mode:
authorStephan Seitz <sseitz@nvidia.com>2021-10-01 18:18:11 +0200
committerStephan Seitz <stephan.seitz@fau.de>2021-10-01 22:21:16 +0200
commit2a073f760caf6b1611ce39815d2fdf66c6967147 (patch)
tree8f9fdbe95c891c9ca48bfc04a239fa53b613c003 /lua/nvim-treesitter/install.lua
parentf05f471185f6106a86c4ab5e57015db2faab31e0 (diff)
feat(install): add options `prefer_git` and `command_extra_args`
Fixes #1888
Diffstat (limited to 'lua/nvim-treesitter/install.lua')
-rw-r--r--lua/nvim-treesitter/install.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua
index 01bfef4d..c0f85e9f 100644
--- a/lua/nvim-treesitter/install.lua
+++ b/lua/nvim-treesitter/install.lua
@@ -12,6 +12,8 @@ local M = {}
local lockfile = {}
M.compilers = { vim.fn.getenv "CC", "cc", "gcc", "clang", "cl" }
+M.prefer_git = fn.has "win32" == 1
+M.command_extra_args = {}
local started_commands = 0
local finished_commands = 0
@@ -124,6 +126,10 @@ function M.iter_cmd(cmd_list, i, lang, success_message)
print(get_job_status() .. " " .. attr.info)
end
+ if attr.opts and attr.opts.args and M.command_extra_args[attr.cmd] then
+ vim.list_extend(attr.opts.args, M.command_extra_args[attr.cmd])
+ end
+
if type(attr.cmd) == "function" then
local ok, err = pcall(attr.cmd)
if ok then
@@ -180,6 +186,9 @@ end
local function get_command(cmd)
local options = ""
if cmd.opts and cmd.opts.args then
+ if M.command_extra_args[cmd.cmd] then
+ vim.list_extend(cmd.opts.args, M.command_extra_args[cmd.cmd])
+ end
for _, opt in ipairs(cmd.opts.args) do
options = string.format("%s %s", options, opt)
end
@@ -270,7 +279,10 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync,
local command_list = {}
if not from_local_path then
vim.list_extend(command_list, { shell.select_install_rm_cmd(cache_folder, project_name) })
- vim.list_extend(command_list, shell.select_download_commands(repo, project_name, cache_folder, revision))
+ vim.list_extend(
+ command_list,
+ shell.select_download_commands(repo, project_name, cache_folder, revision, M.prefer_git)
+ )
end
if generate_from_grammar then
if repo.generate_requires_npm then