aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-07-04 23:47:38 +0200
committerGitHub <noreply@github.com>2021-07-04 23:47:38 +0200
commitd93ccea2b8d3908c2ccc097c925341769bd75274 (patch)
treed414827248083e21810226c888ece502c1e55119
parentadd tailwindcss (#36) (diff)
downloadmason-d93ccea2b8d3908c2ccc097c925341769bd75274.tar
mason-d93ccea2b8d3908c2ccc097c925341769bd75274.tar.gz
mason-d93ccea2b8d3908c2ccc097c925341769bd75274.tar.bz2
mason-d93ccea2b8d3908c2ccc097c925341769bd75274.tar.lz
mason-d93ccea2b8d3908c2ccc097c925341769bd75274.tar.xz
mason-d93ccea2b8d3908c2ccc097c925341769bd75274.tar.zst
mason-d93ccea2b8d3908c2ccc097c925341769bd75274.zip
add terraformls (#37)
-rw-r--r--README.md3
-rw-r--r--lua/nvim-lsp-installer/server.lua3
-rw-r--r--lua/nvim-lsp-installer/servers/terraformls/init.lua14
-rw-r--r--lua/nvim-lsp-installer/servers/terraformls/install.mjs41
4 files changed, 59 insertions, 2 deletions
diff --git a/README.md b/README.md
index 131a0d82..0c913639 100644
--- a/README.md
+++ b/README.md
@@ -96,12 +96,13 @@ end
- solargraph (ruby)
- sumneko_lua
- svelte
+- tailwindcss
+- terraformls
- texlab
- tsserver
- vimls
- vuels
- yamlls
-- tailwindcss
## Extras
diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua
index 273071b8..9b576b38 100644
--- a/lua/nvim-lsp-installer/server.lua
+++ b/lua/nvim-lsp-installer/server.lua
@@ -29,12 +29,13 @@ local _SERVERS = {
"solargraph",
"sumneko_lua",
"svelte",
+ "tailwindcss",
+ "terraformls",
"texlab",
"tsserver",
"vimls",
"vuels",
"yamlls",
- "tailwindcss",
}
local function get_servers(server_names)
diff --git a/lua/nvim-lsp-installer/servers/terraformls/init.lua b/lua/nvim-lsp-installer/servers/terraformls/init.lua
new file mode 100644
index 00000000..e338a7c6
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/terraformls/init.lua
@@ -0,0 +1,14 @@
+local server = require("nvim-lsp-installer.server")
+local path = require("nvim-lsp-installer.path")
+local zx = require("nvim-lsp-installer.installers.zx")
+
+local root_dir = server.get_server_root_path("terraform")
+
+return server.Server:new {
+ name = "terraformls",
+ root_dir = root_dir,
+ installer = zx.file("./install.mjs"),
+ default_options = {
+ cmd = { path.concat { root_dir, "terraform-ls", "terraform-ls" }, "serve" },
+ },
+}
diff --git a/lua/nvim-lsp-installer/servers/terraformls/install.mjs b/lua/nvim-lsp-installer/servers/terraformls/install.mjs
new file mode 100644
index 00000000..9b9a41ce
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/terraformls/install.mjs
@@ -0,0 +1,41 @@
+const VERSION = "v0.18.3";
+
+const exitNotSupported = () => {
+ console.error(
+ chalk.red(`${os.platform()} ${os.arch()} is currently not supported.`)
+ );
+ process.exit(1);
+};
+
+const target = (() => {
+ switch (os.platform()) {
+ case "win32": {
+ exitNotSupported();
+ break;
+ }
+ case "darwin":
+ switch (os.arch()) {
+ case "arm64":
+ return "terraform-ls_0.18.3_darwin_arm64.zip";
+ case "x64":
+ return "terraform-ls_0.18.3_darwin_amd64.zip";
+ default: {
+ exitNotSupported();
+ break;
+ }
+ }
+ default:
+ switch (os.arch()) {
+ case "arm64":
+ return "terraform-ls_0.18.3_linux_amd64.zip";
+ default:
+ return "terraform-ls_0.18.3_linux_arm64.zip";
+ }
+ }
+})();
+
+const downloadUrl = `https://github.com/hashicorp/terraform-ls/releases/download/${VERSION}/${target}`;
+
+await $`wget -O terraform-ls.zip ${downloadUrl}`;
+await $`unzip terraform-ls.zip -d terraform-ls`;
+await $`rm terraform-ls.zip`;