aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/terraformls.lua
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-10-20 20:55:26 +0300
committerawy <awy@awy.one>2025-10-20 20:55:26 +0300
commit662dafc52b2c8a9426bb2197ab9246a8cda318e4 (patch)
treef9d1f20e3864360bf941fd6bc02848ed77b037a8 /.config/nvim/lsp/terraformls.lua
parent8131d9f2898b991a2d2c7a2ac601ce9e07cc9c9f (diff)
downloadhyprdots-662dafc52b2c8a9426bb2197ab9246a8cda318e4.tar.gz
nvqw
Diffstat (limited to '.config/nvim/lsp/terraformls.lua')
-rw-r--r--.config/nvim/lsp/terraformls.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/.config/nvim/lsp/terraformls.lua b/.config/nvim/lsp/terraformls.lua
new file mode 100644
index 0000000..f5897f2
--- /dev/null
+++ b/.config/nvim/lsp/terraformls.lua
@@ -0,0 +1,40 @@
+---@brief
+---
+--- https://github.com/hashicorp/terraform-ls
+---
+--- Terraform language server
+--- Download a released binary from https://github.com/hashicorp/terraform-ls/releases.
+---
+--- From https://github.com/hashicorp/terraform-ls#terraform-ls-vs-terraform-lsp:
+---
+--- Both HashiCorp and the maintainer of terraform-lsp expressed interest in
+--- collaborating on a language server and are working towards a _long-term_
+--- goal of a single stable and feature-complete implementation.
+---
+--- For the time being both projects continue to exist, giving users the
+--- choice:
+---
+--- - `terraform-ls` providing
+--- - overall stability (by relying only on public APIs)
+--- - compatibility with any provider and any Terraform >=0.12.0 currently
+--- less features
+--- - due to project being younger and relying on public APIs which may
+--- not offer the same functionality yet
+---
+--- - `terraform-lsp` providing
+--- - currently more features
+--- - compatibility with a single particular Terraform (0.12.20 at time of writing)
+--- - configs designed for other 0.12 versions may work, but interpretation may be inaccurate
+--- - less stability (due to reliance on Terraform's own internal packages)
+---
+--- Note, that the `settings` configuration option uses the `workspace/didChangeConfiguration` event,
+--- [which is not supported by terraform-ls](https://github.com/hashicorp/terraform-ls/blob/main/docs/features.md).
+--- Instead you should use `init_options` which passes the settings as part of the LSP initialize call
+--- [as is required by terraform-ls](https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md#how-to-pass-settings).
+
+---@type vim.lsp.Config
+return {
+ cmd = { 'terraform-ls', 'serve' },
+ filetypes = { 'terraform', 'terraform-vars' },
+ root_markers = { '.terraform', '.git' },
+}