diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/installers/pip3.lua | 13 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/installers/shell.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/server.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/cmake/init.lua | 15 |
5 files changed, 31 insertions, 1 deletions
@@ -75,6 +75,7 @@ end - bashls - clangd - clojure_lsp +- cmake - cssls - denols - dockerls diff --git a/lua/nvim-lsp-installer/installers/pip3.lua b/lua/nvim-lsp-installer/installers/pip3.lua new file mode 100644 index 00000000..83b7e43a --- /dev/null +++ b/lua/nvim-lsp-installer/installers/pip3.lua @@ -0,0 +1,13 @@ +local shell = require("nvim-lsp-installer.installers.shell") + +local M = {} + +M.REL_INSTALL_DIR = "venv" + +function M.packages(packages) + return shell.raw(("./%s/bin/pip3 install -U %s"):format(M.REL_INSTALL_DIR, table.concat(packages, "")), { + prefix = ("set -euo pipefail; python3 -m venv %q;"):format(M.REL_INSTALL_DIR) + }) +end + +return M diff --git a/lua/nvim-lsp-installer/installers/shell.lua b/lua/nvim-lsp-installer/installers/shell.lua index 7ffe007a..bda83549 100644 --- a/lua/nvim-lsp-installer/installers/shell.lua +++ b/lua/nvim-lsp-installer/installers/shell.lua @@ -11,7 +11,7 @@ function M.raw(raw_script, opts) vim.o.shell = "/bin/bash" vim.cmd [[new]] vim.fn.termopen( - opts.prefix or default_opts.prefix .. raw_script, + (opts.prefix or default_opts.prefix) .. raw_script, { cwd = server._root_dir, on_exit = function (_, exit_code) diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua index 55b39d89..5c8ee499 100644 --- a/lua/nvim-lsp-installer/server.lua +++ b/lua/nvim-lsp-installer/server.lua @@ -9,6 +9,7 @@ local _SERVERS = { "bashls", "clangd", "clojure_lsp", + "cmake", "cssls", "denols", "dockerls", diff --git a/lua/nvim-lsp-installer/servers/cmake/init.lua b/lua/nvim-lsp-installer/servers/cmake/init.lua new file mode 100644 index 00000000..b22e36e9 --- /dev/null +++ b/lua/nvim-lsp-installer/servers/cmake/init.lua @@ -0,0 +1,15 @@ +local server = require("nvim-lsp-installer.server") +local path = require("nvim-lsp-installer.path") +local pip3 = require("nvim-lsp-installer.installers.pip3") + +local root_dir = server.get_server_root_path("cmake") + +return server.Server:new { + name = "cmake", + root_dir = root_dir, + installer = pip3.packages { "cmake-language-server" }, + default_options = { + cmd = { path.concat { root_dir, pip3.REL_INSTALL_DIR, "bin", "cmake-language-server" } }, + }, +} + |
