aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-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
3 files changed, 57 insertions, 1 deletions
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`;