summaryrefslogtreecommitdiff
path: root/dot_config/nvim_new/lsp/terraformls.lua
diff options
context:
space:
mode:
authorIbrahim Muftee <ibrahim@muftee.net>2025-08-04 07:45:42 -0500
committerIbrahim Muftee <ibrahim@muftee.net>2026-07-01 00:23:31 -0400
commit23d53b5d7bc2f31eed672c0a8d26dc608fb6d0ba (patch)
tree7b23cd20340dd0984bb1a9616744ef81c69d3b4c /dot_config/nvim_new/lsp/terraformls.lua
parent1227ae992f4494d6a3d82d70d0bb9cb01dd50847 (diff)
feat(nvim) slim down new config
Diffstat (limited to 'dot_config/nvim_new/lsp/terraformls.lua')
-rw-r--r--dot_config/nvim_new/lsp/terraformls.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/dot_config/nvim_new/lsp/terraformls.lua b/dot_config/nvim_new/lsp/terraformls.lua
new file mode 100644
index 0000000..7b8c9d7
--- /dev/null
+++ b/dot_config/nvim_new/lsp/terraformls.lua
@@ -0,0 +1,38 @@
+---@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).
+return {
+ cmd = { 'terraform-ls', 'serve' },
+ filetypes = { 'terraform', 'terraform-vars' },
+ root_markers = { '.terraform', '.git' },
+}