Skip to content

Latest commit

 

History

History
88 lines (49 loc) · 2.94 KB

validation.md

File metadata and controls

88 lines (49 loc) · 2.94 KB

Validation

The language server produces various types of diagnostics as you type.

HCL syntax

Starting in v0.8.0 we report diagnostics for invalid HCL syntax, for example missing }, " or other "control characters" out of place.

invalid HCL syntax

HCL syntax alone does not account for the Terraform language with all its (in)valid keywords, block or attribute names etc. nor differences between Terraform versions, that is handled elsewhere.

Enhanced Validation

Starting in v0.32.0 we report additional diagnostics for selected invalid Terraform language constructs based on detected Terraform version and provider versions (if available).

This validation is enabled by default but can be controlled via validation.enableEnhancedValidation.

All validation rules currently implemented are considered universally applicable and not opinionated. If you believe a diagnostic is incorrect, this may be caused by mis-identified version of Terraform or provider version. You can temporarily disable validation in such a case and let us know by filing a new issue.

See supported rules below.

Module Files (*.tf)

Incorrect Number of Block Labels

wrong label count

Deprecated Attribute

deprecated attribute

Deprecated Block

deprecated block

Exceeded Maximum Number of Blocks

For blocks which have a maximum we check if the number was not exceeded.

exceeded maximum blocks

Mising Required Blocks

For blocks which have an expected minimum we check if the number of blocks was met.

missing required blocks

Missing Required Attribute

missing attribute

Unexpected Attribute

unexpected attribute

Unexpected Block

unexpected block

Reference to Undeclared Block or Attribute

This validation has a limited scope to variables (var.* / variable blocks) and local values (local.* / locals) for now.

invalid reference

Variable Files (*.tfvars)

Unknown variable name

Each entry in the file is checked against its corresponding variable declaration and entries without declaration are considered invalid.

unknown variable name

Unexpected blocks

Blocks are not considered as valid in variable files.

unexpected blocks