From 1eb6d67d95d6f892e4151bd75d27903d413d7dd5 Mon Sep 17 00:00:00 2001 From: William Boman Date: Sat, 10 Jul 2021 15:36:32 +0200 Subject: import server modules directly --- lua/nvim-lsp-installer.lua | 97 +++++++++++++++++++++++++++++++++--- lua/nvim-lsp-installer/server.lua | 101 -------------------------------------- 2 files changed, 91 insertions(+), 107 deletions(-) (limited to 'lua') diff --git a/lua/nvim-lsp-installer.lua b/lua/nvim-lsp-installer.lua index cea53b8d..e63b8be3 100644 --- a/lua/nvim-lsp-installer.lua +++ b/lua/nvim-lsp-installer.lua @@ -2,11 +2,96 @@ local server = require('nvim-lsp-installer.server') local M = {} -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.get_server = server.get_server -M.install = server.install -M.uninstall = server.uninstall +-- :'<,'>!sort | column -t +local _SERVERS = { + ["angularls"] = require("nvim-lsp-installer.servers.angularls"), + ["bashls"] = require("nvim-lsp-installer.servers.bashls"), + ["clangd"] = require("nvim-lsp-installer.servers.clangd"), + ["clojure_lsp"] = require("nvim-lsp-installer.servers.clojure_lsp"), + ["cmake"] = require("nvim-lsp-installer.servers.cmake"), + ["cssls"] = require("nvim-lsp-installer.servers.cssls"), + ["denols"] = require("nvim-lsp-installer.servers.denols"), + ["dockerls"] = require("nvim-lsp-installer.servers.dockerls"), + ["elixirls"] = require("nvim-lsp-installer.servers.elixirls"), + ["elmls"] = require("nvim-lsp-installer.servers.elmls"), + ["eslintls"] = require("nvim-lsp-installer.servers.eslintls"), + ["fortls"] = require("nvim-lsp-installer.servers.fortls"), + ["gopls"] = require("nvim-lsp-installer.servers.gopls"), + ["graphql"] = require("nvim-lsp-installer.servers.graphql"), + ["hls"] = require("nvim-lsp-installer.servers.hls"), + ["html"] = require("nvim-lsp-installer.servers.html"), + ["intelephense"] = require("nvim-lsp-installer.servers.intelephense"), + ["jsonls"] = require("nvim-lsp-installer.servers.jsonls"), + ["omnisharp"] = require("nvim-lsp-installer.servers.omnisharp"), + ["purescript"] = require("nvim-lsp-installer.servers.purescriptls"), + ["pyright"] = require("nvim-lsp-installer.servers.pyright"), + ["rome"] = require("nvim-lsp-installer.servers.rome"), + ["rust_analyzer"] = require("nvim-lsp-installer.servers.rust_analyzer"), + ["solargraph"] = require("nvim-lsp-installer.servers.solargraph"), + ["sumneko_lua"] = require("nvim-lsp-installer.servers.sumneko_lua"), + ["svelte"] = require("nvim-lsp-installer.servers.svelte"), + ["tailwindcss"] = require("nvim-lsp-installer.servers.tailwindcss"), + ["terraformls"] = require("nvim-lsp-installer.servers.terraformls"), + ["texlab"] = require("nvim-lsp-installer.servers.texlab"), + ["tsserver"] = require("nvim-lsp-installer.servers.tsserver"), + ["vimls"] = require("nvim-lsp-installer.servers.vimls"), + ["vuels"] = require("nvim-lsp-installer.servers.vuels"), + ["yamlls"] = require("nvim-lsp-installer.servers.yamlls"), +} + +function M.get_server(server_name) + local server = _SERVERS[server_name] + if server then + return true, server + end + return false, ("Server %s does not exist."):format(server_name) +end + +function M.get_available_servers() + return vim.tbl_values(_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() + return vim.tbl_filter( + function (server) + return not server:is_installed() + end, + M.get_available_servers() + ) +end + +function M.install(server_name) + local ok, server = M.get_server(server_name) + if not ok then + return vim.api.nvim_err_writeln(("Unable to find LSP server %s. Error=%s"):format(server_name, server)) + end + local success, error = pcall(server.install, server) + if not success then + pcall(server.uninstall, server) + return vim.api.nvim_err_writeln(("Failed to install %s. Error=%s"):format(server_name, vim.inspect(error))) + end +end + +function M.uninstall(server_name) + local ok, server = M.get_server(server_name) + if not ok then + return vim.api.nvim_err_writeln(("Unable to find LSP server %s. Error=%s"):format(server_name, server)) + end + local success, error = pcall(server.uninstall, server) + if not success then + vim.api.nvim_err_writeln(("Unable to uninstall %s. Error=%s"):format(server_name, vim.inspect(error))) + return success + end + print(("Successfully uninstalled %s"):format(server_name)) +end return M diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua index 8ad2b239..257156e2 100644 --- a/lua/nvim-lsp-installer/server.lua +++ b/lua/nvim-lsp-installer/server.lua @@ -3,107 +3,6 @@ local path = require("nvim-lsp-installer.path") local M = {} --- :'<,'>!sort -local _SERVERS = { - "angularls", - "bashls", - "clangd", - "clojure_lsp", - "cmake", - "cssls", - "denols", - "dockerls", - "elixirls", - "elmls", - "eslintls", - "fortls", - "gopls", - "graphql", - "hls", - "html", - "intelephense", - "jsonls", - "omnisharp", - "purescriptls", - "pyright", - "rome", - "rust_analyzer", - "solargraph", - "sumneko_lua", - "svelte", - "tailwindcss", - "terraformls", - "texlab", - "tsserver", - "vimls", - "vuels", - "yamlls", -} - -local function get_servers(server_names) - local result = {} - for _, server_name in pairs(server_names) do - local ok, server = M.get_server(server_name) - if ok then - result[server_name] = server - else - vim.api.nvim_err_writeln(("Unable to find LSP server %s. Error=%s"):format(server_name, server)) - end - end - return result -end - -function M.get_server(server_name) - return pcall(require, ("nvim-lsp-installer.servers.%s"):format(server_name)) -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() - return vim.tbl_filter( - function (server) - return not server:is_installed() - end, - M.get_available_servers() - ) -end - -function M.install(server_name) - local ok, server = M.get_server(server_name) - if not ok then - return vim.api.nvim_err_writeln(("Unable to find LSP server %s. Error=%s"):format(server_name, server)) - end - local success, error = pcall(server.install, server) - if not success then - pcall(server.uninstall, server) - return vim.api.nvim_err_writeln(("Failed to install %s. Error=%s"):format(server_name, vim.inspect(error))) - end -end - -function M.uninstall(server_name) - local ok, server = M.get_server(server_name) - if not ok then - return vim.api.nvim_err_writeln(("Unable to find LSP server %s. Error=%s"):format(server_name, server)) - end - local success, error = pcall(server.uninstall, server) - if not success then - vim.api.nvim_err_writeln(("Unable to uninstall %s. Error=%s"):format(server_name, vim.inspect(error))) - return success - end - print(("Successfully uninstalled %s"):format(server_name)) -end - function M.get_server_root_path(server) return path.concat { vim.fn.stdpath("data"), "lsp_servers", server } end -- cgit v1.2.3-70-g09d2