fix(lsp): add check for missing dependencies
This commit is contained in:
+37
@@ -199,7 +199,44 @@ local function configure_server(name, server)
|
|||||||
reload_server_buf(name)
|
reload_server_buf(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function get_missing_deps(server)
|
||||||
|
local missing_deps = {}
|
||||||
|
|
||||||
|
if server.dependencies ~= nil then
|
||||||
|
for _, dep in ipairs(server.dependencies) do
|
||||||
|
if not utils.is_installed(dep) then
|
||||||
|
table.insert(missing_deps, dep)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if server.py_module_deps ~= nil then
|
||||||
|
for _, mod in ipairs(server.py_module_deps) do
|
||||||
|
if not utils.python3_module_is_installed(mod) then
|
||||||
|
table.insert(missing_deps, "python3-" .. mod)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return missing_deps
|
||||||
|
end
|
||||||
|
|
||||||
local function setup_server(name, server)
|
local function setup_server(name, server)
|
||||||
|
local missing_deps = get_missing_deps(server)
|
||||||
|
if #missing_deps > 0 then
|
||||||
|
utils.warn(
|
||||||
|
("Disabling %s because the following package(s) "
|
||||||
|
.. "are not installed: %s")
|
||||||
|
:format(
|
||||||
|
name,
|
||||||
|
table.concat(missing_deps, ", ")
|
||||||
|
),
|
||||||
|
module_name
|
||||||
|
)
|
||||||
|
server.enable = false
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local registry = require("mason-registry")
|
local registry = require("mason-registry")
|
||||||
local pkg_name
|
local pkg_name
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user