The official Terraform language server providing IDE features for any LSP-compatible editor.
Terraform Language Server (terraform-ls) is the official language server for Terraform, providing IDE-like features such as code completion, syntax validation, and documentation on hover. It implements the Language Server Protocol (LSP) to integrate with any compatible editor, enhancing the development experience for Terraform configuration files. It solves the problem of inconsistent or missing editor support for Terraform's HashiCorp Configuration Language (HCL).
Terraform developers and infrastructure engineers who write and maintain Terraform configurations and seek improved productivity through advanced editor features.
Developers choose terraform-ls because it is the official, maintained solution from HashiCorp, ensuring compatibility and reliability with Terraform. It provides a standardized way to access IDE features across different editors, reducing setup complexity and offering consistent tooling for Terraform development.
Terraform Language Server
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As the maintained-by-HashiCorp solution, it ensures high compatibility with Terraform updates and reliable long-term support, as stated in the README.
Implements the Language Server Protocol, allowing integration with any LSP-compatible editor like VS Code or Vim, providing consistent features across tools.
Follows semantic versioning and an incremental delivery approach for stable updates with clear breaking change communication, per the README.
Telemetry is opt-in by default, giving users control over data collection, as detailed in the telemetry documentation.
The README explicitly states that not all language features are available yet, limiting advanced IDE capabilities for some users.
For editors without auto-installation, setup requires following the installation guide, adding overhead compared to plug-and-play tools.
It only supports Terraform configurations, making it useless for projects using multiple IaC languages or general-purpose coding.