aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorAdnoC <adam.r.cutler@gmail.com>2021-01-04 13:28:26 -0500
committerThomas Vigouroux <tomvig38@gmail.com>2021-04-15 16:56:49 +0200
commit4d2813f03b233c8caacc95aa378ec4fc86cede34 (patch)
treeca246ddf41ee9154a549e0809b16e4eaab97e0a9 /lua
parentfix windows check (diff)
downloadnvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.tar
nvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.tar.gz
nvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.tar.bz2
nvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.tar.lz
nvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.tar.xz
nvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.tar.zst
nvim-treesitter-4d2813f03b233c8caacc95aa378ec4fc86cede34.zip
use locked revision when downloading via git
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-treesitter/shell_command_selectors.lua33
1 files changed, 29 insertions, 4 deletions
diff --git a/lua/nvim-treesitter/shell_command_selectors.lua b/lua/nvim-treesitter/shell_command_selectors.lua
index 8c7963584..dea96db77 100644
--- a/lua/nvim-treesitter/shell_command_selectors.lua
+++ b/lua/nvim-treesitter/shell_command_selectors.lua
@@ -125,11 +125,12 @@ function M.select_download_commands(repo, project_name, cache_folder, revision)
local has_curl = vim.fn.executable('curl') == 1
local is_github = repo.url:find("github.com", 1, true)
local is_gitlab = repo.url:find("gitlab.com", 1, true)
- local is_windows = fn.hs('win32')
+ local is_windows = fn.has('win32') == 1
+
+ revision = revision or repo.branch or "master"
if has_tar and has_curl and (is_github or is_gitlab) and not is_windows then
- revision = revision or repo.branch or "master"
local path_sep = utils.get_path_sep()
local url = repo.url:gsub('.git$', '')
@@ -172,22 +173,46 @@ function M.select_download_commands(repo, project_name, cache_folder, revision)
M.select_install_rm_cmd(cache_folder, project_name..'-tmp')
}
else
+ local git_folder
+ if is_windows then
+ git_folder = cache_folder ..'\\'.. project_name
+ else
+ git_folder = cache_folder ..'/'.. project_name
+ end
+
+ local clone_error = 'Error during download, please verify your internet connection'
+ if is_windows then
+ clone_error = clone_error .. ". If on Windows you may need to enable Developer mode"
+ end
+
return {
{
cmd = 'git',
info = 'Downloading...',
- err = 'Error during download, please verify your internet connection',
+ err = clone_error,
opts = {
args = {
'clone',
+ '-c', 'core.symlinks=true',
'--single-branch',
'--branch', repo.branch or 'master',
- '--depth', '1',
repo.url,
project_name
},
cwd = cache_folder,
},
+ },
+ {
+ cmd = 'git',
+ info = 'Checking out locked revision',
+ err = 'Error while checking out revision',
+ opts = {
+ args = {
+ '-c', 'core.symlinks=true',
+ 'checkout', revision
+ },
+ cwd = git_folder
+ }
}
}
end