aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-07-04 20:13:19 +0200
committerGitHub <noreply@github.com>2021-07-04 20:13:19 +0200
commit71bb3e4ce7d131ede237f4c894e15ffec17b0710 (patch)
tree7466f06f6d71883d81011c96742825a0833a8c9a /lua
parentadd clojure_lsp (#28) (diff)
downloadmason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.tar
mason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.tar.gz
mason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.tar.bz2
mason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.tar.lz
mason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.tar.xz
mason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.tar.zst
mason-71bb3e4ce7d131ede237f4c894e15ffec17b0710.zip
add cmake (#29)
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/installers/pip3.lua13
-rw-r--r--lua/nvim-lsp-installer/installers/shell.lua2
-rw-r--r--lua/nvim-lsp-installer/server.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/cmake/init.lua15
4 files changed, 30 insertions, 1 deletions
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" } },
+ },
+}
+