aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-04-21 20:07:28 +0200
committerGitHub <noreply@github.com>2020-04-21 20:07:28 +0200
commit522030f1482c200480facbeb2d1d04130e06a997 (patch)
treecd8ba8fe9110e8622ef5c968e46f97aa3828b669
parentMerge pull request #13 from kyazdani42/fix-install (diff)
parentfeat: add typescript install (diff)
downloadnvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.tar
nvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.tar.gz
nvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.tar.bz2
nvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.tar.lz
nvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.tar.xz
nvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.tar.zst
nvim-treesitter-522030f1482c200480facbeb2d1d04130e06a997.zip
Merge pull request #15 from kyazdani42/enable-typescript-install
feat: enable typescript and tsx install
-rw-r--r--lua/nvim-treesitter/install.lua42
1 files changed, 28 insertions, 14 deletions
diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua
index 62405bae1..b8d72dfbc 100644
--- a/lua/nvim-treesitter/install.lua
+++ b/lua/nvim-treesitter/install.lua
@@ -72,11 +72,20 @@ M.repositories = {
url = "https://github.com/tree-sitter/tree-sitter-swift",
files = { "src/parser.c" },
},
- -- TODO: find a way to install c-sharp and typescript properly
- -- csharp = {
- -- url = "https://github.com/tree-sitter/tree-sitter-c-sharp",
- -- files = { "src/parser.c", "src/scanner.c" },
- -- },
+ csharp = {
+ url = "https://github.com/tree-sitter/tree-sitter-c-sharp",
+ files = { "src/parser.c", "src/scanner.c" },
+ },
+ typescript = {
+ url = "https://github.com/tree-sitter/tree-sitter-typescript",
+ files = { "src/parser.c", "src/scanner.c" },
+ location = "tree-sitter-typescript/typescript"
+ },
+ tsx = {
+ url = "https://github.com/tree-sitter/tree-sitter-typescript",
+ files = { "src/parser.c", "src/scanner.c" },
+ location = "tree-sitter-tsx/tsx"
+ }
}
local function get_package_path()
@@ -120,7 +129,10 @@ local function iter_cmd(cmd_list, i, ft)
end
local function run_install(cache_folder, package_path, ft, repo)
- local project_repo = cache_folder..'/tree-sitter-'..ft
+ local project_name = 'tree-sitter-'..ft
+ local project_repo = cache_folder..'/'..project_name
+ -- compile_location only needed for typescript installs.
+ local compile_location = cache_folder..'/'..(repo.location or project_name)
local parser_lib_name = package_path.."/parser/"..ft..".so"
local command_list = {
{
@@ -134,7 +146,7 @@ local function run_install(cache_folder, package_path, ft, repo)
info = 'Downloading...',
err = 'Error during download, please verify your internet connection',
opts = {
- args = { 'clone', repo.url },
+ args = { 'clone', '--single-branch', '--branch', 'master', '--depth', '1', repo.url, project_name },
cwd = cache_folder,
},
},
@@ -144,13 +156,13 @@ local function run_install(cache_folder, package_path, ft, repo)
err = 'Error during compilation',
opts = {
args = { '-o', 'parser.so', '-shared', '-lstdc++', unpack(repo.files), '-Os', '-I./src' },
- cwd = project_repo
+ cwd = compile_location
}
},
{
cmd = 'mv',
opts = {
- args = { project_repo..'/parser.so', parser_lib_name }
+ args = { compile_location..'/parser.so', parser_lib_name }
}
},
{
@@ -206,17 +218,19 @@ function M.checkhealth()
if fn.executable('git') == 0 then
health_error('`git` executable not found.', {
- 'Install it with your package manager.',
- 'Check that your `$PATH` is set correctly.'})
+ 'Install it with your package manager.',
+ 'Check that your `$PATH` is set correctly.'
+ })
else
health_ok('`git` executable found.')
end
if fn.executable('cc') == 0 then
health_error('`cc` executable not found.', {
- 'Install `gcc` with your package manager.',
- 'Install `clang` with your package manager.',
- 'Check that your `$PATH` is set correctly.'})
+ 'Install `gcc` with your package manager.',
+ 'Install `clang` with your package manager.',
+ 'Check that your `$PATH` is set correctly.'
+ })
else
health_ok('`cc` executable found.')
end