NOTES:
This release adds support for Terraform Stack and Deployment files. This provides intelligent completion for Terraform Stacks blocks and attributes in Stack and Deployment files, including suggesting only valid completions for variables in component and deployment blocks. Hover documentation for all Stack and Deploy blocks, with helpful type and usage information. Early Validation has been extended to produce diagnostics along with syntax validation for Stack and Deployment files. Reference support allows code navigation in and between Stack and Deploy files. This also provides formatting support for both Stack and Deploy files.
This release also adds support for Terraform Test and Mock files. This provides completion for blocks and attributes, hover documentation and formatting support.
ENHANCEMENTS:
- Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files (#1745)
- Parse and load Stack and Deploy metadata (#1761)
- Load Stack component sources from metadata (#1768)
- Enable early validation for Terraform Stack files (#1776)
- Merge stack configuration schema with dynamic schema based on used components source and providers (#1770)
- Merge deployment configuration schema with dynamic schema based on available variables (#1780)
- Support Terraform functions in stack files (#1781)
- Add DecodeReferenceOrigins and DecodeReferenceTargets jobs (#1786)
- Enable component references (terraform-schema#386)
- Support references for identity tokens and their attributes (terraform-schema#388)
- Enable references for variables in deployment inputs (Deploy) (terraform-schema#389)
- Enable component references (terraform-schema#386)
- Enable ephemeral values for variable (terraform-schema#387)
- Enable output references (terraform-schema#384)
- Enable provider references (terraform-schema#385)
- Add Address to variable block schema for stacks to enable references (terraform-schema#383)
- Add deployments store block schema (terraform-schema#382)
- Add input block schema and deprecate variable block (terraform-schema#381)
- Validate Stack and Deployment files for unreferenced origins (#1797)
- Early decode deployment config to support references to store blocks (terraform-schema#390)
- Support a subset of functions in deployment configurations (#1799)
- Support description attribute for orchestration rule block (terraform-schema#393)
- Support locals in stack and deploy configs (terraform-schema#395)
- Support depends_on attribute in component blocks (terraform-schema#392)
- Support provider defined functions in stacks configuration (#1804)
- Support description attribute for orchestration rule block (terraform-schema#393)
- Support locals in stack and deploy configs (terraform-schema#395)
- Support depends_on attribute in component blocks (terraform-schema#392)
- Document Terraform Stacks support (#1802)
- Support context references within orchestrate blocks in deployment configuration (#1813)
- Static schema support for Terraform Test and Mock files (#1782)
BUG FIXES:
- Fix typo in USAGE.md (#1835)
- Fix panic on blocks with no labels during validation of label name (#1791)
- Fix type for provider references in component blocks (terraform-schema#391)
- Fix type for provider references in component blocks (terraform-schema#391)
- Support sensitive attribute for stacks variables (terraform-schema#401)
- Allow any type as inputs to components per default (terraform-schema#400)
INTERNAL:
- Load embedded provider schemas for providers found in stacks files into state (#1763)
- Add artifacts manifest (#1784)
- Add Stacks Terraform version to telemetry (#1828)
ENHANCEMENTS:
- Support provider defined functions in stacks configuration (#1804)
- Support description attribute for orchestration rule block (terraform-schema#393)
- Support locals in stack and deploy configs (terraform-schema#395)
- Support depends_on attribute in component blocks (terraform-schema#392)
- Document Terraform Stacks support (#1802)
- Support context references within orchestrate blocks in deployment configuration (#1813)
BUG FIXES:
- Fix type for provider references in component blocks (terraform-schema#391)
- Support sensitive attribute for stacks variables (terraform-schema#401)
- Allow any type as inputs to components per default (terraform-schema#400)
INTERNAL:
ENHANCEMENTS:
- Enable component references (terraform-schema#386)
- Support references for identity tokens and their attributes (terraform-schema#388)
- Enable references for variables in deployment inputs (Deploy) (terraform-schema#389)
- Enable component references (terraform-schema#386)
- Enable ephemeral values for variable (terraform-schema#387)
- Enable output references (terraform-schema#384)
- Enable provider references (terraform-schema#385)
- Add Address to variable block schema for stacks to enable references (terraform-schema#383)
- Add deployments store block schema (terraform-schema#382)
- Add input block schema and deprecate variable block (terraform-schema#381)
- Validate Stack and Deployment files for unreferenced origins (#1797)
- Early decode deployment config to support references to store blocks (terraform-schema#390)
- Support a subset of functions in deployment configurations (#1799)
- Support description attribute for orchestration rule block (terraform-schema#393)
- Support locals in stack and deploy configs (terraform-schema#395)
- Support depends_on attribute in component blocks (terraform-schema#392)
BUG FIXES:
- Fix type for provider references in component blocks (terraform-schema#391)
BUG FIXES:
- fix panic on blocks with no labels during validation of label name (#1791)
INTERNAL:
- Bump terraform-schema to c2315af (#1788)
ENHANCEMENTS:
- Parse and load Stack and Deploy metadata (#1761)
- Load Stack component sources from metadata (#1768)
- Enable early validation for Terraform Stack files (#1776)
- Merge stack configuration schema with dynamic schema based on used components source and providers (#1770)
- Merge deployment configuration schema with dynamic schema based on available variables (#1780)
- Support Terraform functions in stack files (#1781)
- Add DecodeReferenceOrigins and DecodeReferenceTargets jobs (#1786)
INTERNAL:
- Load embedded provider schemas for providers found in stacks files into state (#1763)
ENHANCEMENTS:
- Generate built in providers (#1817)
INTERNAL:
- Add artifacts manifest (#1784)
BUG FIXES:
- Ensure validation runs after decoding the whole module to avoid stale diagnostics (#1777)
BUG FIXES:
- Check for submodules when fetching schemas from the registry (#1772)
ENHANCEMENTS:
- Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files (#1745)
- Add documentation for using vim with YouCompleteMe (#1718)
- Enable completion for all locally installed remote modules (#1760)
- Re-architect the language server for improved performance and resource utilization (#1667)
This marks the completion of a major refactoring effort. The language server will now start up much faster and use less resources, especially on larger workspaces. We achieve this by doing less work during the initial walk of a workspace. Instead, we only parse modules with open files. Whenever a file of a module is opened, we schedule all the jobs needed to understand the contents of that directory (and the referenced modules).
INTERNAL:
- Introduce a workflow that checks for changelog entries (#1759)
- Split internal modules state into separate features (#1667)
ENHANCEMENTS:
- Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files (#1745)
ENHANCEMENTS:
- Add documentation for using vim with YouCompleteMe (#1718)
- Re-architect the language server for improved performance and resource utilization (#1667)
This marks the completion of a major refactoring effort. The language server will now start up much faster and use less resources, especially on larger workspaces. We achieve this by doing less work during the initial walk of a workspace. Instead, we only parse modules with open files. Whenever a file of a module is opened, we schedule all the jobs needed to understand the contents of that directory (and the referenced modules).
We have tested this with workspaces and configurations of different sizes, but still expect some bugs. Please give this preview a try and let us know how it works for you.
INTERNAL:
- Split internal modules state into separate features (#1667)
ENHANCEMENTS:
- Add support for the new
templatestring
functions in Terraform 1.9 (terraform-schema#357) - Introduce provisioners to
removed
blocks in Terraform 1.9 (terraform-schema#358)
INTERNAL:
- Document schema bundling in CONTRIBUTING.md (#1736)
BUG FIXES:
- Fix data race in schema merging logic (hcl-lang#397)
INTERNAL:
- Bump Go version to 1.22.4 (#1727)
- Ensure license file gets packaged on build (#1723)
- Remove non-empty directory during test cleanup (#1696)
- Replace outdated remove-labels action with
gh
(#1699) - Reenable Dependabot for internal GitHub actions (#1702)
- Fixed gosimple linter results for uri package (#1707)
- Remove dead code, where the
LanguageId
was never set (#1709)
NOTE:
Starting with this release, we are including a copy of our license file in all packaged versions of our releases, such as the release .zip files. If you are consuming these files directly and would prefer to extract the one terraform-ls file instead of extracting everything, you need to add an extra argument specifying the file to extract, like this:
unzip terraform-ls_0.33.2_linux_amd64.zip terraform-ls
ENHANCEMENTS:
- Rename TFC to HCP Terraform in documentation (#1687)
- Rename TFC to HCP Terraform in hover documentation (terraform-schema#1687)
INTERNAL:
- Remove token from delete-artifact action (#1685)
- Revert "Use Terraform 1.8-rc1 for bundling schemas (#1669)" (#1686)
ENHANCEMENTS:
- Support for provider-defined functions (#1636)
- Remove
use_legacy_workflow
from S3 backend (terraform-schema#338) - Add
issensitive
function (terraform-schema#340) - Conclude
module_variable_optional_attrs
language experiment (terraform-schema#337)
BUG FIXES:
- Only merge provider-defined functions for Terraform >= 1.8 (#1672, terraform-schema#336)
INTERNAL:
- Use Terraform
1.8.0-rc1
for bundling schemas (#1669) - Update net package (updates some more alongside) (#1677)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.42.0 to 2.42.2 (#1662, #1680)
- build(deps): Bump github.com/zclconf/go-cty from 1.14.3 to 1.14.4 (#1666)
- build(deps): Bump workflows to latest trusted versions (#1673)
- build(deps): Bump golang.org/x/tools from 0.19.0 to 0.20.0 (#1679)
- build(deps): Bump github.com/creachadair/jrpc2 from 1.1.2 to 1.2.0 (#1674)
- build(deps): Bump github.com/hashicorp/hc-install from 0.6.3 to 0.6.4 (#1675)
- build(deps): Bump go.opentelemetry.io/otel/trace from 1.24.0 to 1.25.0 (#1678)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.49.0 to 0.50.0 (#1681)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.49.0 to 0.50.0 (#1682)
ENHANCEMENTS:
- Support for provider-defined functions (#1636)
INTERNAL:
- Use Terraform
1.8.0-rc1
for bundling schemas (#1669)
NOTES / BREAKING CHANGES:
- Remove
inspect-module
command (#1642)
BUG FIXES:
- Fix
for
expression collection constraints (hcl-lang#375)
INTERNAL:
- Remove getting provider schema log line (#1643)
- Ignore preloaded schemas in complex module test (#1638)
- Remove outdated LSP comparison from README (#1641)
- Link to
.github/CONTRIBUTING.md
in README (#1635) - Bump Go version (#1649)
- Enable pre releases via CRT (#1651)
- build(deps): Bump workflows to latest trusted versions (#1605, #1639, #1656, #1659)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.40.3 to 2.42.0 (#1633, #1640)
- build(deps): Bump golang.org/x/tools from 0.17.0 to 0.19.0 (#1634, #1658)
- build(deps): Bump go.opentelemetry.io/otel from 1.23.1 to 1.24.0 (#1644)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.48.0 to 0.49.0 (#1647)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.48.0 to 0.49.0 (#1646)
- build(deps): Bump github.com/zclconf/go-cty from 1.14.2 to 1.14.3 (#1654)
- build(deps): Bump github.com/algolia/algoliasearch-client-go/v3 from 3.31.0 to 3.31.1 (#1657)
- build(deps): Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#1653)
BUG FIXES:
- Fix panics on
nil
expressions (hcl-lang#376) - Fix panics on
nil
expressions in early decoder (terraform-schema#324)
ENHANCEMENTS:
- Support
for
-in
-if
expressions (hcl-lang#368)
BUG FIXES:
- Fix prefix completion in
TemplateWrapExpr
(hcl-lang#371) - Fix LS panic on prefix completion with leading space (hcl-lang#373)
- Fix LS panic on missing symbols in client capabilities (#1619)
INTERNAL:
- github: Remove benchmarks workflow (#1599)
- chore: fix typo in comment (#1612)
- build(deps): Bump github.com/zclconf/go-cty from 1.14.1 to 1.14.2 (#1600)
- build(deps): Bump go.opentelemetry.io/otel from 1.22.0 to 1.23.1 (#1617, #1621)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.47.0 to 0.48.0 (#1616)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.47.0 to 0.48.0 (#1618)
- build(deps): Bump github.com/hashicorp/hc-install from 0.6.2 to 0.6.3 (#1622)
- build(deps): Bump workflows to latest trusted versions (#1624)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.40.1 to 2.40.3 (#1625)
ENHANCEMENTS:
- Enable interpolated map keys and object attribute names (terraform-schema#316)
- Add support for complex index expressions (hcl-lang#365)
- Add support for parenthesis on RHS (hcl-lang#366)
- Add support for parenthesis on LHS (map keys & attribute names) (hcl-lang#367)
BUG FIXES:
INTERNAL:
- build(deps): Bump go.opentelemetry.io/otel from 1.21.0 to 1.22.0 (#1589)
- build(deps): Bump go.opentelemetry.io/otel/trace from 1.21.0 to 1.22.0 (#1588)
- build(deps): Bump github.com/hashicorp/terraform-json from 0.20.0 to 0.21.0 (#1591)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.46.1 to 0.47.0 (#1592)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.46.1 to 0.47.0 (#1593)
- build(deps): Bump workflows to latest trusted versions (#1594)
ENHANCEMENTS:
- Alert on
wsl.localhost
Path (#1522) - Enable
for_each
forimport
blocks (Terraform 1.7) (terraform-schema#315) - Add
removed
block (Terraform 1.7) (terraform-schema#313) - Deprecate
use_legacy_workflow
in S3 Backend (Terraform 1.7) (terraform-schema#314)
INTERNAL:
- docs: update syntax-highlighting.md (#1528)
- go: bump version to 1.21.5 (#1521)
- ci: Automate releasing via bob (#1167)
- build(deps): Bump golang.org/x/tools from 0.16.0 to 0.17.0 (#1519, #1578)
- build(deps): Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#1524)
- build(deps): Bump github.com/hashicorp/terraform-json from 0.18.0 to 0.20.0 (#1541, #1547)
- build(deps): Bump github.com/hashicorp/terraform-exec from 0.19.0 to 0.20.0 (#1543)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.38.0 to 2.40.1 (#1542, #1544, #1576, #1581)
- build(deps): Bump workflows to latest trusted versions (#1520, #1571, #1579)
- Rename
hcl-typeCapsule
tohcl-typeComplex
(#1529) - Rename
hcl-traversalStep
tohcl-referenceStep
(#1574)
ENHANCEMENTS:
- Add support for conditional expression (hcl-lang#326)
- Add support for template expressions (hcl-lang#322)
- Reflect new SSO endpoint override in S3 backend (terraform-schema#302)
- Reflect new proxy settings in S3 backend (terraform-schema#301)
- Reflect new
skip_s3_checksum
attribute in S3 backend (terraform-schema#295)
BUG FIXES:
- Improve traversal completion for lists, tuples, and sets (hcl-lang#344)
- Update version resolution for empty constraints (terraform-schema#296)
INTERNAL:
- Add new performance issue template (#1499)
- go: Bump version to 1.21.4 (#1511)
- github: Disable dependabot for GHA (#1489)
- build(deps): Bump golang.org/x/tools from 0.14.0 to 0.15.0 (#1491, #1513)
- build(deps): Bump workflows to latest trusted versions (#1493, #1510, #1514)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.36.1 to 2.38.0 (#1498, #1500, #1509)
- build(deps): Bump github.com/hashicorp/terraform-json from 0.17.1 to 0.18.0 (#1492)
- build(deps): Bump go.opentelemetry.io/otel from 1.19.0 to 1.20.0 (#1494)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.45.0 to 0.46.0 (#1496)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.45.0 to 0.46.0 (#1497)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.46.0 to 0.46.1 (#1501)
- build(deps): Bump github.com/creachadair/jrpc2 from 1.1.1 to 1.1.2 (#1504)
- build(deps): Bump github.com/hashicorp/hc-install from 0.6.1 to 0.6.2 (#1516)
BUG FIXES:
- Validate required attributes more selectively to relax
provider
validation (#1485) - Skip inferring variable type from default values (hcl-lang#338)
- Ensure partially unknown dependent body is handled (hcl-lang#339)
- Fix type-unaware target collection (hcl-lang#340)
- Allow variable references in
depends_on
(terraform-schema#290) - Fix provider attribute to block conversion (terraform-schema#288)
- Skip inferring module inputs for default values (terraform-schema#289)
- Allow local references in
depends_on
(terraform-schema#292)
INTERNAL:
- go: bump version to 1.21.3 (#1467)
- validations: Add link in comment to open issue (#1472)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.35.3 to 2.36.1 (#1463, #1465, #1487)
- build(deps): Bump github.com/hashicorp/hcl/v2 from 2.18.1 to 2.19.1 (#1466, #1468)
- build(deps): Bump actions/checkout from 4.1.0 to 4.1.1 (#1469)
- build(deps): Bump github.com/hashicorp/terraform-registry-address from 0.2.2 to 0.2.3 (#1482)
ENHANCEMENTS:
- Add
skip_requesting_account_id
tos3
backend (terraform-schema#279)
BUG FIXES:
- Work around 'unreliable' input data for Registry modules (#1456)
- Resolve version correctly for backend schema (#1453)
- Allow objects in
for_each
(hcl-lang#333) - Fix
output
blockprecondition
in 1.2 schema (terraform-schema#282)
INTERNAL:
- build(deps): Bump github.com/vektra/mockery/v2 from 2.35.1 to 2.35.3 (#1451, #1452)
- build(deps): Bump golang.org/x/tools from 0.13.0 to 0.14.0 (#1450)
- build(deps): Bump github.com/hashicorp/hc-install from 0.6.0 to 0.6.1 (#1454)
- build(deps): Bump github.com/google/go-cmp from 0.5.9 to 0.6.0 (#1457)
- build(deps): Bump golang.org/x/net from 0.16.0 to 0.17.0 (#1460)
ENHANCEMENTS:
- decoder: Add support for binary & unary operators (hcl-lang#320)
BUG FIXES:
- Fix incorrect schema for
terraform_remote_state
data source (terraform-schema#272) - Make
cloud
organization
optional (terraform-schema#271) - Ensure empty objects & tuples still get recognised (hcl-lang#330)
- Introduce default value
"ssh"
fortype
underconnection
block to enable recognition of attributes such asbastion_host
even whentype
is not declared (hcl-lang#327, terraform-schema#270) - Introduce v1.3 proxy related fields for provisioner
connection
block (terraform-schema#269) - Ensure
target_platform
is recognised in nestedconnection
block (terraform-schema#268)
ENHANCEMENTS:
- Enhanced validation provides additional diagnostics for selected invalid Terraform language constructs based on detected Terraform version and provider versions are provided. (#1368)
- Improve performance by parsing changed
*.tf
file (as opposed to all files in the module) (#1404) - Improve performance by parsing changed
*.tfvars
file (as opposed to all files in the directory) (#1422) - Add
project
attribute to workspaces block (terraform-schema#257) - Update
import
ID to be interpolatable (terraform-schema#260) - Add
nullable
tovariable
blocks forv1.1+
(terraform-schema#261) - Add
endpoint
anddomain
tocos
backend (terraform-schema#262) - Add
proxy_url
tokubernetes
backend (terraform-schema#263) - Update
s3
backend withv1.6
changes (terraform-schema#265)
BUG FIXES:
- Allow
list(any)
to be passed intodynamic
block'sfor_each
(hcl-lang#313) - Make
dynamic
content
block required (hcl-lang#314) - indexer: Ensure declared module calls get decoded (#1395)
INTERNAL:
- go: bump version to
1.21.1
(#1408) - build(deps): Bump actions/checkout from 3.6.0 to 4.1.0 (#1382, #1420)
- build(deps): Bump actions/upload-artifact from 3.1.2 to 3.1.3 (#1393)
- build(deps): Bump github.com/algolia/algoliasearch-client-go/v3 from 3.30.1 to 3.31.0 (#1387)
- build(deps): Bump github.com/otiai10/copy from 1.12.0 to 1.14.0 (#1432)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.33.0 to 2.34.2 (#1388, #1411, #1419, #1421, #1423)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace from 0.42.0 to 0.45.0 (#1390, #1405, #1430)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.42.0 to 0.43.0 (#1385)
- build(deps): Bump go.opentelemetry.io/otel from 1.17.0 to 1.19.0 (#1401, #1428)
- build(deps): Bump go.opentelemetry.io/otel/trace from 1.16.0 to 1.17.0 (#1389)
- build(deps): Bump golang.org/x/tools from 0.12.0 to 0.13.0 (#1386)
ENHANCEMENTS:
- jobs: Improve
PreloadEmbeddedSchema
performance (#1369) - langserver: Avoid re-processing open files after file saving to improve performance (#1372)
INTERNAL:
- go: Bump version to 1.21 (#1355)
- Bump terraform-schema and hcl-lang (#1350, #1374)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.32.0 to 2.33.0 (#1345, #1348, #1356, #1360)
- build(deps): Bump golang.org/x/tools from 0.11.1 to 0.12.0 (#1351)
- build(deps): Bump actions/setup-go from 4.0.1 to 4.1.0 (#1354)
- build(deps): Bump github.com/creachadair/jrpc2 from 1.1.0 to 1.1.1 (#1359)
- build(deps): Bump actions/checkout from 3.5.3 to 3.6.0 (#1362)
ENHANCEMENTS:
- OTEL instrumentation (currently no-op for end-users) (#1327, #1334)
- jobs: Don't wait for
GetModuleDataFromRegistry
job to improve performance (#1332)
INTERNAL:
- build(deps): Bump golang.org/x/tools from 0.11.0 to 0.11.1 (#1342)
- deps: Bump terraform-schema to
8234469
(#1343) - build(deps): Bump github.com/vektra/mockery/v2 from 2.30.1 to 2.30.16 (#1319)
- build(deps): Bump github.com/hashicorp/terraform-json from 0.17.0 to 0.17.1 (#1320)
- build(deps): Bump github.com/algolia/algoliasearch-client-go/v3 from 3.30.0 to 3.30.1 (#1322)
- build(deps): Bump golang.org/x/tools from 0.10.0 to 0.11.0 (#1323)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.30.16 to 2.30.17 (#1325)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.30.17 to 2.31.1 (#1326)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.31.1 to 2.31.4 (#1328)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.31.4 to 2.32.0 (#1329)
- build(deps): Bump github.com/creachadair/jrpc2 from 1.0.1 to 1.1.0 (#1330)
- Change
nvim_create_autocmd
callback to a lambda (#1295) - Fix link in README.md (#1324)
ENHANCEMENTS:
- Introduce v1.5
check
block (#229) - Introduce v1.5
import
block (#228) - Re-generate function signatures for v1.5 (#213)
- Add v1.4
local-exec
provisionerquiet
attribute (#218) - Reflect 1.4 changes in
gcs
backend (#227) - Reflect 1.4 changes in
http
backend (#226) - Reflect 1.3 & 1.4 changes in
cos
backend (#217) - Reflect 1.2 & 1.3 changes in
azurerm
backend (#225)
INTERNAL:
- build(deps): Bump github.com/algolia/algoliasearch-client-go/v3 from 3.29.1 to 3.29.2 (#1281)
- build(deps): Bump github.com/algolia/algoliasearch-client-go/v3 from 3.29.2 to 3.29.4 (#1289)
- build(deps): Bump github.com/algolia/algoliasearch-client-go/v3 from 3.29.4 to 3.30.0 (#1305)
- build(deps): Bump github.com/hashicorp/hc-install from 0.5.1 to 0.5.2 (#1282)
- build(deps): Bump github.com/hashicorp/hcl/v2 from 2.16.2 to 2.17.0 (#1298)
- build(deps): Bump github.com/hashicorp/terraform-json from 0.16.0 to 0.17.0 (#1308)
- build(deps): Bump github.com/hashicorp/terraform-registry-address from 0.2.0 to 0.2.1 (#1311)
- build(deps): Bump github.com/otiai10/copy from 1.11.0 to 1.12.0 (#1313)
- build(deps): Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#1288)
- build(deps): Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (#1294)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.26.1 to 2.27.1 (#1285)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.27.1 to 2.28.1 (#1293)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.28.1 to 2.28.2 (#1302)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.28.2 to 2.29.0 (#1306)
- build(deps): Bump github.com/vektra/mockery/v2 from 2.29.0 to 2.30.1 (#1310)
- build(deps): Bump github.com/zclconf/go-cty from 1.13.1 to 1.13.2 (#1290)
- build(deps): Bump golang.org/x/tools from 0.9.1 to 0.9.2 (#1299)
- build(deps): Bump golang.org/x/tools from 0.9.2 to 0.9.3 (#1301)
- build(deps): Bump golang.org/x/tools from 0.9.3 to 0.10.0 (#1312)
BUG FIXES:
- Fix crash on prefix completion (hcl-lang#275)
INTERNAL:
- Remove automated milestone closure commenting (#1266)
ENHANCEMENTS:
- Cache registry module errors to improve performance in cases of private registry, submodules or other similar situations resulting in module data unavailability (#1258)
BUG FIXES:
- Pull in gopls v0.10.0 tsprotocol.go to fix completion labels (#1256)
INTERNAL:
- Add PR test for copyright headers (#1241)
ENHANCEMENTS:
- Add support for nested expressions and functions (#1237, hcl-lang#232, hcl-lang#203, hcl-lang#199, hcl-lang#186, hcl-lang#185, hcl-lang#184)
- Add support for function signature help in (#1077)
- Fix remote backend tracking in (#1218)
- lsp: Recognise new token type for function names in (#1233)
INTERNAL:
BUG FIXES:
- Reflect
LiteralValue
,Description
&IsDeprecated
in completion/hover (hcl-lang#253) - Fix crash when completing
LiteralType{Type: cty.Tuple}
(hcl-lang#255) - Display
Tuple
hover data on invalid element (hcl-lang#254) - Fix collection of implied declared targets of complex types (hcl-lang#259)
- Collect targets w/ interpolation for
Any
correctly (hcl-lang#257)
ENHANCEMENTS:
- Add support for nested expressions and functions (#1237, hcl-lang#232, hcl-lang#203, hcl-lang#199, hcl-lang#186, hcl-lang#185, hcl-lang#184, )
- Add support for function signature help in (#1077)
- Fix remote backend tracking in (#1218)
- lsp: Recognise new token type for function names in (#1233)
INTERNAL:
- Add instructions for Kate editor (#1200)
- Add TFC usage detection (#1208)
- build(deps): bump actions/checkout from 3.3.0 to 3.4.0 (#1215)
- build(deps): bump actions/checkout from 3.4.0 to 3.5.0 (#1228)
- build(deps): bump actions/setup-go from 3.5.0 to 4.0.0 (#1214)
- build(deps): bump actions/stale from 7.0.0 to 8.0.0 (#1222)
- build(deps): bump github.com/algolia/algoliasearch-client-go/v3 from 3.26.3 to 3.26.4 (#1198)
- build(deps): bump github.com/algolia/algoliasearch-client-go/v3 from 3.26.4 to 3.26.5 (#1230)
- build(deps): bump github.com/algolia/algoliasearch-client-go/v3 from 3.26.5 to 3.27.0 (#1231)
- build(deps): bump github.com/creachadair/jrpc2 from 0.44.0 to 0.45.0 (#1213)
- build(deps): bump github.com/creachadair/jrpc2 from 0.46.0 to 1.0.0 (#1227)
- build(deps): bump github.com/creachadair/jrpc2 to v0.46.0 (#1217)
- build(deps): bump github.com/hashicorp/hc-install from 0.5.0 to 0.5.1 (#1232)
- build(deps): bump github.com/hashicorp/hcl/v2 from 2.16.1 to 2.16.2 (#1205)
- build(deps): bump github.com/hashicorp/terraform-exec from 0.18.0 to 0.18.1 (#1201)
- build(deps): bump github.com/hashicorp/terraform-json from 0.15.0 to 0.16.0 (#1206)
- build(deps): bump github.com/hashicorp/terraform-registry-address from 0.0.0-20220623143253-7d51757b572c to 0.1.0 (#1196)
- build(deps): bump github.com/hashicorp/terraform-registry-address from 0.1.0 to 0.2.0 (#1226)
- build(deps): bump github.com/otiai10/copy from 1.9.0 to 1.10.0 (#1236)
- build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#1199)
- build(deps): bump github.com/vektra/mockery/v2 from 2.20.2 to 2.21.1 (#1202)
- build(deps): bump github.com/vektra/mockery/v2 from 2.21.1 to 2.21.4 (#1204)
- build(deps): bump github.com/vektra/mockery/v2 from 2.21.4 to 2.21.6 (#1207)
- build(deps): bump github.com/vektra/mockery/v2 from 2.21.6 to 2.22.1 (#1209)
- build(deps): bump github.com/vektra/mockery/v2 from 2.22.1 to 2.23.0 (#1219)
- build(deps): bump github.com/vektra/mockery/v2 from 2.23.0 to 2.23.1 (#1221)
- build(deps): bump github.com/vektra/mockery/v2 from 2.23.1 to 2.23.2 (#1235)
- build(deps): bump github.com/zclconf/go-cty from 1.12.1 to 1.13.0 (#1197)
- build(deps): bump github.com/zclconf/go-cty from 1.13.0 to 1.13.1 (#1216)
- build(deps): bump golang.org/x/tools from 0.6.0 to 0.7.0 (#1203)
- build(deps): Bump hcl-lang & terraform-schema to latest revisions (#1237)
BUG FIXES:
- Enable static builds of Linux binaries (again) (#1193)
NOTES / BREAKING CHANGES:
- We have changed our release process: all assets continue to be available from the HashiCorp Releases site and/or via the Releases API, not as GitHub Release assets anymore.
ENHANCEMENTS:
- Parse
optional()
object attribute default values correctly, as introduced in Terraform v1.3 (terraform-schema#184)
BUG FIXES:
- Ignore inaccessible files (such as emacs backup files) (terraform-ls#1172)
- Fix crash when parsing JSON files (introduced in 0.30.0) (hcl-lang#202)
INTERNAL:
- Remove
schema.TupleConsExpr
(hcl-lang#175) - internal/schema: Replace
TupleConsExpr
withSetExpr
(terraform-schema#169) - Use upstreamed HCL typexpr package (terraform-schema#168)
BUG FIXES:
- Support
dynamic
in theprovisioner
andprovider
blocks (terraform-schema#165) - Fix
dynamic
blockfor_each
description (hcl-lang#164) - Avoid completing static block inside a
dynamic
label (hcl-lang#165) - Fix missing hover for
count
andfor_each
expression (hcl-lang#166) - Fix support of deeper nesting of
dynamic
block (hcl-lang#167) - Change
dynamic
block type to default (hcl-lang#168)
ENHANCEMENTS:
- Support
count.index
references in blocks withcount
for completion, hover documentation and semantic tokens highlighting (#860, hcl-lang#160) - Support
each.*
references in blocks withfor_each
for completion, hover documentation and semantic tokens highlighting (#861, hcl-lang#162) - Support
self.*
references inprovisioner
,connection
andpostcondition
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.*
inprovisioner
,connection
andpostcondition
blocks (#1096) - Remove deprecated backends in Terraform 1.3.0 (terraform-schema#159)
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.
- 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/
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)
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)
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)
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 ofindexing.ignorePaths
.excludeModulePaths
is now ignored (#1003) - settings:
ignoreDirectoryNames
option was deprecated in favour ofindexing.ignoreDirectoryNames
.ignoreDirectoryNames
is now ignored (#1003, #1010) - settings:
terraformExecPath
option was deprecated in favour ofterraform.path
. Old option is now ignored. (#1011) - settings:
terraformExecTimeout
option was deprecated in favour ofterraform.timeout
. Old option is now ignored. (#1011) - settings:
terraformLogFilePath
option was deprecated in favour ofterraform.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-basedterraform.*
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 formodule.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 onrequired_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)
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.
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)
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:
- Add job scheduler benchmarks & document expectations around performance (#840)
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 ofmodification
) (#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)
BUG FIXES:
- fix: avoid sending empty diagnostics (#756)
- fix: avoid code lens updates when disabled (#757)
- fix: Catch OS agnostic interrupt signal (#755)
- fix: Return correct target selection range for definition/declaration (#759)
- telemetry: Only send requests if data has changed (#758)
INTERNAL:
- Switch to hc-install from tfinstall (#737)
BUG FIXES:
- Reduce parallelism for background operations to flatten CPU spikes triggered by workspaces with many modules on machines w/ >2 CPUs (which would previously had higher parallelism) (#752)
INTERNAL:
- build(deps): bump github.com/creachadair/jrpc2 from 0.32.0 to 0.35.2 (#748)
- build(deps): bump github.com/spf13/afero from 1.6.0 to 1.8.0 (#747, #754)
- build(deps): bump github.com/mitchellh/mapstructure from 1.4.2 to 1.4.3 (#732)
- build(deps): bump github.com/hashicorp/hcl/v2 from 2.10.1 to 2.11.1 (#731)
ENHANCEMENTS:
- Introduce
module.providers
command (#712) - Diagnostics for all known modules/files are now published automatically (as opposed to just open files) (#714)
- Introduce go-to-variable from module input name (#700)
NOTES:
INTERNAL:
- build(deps): bump github.com/creachadair/jrpc2 from 0.30.1 to 0.32.0 (#713, #728)
- Avoid duplicate state entries (by avoiding symlink evaluation) (#699)
BREAKING CHANGES:
source.formatAll.terraform-ls
is renamed tosource.formatAll.terraform
to follow other similar existing actions in the wild (#680)
ENHANCEMENTS:
- Implement opt-in telemetry (documented in
docs/telemetry.md
) (#681) - Provide workspace-wide symbols for variables in
*.tfvars
(#658) - Go-to-definition now highlights just the definition of a block/attribute instead of the whole attribute/block (#689)
- Add configuration option allowing to exclude directories from being indexed upon initialization (#696)
- Parse
*.tfvars.json
for workspace-wide symbols and diagnostics (#697)
BUG FIXES:
- The server announces just a single formatting code action, other actions
source
,source.fixAll
andsource.formatAll
are removed which helps avoid running the same action multiple times and better follows conventions (#680) - Requesting
Only: []
code actions is now no-op (#680) - Fix indexing of references in dependent modules (#698)
- Fix workspace folder removal/addition at runtime (#707)
INTERNAL:
ENHANCEMENTS:
- Introduce
module.calls
command (#632) - Introduce experimental completion of required fields. You can opt in via
prefillRequiredFields
option (#657) - Ignore
.terragrunt-cache
when indexing initialized modules (#666) - Parse
*.tf.json
for references and symbols (#672)
INTERNAL:
- build(deps): bump github.com/creachadair/jrpc2 from 0.25.1 to 0.28.0 (#649, #650, #662, #668, #676, #677)
- build(deps): bump github.com/hashicorp/terraform-exec from 0.14.0 to 0.15.0 (#664)
ENHANCEMENTS:
- Support standalone (not autoloaded)
*.tfvars
files (#621)
BUG FIXES:
- fix: Limit label completion items to 100 (same as limit for completion items in other contexts) (#628)
- Recognize references in module block inputs (#623)
INTERNAL:
- build(deps): bump github.com/mitchellh/mapstructure from 1.4.1 to 1.4.2 (#641)
- build(deps): bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.1 (#629)
- build(deps): bump github.com/creachadair/jrpc2 from 0.20.0 to 0.25.0 (#631, #636, #638, #640, #642)
DEPRECATIONS:
-tf-exec
(CLI flag) is deprecated in favour of LSP config optionterraformExecPath
.-tf-exec
flag will raise warnings in future releases and will be eventually removed. (#588)-tf-log-file
(CLI flag) is deprecated in favour of LSP config optionterraformLogFilePath
.-tf-log-file
flag will raise warnings in future releases and will be eventually removed. (#619)tf-exec-timeout
(CLI flag) is deprecated in favour of LSP config optionterraformExecTimeout
.tf-exec-timeout
flag will raise warnings in future releases and will be eventually removed. (#619)
BUG FIXES:
- fix: allow multiple variable validation blocks (#610)
- fix: avoid crash on missing block label (#612)
- fix: avoid crash when
validate
command returns internal error instead of diagnostics (#588)
ENHANCEMENTS:
- Always validate URI schema (#602)
- Introduce
terraformExecPath
as option withininitializationOptions
(#588) - Introduce
terraformLogFilePath
as option withininitializationOptions
(#619) - Introduce
terraformExecTimeout
as option withininitializationOptions
(#619) - Introduce format on save code action (#625)
INTERNAL:
- Update LSP structs to gopls'
0.7.0
(#608) - build(deps): bump github.com/creachadair/jrpc2 from 0.19.1 to 0.20.0 (#614)
- build(deps): bump github.com/zclconf/go-cty from 1.9.0 to 1.9.1 (#624)
BUG FIXES:
- fix: recognize references in common nested expressions (#596)
- textDocument/publishDiagnostics: Publish any source-less warnings or errors (#601)
- fix: avoid publishing stale 'validate' diagnostics (#603)
- fix: avoid crash on highlighting unknown tuple element (#605)
- fix: recognize list(object) and set(object) attributes as blocks (#607)
INTERNAL:
- build(deps): bump github.com/creachadair/jrpc2 from 0.19.0 to 0.19.1 (#606)
FEATURES:
- Implement reference count code lens (#584)
ENHANCEMENTS:
- Add support for module input completion/hover/highlighting (#551)
- Add support for module output reference completion/hover/highlighting (#593)
BUG FIXES:
- fix: recognize references in lists and other complex types (#594)
INTERNAL:
- build(deps): bump github.com/hashicorp/hcl/v2 from 2.10.0 to 2.10.1 (#589)
BUG FIXES:
- Fix 'go to references' for resources & data sources (#587)
INTERNAL:
- build(deps): bump github.com/creachadair/jrpc2 from 0.17.0 to 0.18.0 (#550)
FEATURES:
- Go to attribute/block from reference (#569)
- Go to references from an attribute or a block (#572, #580)
ENHANCEMENTS:
BUG FIXES:
- fix: avoid crash on empty file formatting (#578)
BUG FIXES:
- fix: avoid circular references to list/map/object attributes (which caused high CPU usage on copy) (#575)
ENHANCEMENTS:
- Provide (less verbose) step-based completion (#566)
BUG FIXES:
- Mock out code lens support to avoid errors (#561)
ENHANCEMENTS:
- Support for references to variables and locals (#553)
- tfvars: Infer variable types from default values where not explicitly specified (#554)
BUG FIXES:
- Prevent var names from being completed in label (#555)
FEATURES:
- Add support for
tfvars
(variable files) (#540)
ENHANCEMENTS:
- Add support for state backends (#544)
- Add support for provisioners (#542)
- Support for type declarations (variable
type
) (#490) - Support variable
default
(#543)
BUG FIXES:
- Reduce CPU usage via custom Copy methods instead reflection (#513)
ENHANCEMENTS:
- Add support for traversals/references (#485)
- Add new
module.callers
(LSP) command & document all available commands (#508)
ENHANCEMENTS:
- Increase request concurrency & make it configurable via
-req-concurrency
flag ofserve
command (#489)
BUG FIXES:
- Fix request cancellation (#314)
ENHANCEMENTS:
- Support templated paths for
-cpuprofile
&-memprofile
flags ofserve
(#501)
BUG FIXES:
- Avoid presenting stale diagnostics after document changes (#488)
BUG FIXES:
- Prevent crash for legacy provider lookups where configuration is missing
terraform
>required_providers
block orsource
arguments for providers and Terraform 0.13+ is used (#481)
SECURITY:
This release is signed with a new GPG key (ID 72D7468F
), unlike all previous releases which were signed with (now revoked) key (ID 348FFC4C
). Old releases were temporarily re-signed with the new key, but that key will be removed in coming weeks or months.
Read more about the related security event HCSEC-2021-12.
Users of the Terraform VS Code extension will need to upgrade to 2.10.1
before auto-upgrading to this LS version.
ENHANCEMENTS:
- Allow effective utilization of multiple schema sources (local or preloaded) via cache (#454)
- "No schema found ..." warning removed, as schema is far more likely to be available now (#454)
- "Alternative root modules found ..." warning removed (#454)
- Further improve support for Terraform 0.15 (#425)
BUG FIXES:
- Fix panic caused by partially unknown map keys in configuration (#447)
FEATURES:
- Add workspace-wide symbol navigation (#427)
ENHANCEMENTS:
- textDocument/documentSymbol: Support nested symbols (#420)
- Add Go version, OS and architecture to
version
command (#407) - Add initial support for expressions (#411)
- Reflect 0.15 schema changes (#436)
BUILD:
- Provide Linux packages (#421)
FEATURES:
- Add links to documentation (Ctrl+click in supported clients + hover) (#402)
ENHANCEMENTS:
- Improve messaging when Terraform is not found (#401)
BUG FIXES:
- watcher: Refresh versions when plugin lockfile changes (#403)
BUILD:
- Provide darwin/arm64 (Apple Silicon) build (#350)
FEATURES:
- watcher: Detect
terraform init
from scratch (#385)
ENHANCEMENTS:
BUG FIXES:
- Fix miscalculated semantic tokens (#390)
BUG FIXES:
FEATURES:
- Implement
textDocument/semanticTokens
(semantic highlighting) (#331) - Implement experimental validate on save feature (#340)
ENHANCEMENTS:
- Report progress for validate command (#336)
- Report deprecated completion items as such (#337)
- Preloaded schemas now include partner providers in addition to official ones (#341)
NOTES:
- Only official (legacy) providers will be completed in
provider
block completion. Partner providers currently require corresponding entry inrequired_providers
block, read #370 to understand why and how we plan to address this inconvenient behaviour. - Preloaded schemas are now being generated at release time (as opposed to being committed to the repo). Therefore availability of these schemas is dependent on particular release process tracked in this repository. This may interest anyone who does not use the official builds from
releases.hashicorp.com
and has its own build process. Plaingo get
still compiles and runs server correctly, however it won't automatically generate and embed the schemas. (#341)
INTERNAL:
ENHANCEMENTS:
- Ask for init if current folder is empty root module (#257)
- Display provider versions in completion/hover detail (#329)
- Expose
terraform.validate
as command for language clients (#323) - Expose
terraform.init
as command for language clients (#325) - Add human readable name to
rootmodules
command API (#332) - Expose server version via LSP (#318)
BUG FIXES:
- Avoid crashing when no hover data is available for a position (#320)
INTERNAL:
- Replace
sourcegraph/go-lsp
with gopls'internal/lsp/protocol
(#311)
FEATURES:
ENHANCEMENTS:
- Add support for upcoming Terraform v0.14 (#289)
- completion: Prompt picking type of provider/data/resource automatically (#300)
- completion/hover: Preload official providers to improve UX for uninitialized modules (#302)
BUG FIXES:
- textDocument/completion: Fix wrong range computation near EOF (#298)
- Avoid ignoring schema for uninitialized module (#301)
- fix synchronization issues affecting any clients which support partial updates (#304)
- Avoid panic by initing universal schema early (#307)
INTERNAL:
- Bump jrpc2 (JSON-RPC library) to latest version (#309)
FEATURES:
- Support for
workspace/executeCommand
with newrootmodules
inspection command (#274) - Provide version-aware schema for completion of "core" blocks (#287)
locals
,module
,output
,variable
andterraform
- enrichment of
data
,provider
andresource
schemas by meta-arguments, such ascount
orfor_each
ENHANCEMENTS:
- Limited completion is available as soon as the server starts and is progressively enhanced as more (core or provider) schema is discovered (#281)
- Symbols are available as soon as the server starts (#281)
BUG FIXES:
- Prevent command collisions for clients such as VS Code with
commandPrefix
init option (#279)
INTERNAL:
- Internal decoder decoupled into
hashicorp/hcl-lang
(#281) - Schema handling decoupled into
hashicorp/terraform-schema
(#281)
FEATURES:
- HCL diagnostics support (#269)
BUG FIXES:
- fix: prevent crash when listing symbols in invalid config (#273)
INTERNAL:
- Replace most of
internal/terraform/exec
withhashicorp/terraform-exec
(#271)
FEATURES:
- Document Symbol support (#265)
BUG FIXES:
FEATURES:
- New command:
inspect-module
to help debugging root module discovery issues (#231)
ENHANCEMENTS:
- Support 0.13 provider identities (#255)
- settings: Support relative paths to root modules (#246)
- settings: Expand
~
in root module paths (#247) - settings: Add support for
excludeModulePaths
(#251) - handlers/initialize: Skip invalid root module paths (#248)
- Cap parallel root module loading (to reduce CPU usage) (#256)
INTERNAL:
- internal/filesystem: Integrate spf13/afero (#249)
- deps: Bump creachadair/jrpc2 to latest (0.10.0) (#253)
BUG FIXES:
- terraform/schema: Make schema storage version-aware (0.13 compatible) (#243)
INTERNAL:
- Improve root module discovery error handling (#244)
BUG FIXES:
- fix: Append EOF instead of newline (prevent CPU spike) (#239)
BUG FIXES:
- fix: Prevent parsing invalid tokens which would cause CPU spike (#236)
INTERNAL:
- rootmodule: log errors after loading is finished (#229)
BUG FIXES:
- Fixes bug which broke schema obtaining due to
-no-color
at unsupported position (#227)
ENHANCEMENTS:
- Introduce CPU & memory profiling (#223)
- Pass
-no-color
to terraform (#208) - settings: Make root modules configurable (#198)
BUG FIXES:
- terraform/rootmodule: Make walker async by default (#196)
- refactor: asynchronous loading of root module parts (#219)
- Enable formatting for older Terraform versions (<0.12) (#219)
- Gate formatting capability on v0.7.7+ (#220)
BUG FIXES:
- Make volume comparison case-insensitive on Windows (#199)
FEATURES:
- Walk hierarchy to add root modules (#176)
ENHANCEMENTS:
- terraform: Introduce experimental support for 0.13 version (#149)
- Treat schema availability as not essential (#171)
- Make formatting work regardless of initialization state (#178)
BUG FIXES:
- fix detection of single file during initialization (#172)
BUG FIXES:
- fix: os.Environ() returns KEY=val, not just keys (fix of a bug that was introduced in 0.3.1) (#143)
BUG FIXES:
- terraform/exec: Pass through all environment variables (#139)
FEATURES:
- textDocument/complete: Complete first level keywords (#104)
- Add ability to specify path to Terraform binary (#109)
- Make Terraform exec timeout configurable (#134)
ENHANCEMENTS:
- Improve UX of completion items (#115)
- Add support for autocomplete based on a prefix (#119)
- textDocument/complete: Use isIncomplete for >100 items (#132)
- textDocument/complete: Pass TextEdit instead of static text (#133)
INTERNAL:
- refactoring(parser): Pass around tokens instead of blocks (#125)
- langserver: Make requests sequential (#120)
- Support partial updates (#103)
- Support simplified building (#98)
BUG FIXES:
- context: Refactor and fix duplicate key (#86)
INTERNAL:
FEATURES:
BUG FIXES:
- Fix URI parsing for Windows paths (#73)
- terraform/exec: Make server work under non-admin users on Windows (#78)
INTERNAL:
Initial release
FEATURES:
- Basic text synchronization with client (
didOpen
,didClose
,didChange
) - Basic block body completion support for attributes and nested blocks
- Support for standard stdio transport
- Support for TCP transport (useful for debugging, or reducing the number of LS instances running)