mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-08 14:30:05 -04:00
fix(installer): ignore globally installed parsers
Problem: `is_installed` is picking up parsers shipped by neovim v0.8
with unknown version and compatability
Solution: only consider a parser installed if it's available in the
parsers_install_dir
This commit is contained in:
parent
b79c763c03
commit
acb65eedc5
2 changed files with 10 additions and 2 deletions
|
|
@ -574,7 +574,7 @@ end
|
|||
---plugin first, followed by the "site" dir from "runtimepath". "site" dir will
|
||||
---be created if it doesn't exist. Using only the package dir won't work when
|
||||
---the plugin is installed with Nix, since the "/nix/store" is read-only.
|
||||
---@param folder_name string
|
||||
---@param folder_name string|nil
|
||||
---@return string|nil, string|nil
|
||||
function M.get_parser_install_dir(folder_name)
|
||||
folder_name = folder_name or "parser"
|
||||
|
|
|
|||
|
|
@ -91,10 +91,18 @@ local function get_installed_revision(lang)
|
|||
end
|
||||
end
|
||||
|
||||
---Checks if parser is installed with nvim-treesitter
|
||||
---@param lang string
|
||||
---@return boolean
|
||||
local function is_installed(lang)
|
||||
return #api.nvim_get_runtime_file("parser/" .. lang .. ".so", false) > 0
|
||||
local matched_parsers = vim.api.nvim_get_runtime_file("parser/" .. lang .. ".so", true) or {}
|
||||
for _, path in ipairs(matched_parsers) do
|
||||
local install_dir = configs.get_parser_install_dir()
|
||||
if vim.startswith(path, install_dir) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
---@param lang string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue