mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-18 03:10:04 -04:00
Find package path based on the Lua source file
This is more robust compared to the previous method where we walked up the tree and matched on the directory name, which also required that the repository was cloned in a directory named `nvim-treesitter`.
This commit is contained in:
parent
10848ca5bd
commit
fd6d09fd1f
2 changed files with 6 additions and 15 deletions
|
|
@ -200,9 +200,7 @@ local function install(with_sync, ask_reinstall)
|
||||||
return api.nvim_err_writeln('Git is required on your system to run this command')
|
return api.nvim_err_writeln('Git is required on your system to run this command')
|
||||||
end
|
end
|
||||||
|
|
||||||
local package_path, err = utils.get_package_path()
|
local package_path = utils.get_package_path()
|
||||||
if err then return api.nvim_err_writeln(err) end
|
|
||||||
|
|
||||||
local cache_folder, err = utils.get_cache_dir()
|
local cache_folder, err = utils.get_cache_dir()
|
||||||
if err then return api.nvim_err_writeln(err) end
|
if err then return api.nvim_err_writeln(err) end
|
||||||
|
|
||||||
|
|
@ -267,11 +265,7 @@ function M.uninstall(lang)
|
||||||
M.uninstall(lang)
|
M.uninstall(lang)
|
||||||
end
|
end
|
||||||
elseif lang then
|
elseif lang then
|
||||||
local package_path, err = utils.get_package_path()
|
local package_path = utils.get_package_path()
|
||||||
if err then
|
|
||||||
print(err)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local parser_lib = package_path..path_sep.."parser"..path_sep..lang..".so"
|
local parser_lib = package_path..path_sep.."parser"..path_sep..lang..".so"
|
||||||
|
|
||||||
local command_list = {
|
local command_list = {
|
||||||
|
|
|
||||||
|
|
@ -18,14 +18,11 @@ function M.setup_commands(mod, commands)
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.get_package_path()
|
function M.get_package_path()
|
||||||
for _, path in pairs(api.nvim_list_runtime_paths()) do
|
-- Path to this source file, removing the leading '@'
|
||||||
local last_segment = vim.fn.fnamemodify(path, ":p:h:t")
|
local source = string.sub(debug.getinfo(1, 'S').source, 2)
|
||||||
if last_segment == "nvim-treesitter" then
|
|
||||||
return path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return nil, 'Plugin runtime path not found.'
|
-- Path to the package root
|
||||||
|
return fn.fnamemodify(source, ":p:h:h:h")
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.get_cache_dir()
|
function M.get_cache_dir()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue