diff options
| author | William Boman <william@redwill.se> | 2021-04-05 14:19:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-05 14:19:07 +0200 |
| commit | dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb (patch) | |
| tree | 419e086d757624aa9e2bcaa456e02a6c8f7a3968 | |
| parent | eslintls: avoid globbing/word splitting (diff) | |
| download | mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.tar mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.tar.gz mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.tar.bz2 mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.tar.lz mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.tar.xz mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.tar.zst mason-dcf117a8a60d887a2c2ff9d5617a9c39c5ee95fb.zip | |
rename Installer to Server for clarity (#3)
| -rw-r--r-- | README.md | 4 | ||||
| -rw-r--r-- | doc/.gitignore | 1 | ||||
| -rw-r--r-- | doc/nvim-lsp-installer.txt | 34 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer.lua | 12 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/server.lua (renamed from lua/nvim-lsp-installer/installer.lua) | 87 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/bashls.lua (renamed from lua/nvim-lsp-installer/installers/bashls.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/cssls.lua (renamed from lua/nvim-lsp-installer/installers/cssls.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/dockerls.lua (renamed from lua/nvim-lsp-installer/installers/dockerls.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/eslintls.lua (renamed from lua/nvim-lsp-installer/installers/eslintls.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/graphql.lua (renamed from lua/nvim-lsp-installer/installers/graphql.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/html.lua (renamed from lua/nvim-lsp-installer/installers/html.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/jsonls.lua (renamed from lua/nvim-lsp-installer/installers/jsonls.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/pyright.lua (renamed from lua/nvim-lsp-installer/installers/pyright.lua) | 8 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/solargraph.lua (renamed from lua/nvim-lsp-installer/installers/solargraph.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/sumneko_lua.lua (renamed from lua/nvim-lsp-installer/installers/sumneko_lua.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/tsserver.lua (renamed from lua/nvim-lsp-installer/installers/tsserver.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/vimls.lua (renamed from lua/nvim-lsp-installer/installers/vimls.lua) | 6 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/yamlls.lua (renamed from lua/nvim-lsp-installer/installers/yamlls.lua) | 6 | ||||
| -rw-r--r-- | plugin/nvim-lsp-installer.vim | 26 |
19 files changed, 126 insertions, 118 deletions
@@ -100,7 +100,3 @@ require'nvim-lsp-installer.extras.tsserver'.rename_file(old, new) ```lua require'nvim-lsp-installer.extras.tsserver'.organize_imports(bufname) ``` - -## TODO - -- installer... server... module.... pick one!! diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 00000000..6e92f57d --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1 @@ +tags diff --git a/doc/nvim-lsp-installer.txt b/doc/nvim-lsp-installer.txt index d32915b6..5a19198d 100644 --- a/doc/nvim-lsp-installer.txt +++ b/doc/nvim-lsp-installer.txt @@ -49,12 +49,12 @@ Then, somewhere in your initialization script (see `:h init.lua`): > COMMANDS *nvim-lsp-installer-commands* *:LspInstall* -:LspInstall {server} +:LspInstall {server_name} Installs a language server *:LspUninstall* -:LspUninstall {server} +:LspUninstall {server_name} Uninstalls a language server. @@ -80,38 +80,38 @@ Lua module: nvim-lsp-installer *lsp_installer* *lsp_installer.get_available_servers()* get_available_servers() Return: ~ - (string[]) A list containing all available language servers. + |lsp_installer.Server|[] A list containing all available language servers. *lsp_installer.get_installed_servers()* get_installed_servers() Return: ~ - (Installer[]) A list of installers. See |lsp_installer.Installer|. + |lsp_installer.Server|[] A list of servers that are currently installed. *lsp_installer.get_uninstalled_servers()* get_uninstalled_servers() Return: ~ - (string[]) A list of servers that are not installed. + |lsp_installer.Server|[] A list of servers that are not installed. *lsp_installer.install()* -install({server}) - Installs the provided {server}. If {server} is already installed, it +install({server_name}) + Installs the provided {server_name}. If {server_name} is already installed, it is reinstalled. Parameters: ~ - {server} (string) The server to install. + {server_name} (string) The server to install. *lsp_installer.uninstall()* -uninstall({server}) - Uninstalls the provided {server}. +uninstall({server_name}) + Uninstalls the provided {server_name}. Parameters: ~ - {server} (string) The server to uninstall. + {server_name} (string) The server to uninstall. ============================================================================== -Lua module: nvim-lsp-installer.installer *lsp_installer.installer* +Lua module: nvim-lsp-installer.server *lsp_installer.server* - *lsp_installer.Installer* -class: Installer + *lsp_installer.Server* +class: Server This class enables installing, uninstalling, and setting up language servers. @@ -124,12 +124,12 @@ class: Installer {opts}. - is_installed() - Returns {true} is installer is installed, else returns {false}. + Returns {true} is server is installed, else returns {false}. - install() - Installs this instance of an installer. + Installs this instance of an LSP server. - uninstall() - Uninstalls this instance of an installer. + Uninstalls this instance of an LSP server. vim:tw=78:ft=help:norl: diff --git a/lua/nvim-lsp-installer.lua b/lua/nvim-lsp-installer.lua index e19d27d7..ecf70ad0 100644 --- a/lua/nvim-lsp-installer.lua +++ b/lua/nvim-lsp-installer.lua @@ -1,11 +1,11 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') local M = {} -M.get_available_servers = installer.get_available_servers -M.get_installed_servers = installer.get_installed_servers -M.get_uninstalled_servers = installer.get_uninstalled_servers -M.install = installer.install -M.uninstall = installer.uninstall +M.get_available_servers = server.get_available_servers +M.get_installed_servers = server.get_installed_servers +M.get_uninstalled_servers = server.get_uninstalled_servers +M.install = server.install +M.uninstall = server.uninstall return M diff --git a/lua/nvim-lsp-installer/installer.lua b/lua/nvim-lsp-installer/server.lua index a6789d7d..5c71922b 100644 --- a/lua/nvim-lsp-installer/installer.lua +++ b/lua/nvim-lsp-installer/server.lua @@ -1,6 +1,7 @@ local M = {} -local _INSTALLERS = { +-- :'<,'>!sort +local _SERVERS = { 'bashls', 'cssls', 'dockerls', @@ -19,82 +20,90 @@ local function escape_quotes(str) return string.format("%q", str) end -local function get_server_installer(server) - return pcall(require, 'nvim-lsp-installer.installers.' .. server) +local function get_server(server_name) + return pcall(require, 'nvim-lsp-installer.servers.' .. server_name) end -function M.get_available_servers() return _INSTALLERS end - -function M.get_installed_servers() - local installed_servers = {} - for _, server in pairs(M.get_available_servers()) do - local ok, module = get_server_installer(server) +local function get_servers(server_names) + local result = {} + for _, server_name in pairs(server_names) do + local ok, server = get_server(server_name) if not ok then - vim.api.nvim_err_writeln("Unable to find installer for " .. server) + vim.api.nvim_err_writeln("Unable to find LSP server " .. server_name) goto continue end - if module:is_installed() then - table.insert(installed_servers, module) - end + result[server_name] = server ::continue:: end - return installed_servers + return result +end + +function M.get_available_servers() + return vim.tbl_values(get_servers(_SERVERS)) +end + +function M.get_installed_servers() + return vim.tbl_filter( + function (server) + return server:is_installed() + end, + M.get_available_servers() + ) end function M.get_uninstalled_servers() - local installed_servers = M.get_installed_servers() return vim.tbl_filter( function (server) - return not vim.tbl_contains(installed_servers, server) + return not server:is_installed() end, M.get_available_servers() ) end -function M.install(server) - local ok, installer = get_server_installer(server) +function M.install(server_name) + local ok, server = get_server(server_name) if not ok then - return vim.api.nvim_err_writeln("Unable to find installer for " .. server) + return vim.api.nvim_err_writeln("Unable to find LSP server " .. server_name) end - local success, error = pcall(installer.install, installer) + local success, error = pcall(server.install, server) if not success then - pcall(installer.uninstall, installer) - return vim.api.nvim_err_writeln("Failed to install " .. server .. ". Error=" .. vim.inspect(error)) + pcall(server.uninstall, server) + return vim.api.nvim_err_writeln("Failed to install " .. server_name .. ". Error=" .. vim.inspect(error)) end end -function M.uninstall(server) - local ok, installer = get_server_installer(server) +function M.uninstall(server_name) + local ok, server = get_server(server_name) if not ok then - return vim.api.nvim_err_writeln("Unable to find installer for " .. server) + return vim.api.nvim_err_writeln("Unable to find LSP server " .. server_name) end - local success, error = pcall(installer.uninstall, installer) + local success, error = pcall(server.uninstall, server) if not success then - vim.api.nvim_err_writeln('Unable to uninstall ' .. server .. '. Error=' .. vim.inspect(error)) + vim.api.nvim_err_writeln('Unable to uninstall ' .. server_name .. '. Error=' .. vim.inspect(error)) return success end - print("Successfully uninstalled " .. server) + print("Successfully uninstalled " .. server_name) end function M.get_server_root_path(server) return vim.fn.stdpath('data') .. "/lsp_servers/" .. server end -M.Installer = {} -M.Installer.__index = M.Installer +M.Server = {} +M.Server.__index = M.Server ----@class Installer -function M.Installer:new(opts) +---@class Server +function M.Server:new(opts) return setmetatable({ name = opts.name, _install_cmd = opts.install_cmd, _root_dir = opts.root_dir, _default_options = opts.default_options, _pre_install = opts.pre_install, - }, M.Installer) + }, M.Server) end -function M.Installer:setup(opts) +function M.Server:setup(opts) -- We require the lspconfig server here in order to do it as late as possible. -- The reason for this is because once a lspconfig server has been imported, it's -- automatically registered with lspconfig and causes it to show up in :LspInfo and whatnot. @@ -103,17 +112,17 @@ function M.Installer:setup(opts) ) end -function M.Installer:is_installed() +function M.Server:is_installed() return os.execute('test -d ' .. escape_quotes(self._root_dir)) == 0 end -function M.Installer:create_root_dir() +function M.Server:create_root_dir() if os.execute('mkdir -p ' .. escape_quotes(self._root_dir)) ~= 0 then error('Could not create LSP server directory ' .. self._root_dir) end end -function M.Installer:install() +function M.Server:install() if self._pre_install then self._pre_install() end @@ -134,7 +143,7 @@ function M.Installer:install() cwd = self._root_dir, on_exit = function (_, exit_code) if exit_code ~= 0 then - vim.api.nvim_err_writeln("Installer failed for " .. self.name .. ". Exit code: " .. exit_code) + vim.api.nvim_err_writeln("Server installation failed for " .. self.name .. ". Exit code: " .. exit_code) self:uninstall() else print("Successfully installed " .. self.name) @@ -147,7 +156,7 @@ function M.Installer:install() vim.cmd([[startinsert]]) -- so that the buffer tails the term log nicely end -function M.Installer:uninstall() +function M.Server:uninstall() -- giggity if os.execute('rm -rf ' .. escape_quotes(self._root_dir)) ~= 0 then error('Could not remove LSP server directory ' .. self._root_dir) diff --git a/lua/nvim-lsp-installer/installers/bashls.lua b/lua/nvim-lsp-installer/servers/bashls.lua index 68b29c41..224e8d23 100644 --- a/lua/nvim-lsp-installer/installers/bashls.lua +++ b/lua/nvim-lsp-installer/servers/bashls.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('bash') +local root_dir = server.get_server_root_path('bash') -return installer.Installer:new { +return server.Server:new { name = "bashls", root_dir = root_dir, install_cmd = [[npm install bash-language-server@latest]], diff --git a/lua/nvim-lsp-installer/installers/cssls.lua b/lua/nvim-lsp-installer/servers/cssls.lua index 23010cd2..53bb6378 100644 --- a/lua/nvim-lsp-installer/installers/cssls.lua +++ b/lua/nvim-lsp-installer/servers/cssls.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('css') +local root_dir = server.get_server_root_path('css') -return installer.Installer:new { +return server.Server:new { name = 'cssls', root_dir = root_dir, install_cmd = [[npm install vscode-css-languageserver-bin]], diff --git a/lua/nvim-lsp-installer/installers/dockerls.lua b/lua/nvim-lsp-installer/servers/dockerls.lua index 021b098b..dbe4645e 100644 --- a/lua/nvim-lsp-installer/installers/dockerls.lua +++ b/lua/nvim-lsp-installer/servers/dockerls.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('dockerfile') +local root_dir = server.get_server_root_path('dockerfile') -return installer.Installer:new { +return server.Server:new { name = 'dockerls', root_dir = root_dir, install_cmd = [[npm install dockerfile-language-server-nodejs@latest]], diff --git a/lua/nvim-lsp-installer/installers/eslintls.lua b/lua/nvim-lsp-installer/servers/eslintls.lua index 13ddf94f..b8f0f448 100644 --- a/lua/nvim-lsp-installer/installers/eslintls.lua +++ b/lua/nvim-lsp-installer/servers/eslintls.lua @@ -1,7 +1,7 @@ local lspconfig = require'lspconfig' local configs = require'lspconfig/configs' -local installer = require'nvim-lsp-installer.installer' +local server = require'nvim-lsp-installer.server' if not lspconfig.eslintls then configs.eslintls = { @@ -38,7 +38,7 @@ local ConfirmExecutionResult = { approved = 4 } -local root_dir = installer.get_server_root_path('eslint') +local root_dir = server.get_server_root_path('eslint') local install_cmd = [[ git clone https://github.com/microsoft/vscode-eslint .; npm install; @@ -47,7 +47,7 @@ npm install; npx tsc; ]] -return installer.Installer:new { +return server.Server:new { name = "eslintls", root_dir = root_dir, install_cmd = install_cmd, diff --git a/lua/nvim-lsp-installer/installers/graphql.lua b/lua/nvim-lsp-installer/servers/graphql.lua index 471eb3ba..1728e81e 100644 --- a/lua/nvim-lsp-installer/installers/graphql.lua +++ b/lua/nvim-lsp-installer/servers/graphql.lua @@ -1,10 +1,10 @@ local util = require('lspconfig.util') -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('graphql') +local root_dir = server.get_server_root_path('graphql') -return installer.Installer:new { +return server.Server:new { name = "graphql", root_dir = root_dir, install_cmd = [[npm install graphql-language-service-cli@latest graphql]], diff --git a/lua/nvim-lsp-installer/installers/html.lua b/lua/nvim-lsp-installer/servers/html.lua index 8e269e18..36acc429 100644 --- a/lua/nvim-lsp-installer/installers/html.lua +++ b/lua/nvim-lsp-installer/servers/html.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('html') +local root_dir = server.get_server_root_path('html') -return installer.Installer:new { +return server.Server:new { name = "html", root_dir = root_dir, install_cmd = [[npm install vscode-html-languageserver-bin]], diff --git a/lua/nvim-lsp-installer/installers/jsonls.lua b/lua/nvim-lsp-installer/servers/jsonls.lua index 0298f5ae..e856f50f 100644 --- a/lua/nvim-lsp-installer/installers/jsonls.lua +++ b/lua/nvim-lsp-installer/servers/jsonls.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('json') +local root_dir = server.get_server_root_path('json') -return installer.Installer:new { +return server.Server:new { name = "jsonls", root_dir = root_dir, install_cmd = [[npm install vscode-json-languageserver-bin]], diff --git a/lua/nvim-lsp-installer/installers/pyright.lua b/lua/nvim-lsp-installer/servers/pyright.lua index a6684def..e356deb0 100644 --- a/lua/nvim-lsp-installer/installers/pyright.lua +++ b/lua/nvim-lsp-installer/servers/pyright.lua @@ -1,13 +1,13 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('python') +local root_dir = server.get_server_root_path('python') -return installer.Installer:new { +return server.Server:new { name = "pyright", root_dir = root_dir, install_cmd = [[npm install pyright]], default_options = { cmd = { root_dir .. '/node_modules/.bin/pyright-langserver', '--stdio' }, - on_attach = installer.common_on_attach, + on_attach = server.common_on_attach, }, } diff --git a/lua/nvim-lsp-installer/installers/solargraph.lua b/lua/nvim-lsp-installer/servers/solargraph.lua index c227c2b3..c9f99e7c 100644 --- a/lua/nvim-lsp-installer/installers/solargraph.lua +++ b/lua/nvim-lsp-installer/servers/solargraph.lua @@ -1,6 +1,6 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('ruby') +local root_dir = server.get_server_root_path('ruby') local install_cmd = [[ wget -O solargraph.tar $(curl -s https://api.github.com/repos/castwide/solargraph/tags | grep 'tarball_url' | cut -d\" -f4 | head -n1); @@ -19,7 +19,7 @@ echo 'bundle exec solargraph $*' >> solargraph; chmod +x solargraph; ]] -return installer.Installer:new { +return server.Server:new { name = "solargraph", root_dir = root_dir, install_cmd = install_cmd, diff --git a/lua/nvim-lsp-installer/installers/sumneko_lua.lua b/lua/nvim-lsp-installer/servers/sumneko_lua.lua index 947ae276..81ac2bcb 100644 --- a/lua/nvim-lsp-installer/installers/sumneko_lua.lua +++ b/lua/nvim-lsp-installer/servers/sumneko_lua.lua @@ -1,6 +1,6 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('lua') +local root_dir = server.get_server_root_path('lua') local install_cmd = [=[ rm -rf lua-language-server; @@ -26,7 +26,7 @@ local uname_alias = { local uname = vim.fn.system('uname'):gsub("%s+", "") local bin_dir = uname_alias[uname] or uname -return installer.Installer:new { +return server.Server:new { name = "sumneko_lua", root_dir = root_dir, install_cmd = install_cmd, diff --git a/lua/nvim-lsp-installer/installers/tsserver.lua b/lua/nvim-lsp-installer/servers/tsserver.lua index 87310e02..0294dc79 100644 --- a/lua/nvim-lsp-installer/installers/tsserver.lua +++ b/lua/nvim-lsp-installer/servers/tsserver.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('tsserver') +local root_dir = server.get_server_root_path('tsserver') -return installer.Installer:new { +return server.Server:new { name = "tsserver", root_dir = root_dir, install_cmd = [[npm install typescript-language-server]], diff --git a/lua/nvim-lsp-installer/installers/vimls.lua b/lua/nvim-lsp-installer/servers/vimls.lua index 3e6786b7..94041007 100644 --- a/lua/nvim-lsp-installer/installers/vimls.lua +++ b/lua/nvim-lsp-installer/servers/vimls.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('vim') +local root_dir = server.get_server_root_path('vim') -return installer.Installer:new { +return server.Server:new { name = "vimls", root_dir = root_dir, install_cmd = [[npm install vim-language-server@latest]], diff --git a/lua/nvim-lsp-installer/installers/yamlls.lua b/lua/nvim-lsp-installer/servers/yamlls.lua index 5d68915a..03f1e75a 100644 --- a/lua/nvim-lsp-installer/installers/yamlls.lua +++ b/lua/nvim-lsp-installer/servers/yamlls.lua @@ -1,8 +1,8 @@ -local installer = require('nvim-lsp-installer.installer') +local server = require('nvim-lsp-installer.server') -local root_dir = installer.get_server_root_path('yaml') +local root_dir = server.get_server_root_path('yaml') -return installer.Installer:new { +return server.Server:new { name = "yamlls", root_dir = root_dir, install_cmd = [[npm install yaml-language-server]], diff --git a/plugin/nvim-lsp-installer.vim b/plugin/nvim-lsp-installer.vim index 34277863..48f6a96b 100644 --- a/plugin/nvim-lsp-installer.vim +++ b/plugin/nvim-lsp-installer.vim @@ -4,38 +4,40 @@ let g:loaded_nvim_lsp_installer = 1 let s:save_cpo = &cpo set cpo&vim +function! s:MapServerName(servers) abort + return map(a:servers, {_, val -> val.name}) +endfunction + function! s:LspInstallCompletion(...) abort - return join(luaeval("require'nvim-lsp-installer'.get_available_servers()"), "\n") + return join(s:MapServerName(luaeval("require'nvim-lsp-installer'.get_available_servers()")), "\n") endfunction function! s:LspUninstallCompletion(...) abort - return join( - \ map(luaeval("require'nvim-lsp-installer'.get_installed_servers()"), {_, val -> val.name}), - \ "\n") + return join(s:MapServerName(luaeval("require'nvim-lsp-installer'.get_installed_servers()")), "\n") endfunction -function! s:LspInstall(server) abort - call luaeval("require'nvim-lsp-installer'.install(_A)", a:server) +function! s:LspInstall(server_name) abort + call luaeval("require'nvim-lsp-installer'.install(_A)", a:server_name) endfunction function! s:LspInstallAll() abort - for server in luaeval("require'nvim-lsp-installer'.get_uninstalled_servers()") - call luaeval("require'nvim-lsp-installer'.install(_A)", server) + for server_name in s:MapServerName(luaeval("require'nvim-lsp-installer'.get_uninstalled_servers()")) + call luaeval("require'nvim-lsp-installer'.install(_A)", server_name) endfor endfunction -function! s:LspUninstall(server) abort - call luaeval("require'nvim-lsp-installer'.uninstall(_A)", a:server) +function! s:LspUninstall(server_name) abort + call luaeval("require'nvim-lsp-installer'.uninstall(_A)", a:server_name) endfunction function! s:LspUninstallAll() abort - for server in luaeval("require'nvim-lsp-installer'.get_installed_servers()") + for server in s:MapServerName(luaeval("require'nvim-lsp-installer'.get_installed_servers()")) call s:LspUninstall(server) endfor endfunction function! s:LspPrintInstalled() abort - echo map(luaeval("require'nvim-lsp-installer'.get_installed_servers()"), {_, val -> val.name}) + echo s:MapServerName(luaeval("require'nvim-lsp-installer'.get_installed_servers()")) endfunction command! -nargs=1 -complete=custom,s:LspInstallCompletion LspInstall exe s:LspInstall("<args>") |
