diff options
| author | William Boman <william@redwill.se> | 2021-10-18 13:59:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-18 13:59:43 +0200 |
| commit | cee25503cd6df85366c5106c40cc5240634e647e (patch) | |
| tree | 6e242bc0b0c5a6c3e40b165323a6c1a9c20576a1 /lua/nvim-lsp-installer/servers/init.lua | |
| parent | Remove the pdflatex check (#174) (diff) | |
| download | mason-cee25503cd6df85366c5106c40cc5240634e647e.tar mason-cee25503cd6df85366c5106c40cc5240634e647e.tar.gz mason-cee25503cd6df85366c5106c40cc5240634e647e.tar.bz2 mason-cee25503cd6df85366c5106c40cc5240634e647e.tar.lz mason-cee25503cd6df85366c5106c40cc5240634e647e.tar.xz mason-cee25503cd6df85366c5106c40cc5240634e647e.tar.zst mason-cee25503cd6df85366c5106c40cc5240634e647e.zip | |
speed up :LspInstall, :LspUninstall, :LspUninstallAll commands (#175)
- `:LspUninstallAll` now just nukes the entire install directory immediately,
instead of uninstalling each server one by one. There's also a confirmation
prompt now.
- `:LspInstall` & `:LspUninstall` now sources its autocompletion directly from
a Lua table, instead of sourcing the server names from each server module (thus
avoiding unnecessary `require` calls).
Diffstat (limited to 'lua/nvim-lsp-installer/servers/init.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 64359520..94a67b3c 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -176,10 +176,6 @@ function M.get_server(server_name) ):format(server_name, "https://github.com/williamboman/nvim-lsp-installer", server_factory) end -local function get_available_server_names() - return vim.tbl_keys(vim.tbl_extend("force", CORE_SERVERS, INITIALIZED_SERVERS)) -end - local function resolve_servers(server_names) return Data.list_map(function(server_name) local ok, server = M.get_server(server_name) @@ -190,20 +186,35 @@ local function resolve_servers(server_names) end, server_names) end +function M.get_available_server_names() + return vim.tbl_keys(vim.tbl_extend("force", CORE_SERVERS, INITIALIZED_SERVERS)) +end + +function M.get_installed_server_names() + return vim.tbl_filter(function(server_name) + return M.is_server_installed(server_name) + end, M.get_available_server_names()) +end + +function M.get_uninstalled_server_names() + return vim.tbl_filter(function(server_name) + return not M.is_server_installed(server_name) + end, M.get_available_server_names()) +end + +-- Expensive to call the first time - loads all server modules. function M.get_available_servers() - return resolve_servers(get_available_server_names()) + return resolve_servers(M.get_available_server_names()) end +-- Somewhat expensive to call the first time (depends on how many servers are currently installed). function M.get_installed_servers() - return resolve_servers(vim.tbl_filter(function(server_name) - return M.is_server_installed(server_name) - end, get_available_server_names())) + return resolve_servers(M.get_installed_server_names()) end +-- Expensive to call the first time (depends on how many servers are currently not installed). function M.get_uninstalled_servers() - return resolve_servers(vim.tbl_filter(function(server_name) - return not M.is_server_installed(server_name) - end, get_available_server_names())) + return resolve_servers(M.get_uninstalled_server_names()) end function M.register(server) |
