A Language Server Protocol implementation for Terraform providing autocompletion, error checking, and editor integration.
Terraform LSP is a Language Server Protocol implementation for HashiCorp Terraform that provides intelligent code assistance features like autocompletion, error checking, and syntax highlighting for Terraform configuration files. It solves the problem of limited editor support for Terraform by implementing the standard LSP protocol that works across multiple code editors.
Terraform developers and infrastructure engineers who write Terraform configuration files and want enhanced editor support with features like autocompletion and real-time error checking.
Developers choose Terraform LSP for its experimental features and rapid iteration cycle, complementing the more stable terraform-ls implementation. It uniquely supports complex nested structures and communicates directly with Terraform provider binaries for broad compatibility.
Language Server Protocol for Terraform
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports infinite nesting for variables, resources, and data sources, ideal for intricate Terraform configurations like Kubernetes providers, as highlighted in the features list.
Communicates directly with Terraform provider binaries, ensuring support for any provider built with Terraform 0.12+ SDK, enabling versatile infrastructure-as-code work.
Works with a wide range of editors including VS Code, Vim, and IntelliJ, with documented setups for each, making it accessible across different development environments.
Performs dynamic Terraform and HCL validation to catch errors as you type, improving code quality and reducing debugging time.
The README explicitly states it's in the 'first stage' and 'experimental', with known bugs like issues with Terraform v0.15, making it unreliable for critical workflows.
The LSP Support Table shows many core features like hover, formatting, and code actions are 'Need to Implement', limiting its functionality compared to mature alternatives.
Requires building from source with Go 1.14+ and make commands, which is more cumbersome than plug-and-play installations, especially for non-technical users.