Skip to content

Releases: hashicorp/terraform-ls

v0.30.0

24 Nov 17:31
v0.30.0
adc4a8d
Compare
Choose a tag to compare

ENHANCEMENTS:

  • Support count.index references in blocks with count for completion, hover documentation and semantic tokens highlighting (#860, hcl-lang#160)
  • Support each.* references in blocks with for_each for completion, hover documentation and semantic tokens highlighting (#861, hcl-lang#162)
  • Support self.* references in provisioner, connection and postcondition blocks for completion, hover documentation and semantic tokens highlighting (#859, hcl-lang#163)
  • dynamic block support, including label and content completion (#530, hcl-lang#154)
  • Go-to-definition/go-to-references for count.index/count (#1093)
  • Go-to-definition/go-to-references for each.*/for_each (#1095)
  • Go-to-definition/go-to-references for self.* in provisioner, connection and postcondition blocks (#1096)
  • Remove deprecated backends in Terraform 1.3.0 (terraform-schema#159)

v0.29.3

13 Oct 09:20
21cf207
Compare
Choose a tag to compare

ENHANCEMENTS:

  • schemas: Lazy-load embedded provider schemas (#1071)
    • Reduced runtime memory consumption from static ~572MB (representing ~220 providers) to more dynamic depending on providers in use.
      For example, no configuration (no provider requirements) should consume around 10MB, indexed folder w/ hashicorp/aws requirement ~70MB.
    • Reduced launch time from ~ 2 seconds to 1-3 ms.

BUG FIXES:

  • fix: Enable IntelliSense for resources & data sources whose name match the provider (e.g. data) (#1072)
  • state: avoid infinite recursion (surfaced as crash with "goroutine stack exceeds 1000000000-byte limit" message) (#1084)
  • decoder: fix race condition in terraform-schema (surfaced as crash with "fatal error: concurrent map read and map write" message) (#1086)

v0.29.2

07 Sep 14:49
4e96505
Compare
Choose a tag to compare

BUG FIXES:

  • fix: Improve IntelliSense accuracy by tracking provider schema versions (accidentally removed in 0.29.0) (#1060)
  • Don't query the Terraform Registry for module sources starting with . (#1062)
  • fix race condition in schema merging (terraform-schema#137)

INTERNAL:

  • Use Go 1.19 (previously 1.17) to build the server (#1046)

v0.29.1

24 Aug 15:19
1f90d9a
Compare
Choose a tag to compare

ENHANCEMENTS:

  • docs: Add link to post explaining vim plugin installation (#1044)

BUG FIXES:

  • goreleaser: Use correct ldflag (versionPrerelease) when compiling LS (#1043)
  • Fix panic on obtaining provider schemas (#1048)

INTERNAL:

  • cleanup: Remove LogHandler (#1038)

v0.29.0

11 Aug 15:24
4459e5c
Compare
Choose a tag to compare

NOTES / BREAKING CHANGES:

  • settings: rootModulePaths option was deprecated and is ignored. Users should instead leverage the workspace LSP API and add the folder to a workspace, if they wish it to be indexed (#1003)
  • settings: excludeModulePaths option was deprecated in favour of indexing.ignorePaths. excludeModulePaths is now ignored (#1003)
  • settings: ignoreDirectoryNames option was deprecated in favour of indexing.ignoreDirectoryNames. ignoreDirectoryNames is now ignored (#1003, #1010)
  • settings: terraformExecPath option was deprecated in favour of terraform.path. Old option is now ignored. (#1011)
  • settings: terraformExecTimeout option was deprecated in favour of terraform.timeout. Old option is now ignored. (#1011)
  • settings: terraformLogFilePath option was deprecated in favour of terraform.logFilePath. Old option is now ignored. (#1011)
  • cmd/serve: Previously deprecated -tf-exec* CLI flags were removed (-tf-exec, -tf-exec-timeout and -tf-log-file) in favour of LSP-based terraform.* configuration options (#1012)

ENHANCEMENTS:

  • Replace internal watcher (used for watching changes in installed plugins and modules) with LSP dynamic capability registration & workspace/didChangeWatchedFiles. This should leave to improved performance in most cases. (#953)
  • Provide completion, hover and docs links for uninitialized Registry modules (#924)
  • Provide basic IntelliSense (except for diagnostics) for hidden *.tf files (#971)
  • deps: bump terraform-schema to introduce v1.1 terraform cloud block (terraform-schema#117)
  • deps: bump terraform-schema to introduce v1.1 moved block (terraform-schema#121)
  • deps: bump terraform-schema to introduce v1.2 lifecycle conditions (terraform-schema#115)
  • deps: bump terraform-schema to introduce v1.2 lifecycle replace_triggered_by (terraform-schema#123)
  • Use module declarations from parsed configuration as source of truth for module.calls (#987)
  • walker: Index uninitialized modules (#997)
  • Recognize inputs and outputs of uninitialized local modules (#598)
  • Enable go to module output declaration from reference (#1007)
  • settings: New option indexing.ignorePaths was introduced (#1003, #1010)
  • Introduce module.terraform custom LSP command to expose Terraform requirements & version (#1016)
  • Avoid obtaining schema via Terraform CLI if the same version is already cached (based on plugin lock file) (#1014)
  • Avoid getting version via terraform version during background indexing and pick relevant IntelliSense data based on required_version constraint (#1027)
  • Provide 0.12 based IntelliSense for any <0.12 Terraform versions (#1027)
  • Complete module source and version attributes for local and registry modules (#1024)

BUG FIXES:

  • handlers/command: Return partially parsed metadata from module.providers (#951)
  • fix: Avoid ignoring hidden *.tfvars files (#968)
  • fix: Avoid crash on invalid URIs (#969)
  • fix: Avoid crash on invalid provider name (#1030)

INTERNAL:

  • job: introduce explicit priority for jobs (#977)
  • main: allow build version metadata to be set (#945)
  • deps: switch to the new minimal terraform-registry-address API (#949)
  • deps: bump LSP structs to match gopls 0.8.4 (#947)
  • deps: bump github.com/hashicorp/terraform-exec from 0.16.1 to 0.17.0 (#963)
  • deps: bump github.com/hashicorp/go-version from 1.5.0 to 1.6.0 (#979)
  • indexer: refactor & improve/cleanup error handling (#988)
  • indexer/walker: Avoid running jobs where not needed (#1006)

v0.28.1

09 Jun 16:51
de45e7e
Compare
Choose a tag to compare

Due to some release pipeline changes and multiple release attempts, 0.28.0 release was published with checksums mismatching the release artifacts.

This release is therefore equivalent to v0.28.0, but published with the correct checksums.

v0.28.0

07 Jun 21:02
0bae981
Compare
Choose a tag to compare

ENHANCEMENTS:

  • Link to documentation from module source for registry modules (#874)
  • Provide refresh mechanism for module.providers when providers change (#902)
  • Provide refresh mechanism for module.calls when module calls change (#909)
  • Add support for workspace/didChangeWatchedFiles notifications for *.tf & *.tfvars (#790)
  • Improve performance by reducing amount of notifications sent for any single module changes (#931)

BUG FIXES:

  • Ignore duplicate document versions in textDocument/didChange (#940)

INTERNAL:

  • build(deps): bump github.com/mitchellh/cli from 1.1.2 to 1.1.3 (#886)
  • Use terraform-registry-address for parsing module sources (#891)
  • Add utm parameters to docs links in module.* commands (#923)

v0.27.0

14 Apr 16:21
b198da0
Compare
Choose a tag to compare

NOTES / BREAKING CHANGES:

  • langserver/handlers/command: Remove rootmodules command (#846)
  • cmd: Remove completion CLI command (#852)

ENHANCEMENTS:

  • Provide (opt-in) custom semantic tokens & modifiers (#833)
  • Enable 'go to module source' for local modules (via #849)
  • Enable opening a single Terraform file (#843)

BUG FIXES:

  • Avoid hanging when workspace contains >50 folders (#839)
  • Make loading of parent directory after lower level directories work (#851)
  • Fix corrupted diffs in formatting responses (#876)
  • Fix module.calls command for Registry modules installed by Terraform v1.1+ (#872)

INTERNAL:

v0.26.0

17 Mar 17:47
95e06be
Compare
Choose a tag to compare

ENHANCEMENTS:

  • Introduce go-to-variable from tfvars files (#727)
  • Automatically refresh semantic tokens for more reliable highlighting (#630)
  • Enhance semantic highlighting of block labels (#802)
  • Enable completion, hover, go-to-definition/reference etc. for Terraform Registry modules (#808)
  • Report dependent semantic highlighting modifiers as defaultLibrary (instead of modification) (#817)
  • Semantically highlight type declarations in variable type (#827)

BUG FIXES:

  • Address race conditions typically surfaced as "out of range" errors, lack of completion/hover/etc. data or data associated with wrong position within the document (#782)
  • Fix broken validate on save (#799)
  • Fix encoding of unknown semantic token types (#815)
  • Fix missing references for some blocks in a separate config file (#829)

INTERNAL:

  • Simplify module source detection in favour of faster CI/compilation times (#783)
  • Store documents in a memdb-backed table (#771)
  • Refactor job scheduler to use memdb for jobs (#782)
  • build(deps): bump github.com/creachadair/jrpc2 from 0.35.2 to 0.37.0 (#774, #795, #809)

v0.26.0-beta1

01 Mar 17:11
10853c5
Compare
Choose a tag to compare
v0.26.0-beta1 Pre-release
Pre-release

ENHANCEMENTS:

  • Introduce go-to-variable from tfvars files (#727)
  • Automatically refresh semantic tokens for more reliable highlighting (#630)
  • Enhance semantic highlighting of block labels (#802)
  • Enable completion, hover, go-to-definition/reference etc. for Terraform Registry modules (#808)

BUG FIXES:

  • Address race conditions typically surfaced as "out of range" errors, lack of completion/hover/etc. data or data associated with wrong position within the document (#782)
  • Fix broken validate on save (#799)

INTERNAL:

  • Simplify module source detection in favour of faster CI/compilation times (#783)
  • Store documents in a memdb-backed table (#771)
  • Refactor job scheduler to use memdb for jobs (#782)
  • build(deps): bump github.com/creachadair/jrpc2 from 0.35.2 to 0.37.0 (#774, #795, #809)