Skip to content

Latest commit

 

History

History
277 lines (179 loc) · 8.34 KB

CHANGELOG.md

File metadata and controls

277 lines (179 loc) · 8.34 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • Declare hyphens as sub-word separators.
  • Special highlighting for for_each and count meta arguments.
  • Highlighting of more special language variables: each, count and self.

Changed

  • Switch to Syntax version 2. This breaks compatibility with ST builds before 4000!
  • Adapt and improve many scope names to standards that have been established over the past years for the default packages, including:
    • String interpolation meta scopes and punctuation
    • Keywords (declarations and in inside a for expression)
    • Attribute access punctuation
    • Punctuation scopes in for expressions
  • Updated the built-in function list for highlighting.

Removed

  • Various files targetting older ST versions, notably the old .tmLanguage syntax definition.

Fixed

  • Improved matching of identifiers by adding a scope and properly recognizing hyphens.
  • Support identifiers starting with an underscore character (#43).

v1.0.0 - 2020-01-20

A huge thanks to @patrickrgaffney for this amazing contribution. #39

Added

  • Syntax tests have been added.
  • null constant.
  • Exponents in numeric literals.
  • Character escapes for newline, carriage return, backslash, quote, and unicode points inside string literals.
  • Trim-left and trim-right operators inside string templates.
  • Directives inside string templates.
  • Match all valid expressions inside string templates.
  • Comparison operators ==, !=, <, >, <=, >=.
  • Arithmetic operators +, -, *, /, %.
  • Logic operators &&, ||, !.
  • Conditional operator p ? e1 : e2
  • Parenthesis matching.
  • Tuple list syntax.
  • Square-bracket index notation.
  • Full-splat operator.
  • Comma matching inside function calls, tuples, maps, and for-expressions.
  • Attribute-access is matched on named members and the . dot operator.
  • Attribute-only splat operator.
  • Allow - after first alpha character in identifiers.
  • Computed attribute named using parenthesis.
  • Allow function-calls outside of string interpolation.
  • Match all valid expressions inside function-call parameter lists.
  • Match functions unknown to Terraform (for other HCL uses).
  • Match for-expressions inside tuples and maps.
  • Map collection syntax.
  • Match unknown block names.
  • Support for variable number of block labels.
  • Nested blocks.
  • Inline blocks.
  • Terraform named values.
  • Update list of built-in Terraform functions.
  • Built-in block types locals and terraform.
  • Meta-scope meta.block.terraform added to all block bodies.
  • Primitive type constants.
  • Heredocs with the leading-spaces operator <<-.
  • String interpolation inside heredocs.
  • Import statements.
  • JSON highlighting for *.tfstate files.

Changed

  • Rename scope comment.line.number-sign.terraform to comment.line.terraform to better reflect scope naming standards.
  • Rename scope constant.numeric.terraform to constant.numeric.[integer|float].terraform to better reflect scope naming standards.
  • Rename scope entity.tag.embedded.[begin|end] to punctuation.section.interpolation.[begin|end] to better reflect scope naming standards.
  • Rename scope variable.other.assignment.terraform to variable.other.readwrite.terraform to better reflect scope naming standards.
    • A meta_scope of variable.declaration.terraform covers the entire attribute definition now.
  • Rename scope for = in assignments from keyword.operator to keyword.operator.assignment to better reflect scope naming standards.
  • Rename scope keyword.other.function.inline to support.function.builtin to better reflect scope naming standards.
  • Rename scope for known block types from storage.type.function.terraform to storage.type.terraform to better reflect scope naming standards.
  • Rename scope for block labels from string.value.terraform to string.quoted.double.terraform to better reflect scope naming standards.
  • Rename meta-scope for block definitions from meta.block.terraform to meta.type.terraform to better reflect scope naming standards.

Removed

Fixed

  • Remove the string.* scope inside string templates.

v0.19.0 - 2019-08-20

Added

  • Symbol indexing for top-level blocks. (@patrickrgaffney - #38)

v0.18.0 - 2019-07-01

Added

  • Update list of built-in functions. (@Tenzer - #37)

Fixed

  • Allow hyphens in names of attributes inside string interpolation. (@Tenzer - #37)

v0.17.0 - 2019-01-25

Added

Fixed

  • Better support for parenthesis inside string interpolation. (@NightsPaladin - #33)

v0.16.0 - 2018-08-08

Added

  • Snippet for data blocks. (@mschurenko - #32)

v0.15.0 - 2018-02-22

Added

  • Terraform constant local. (@digitalfiz - #30)

v0.14.0 - 2017-08-31

Added

  • Update list of built-in functions. (@gburiola - #27)

Removed

  • Built-in function from.

v0.13.1 - 2017-08-10

Fixed

  • Allow nested function calls.

v0.13.0 - 2017-06-07

Changed

  • Set default tab size to 2. (@kushmansingh - #25)
  • Set default indentation to spaces. (@kushmansingh - #25)

v0.12.2 - 2017-05-08

Fixed

  • Allow whitespace before << when closing heredocs. (@GreatFruitOmsk - #24)

v0.12.1 - 2017-03-31

Fixed

  • Escape hyphens in block labels

v0.12.0 - 2017-03-30

Added

  • Code folding markers.
  • Built-in Terraform functions.

Fixed

  • Function calls and attribute access inside string templates.

v0.11.0 - 2017-03-08

Added

  • Heredocs.

v0.10.0 - 2017-02-14

Added

  • .hcl file extensions (@akarnani - #19)

v0.9.0 - 2017-02-12

Fixed

  • Handle nested string interpolation.

v0.8.0 - 2017-02-08

Added

  • String interpolation.
  • Unquoted block labels.

Fixed

  • De-emphasize variable assignment.

v0.7.0 - 2017-01-10

Added

  • C-style single line comments //. (@kerma - #16)

v0.6.0 - 2016-09-08

Added

  • Support for data blocks. (@Jonnymcc - #14)

v0.5.0 - 2016-07-05

Added

  • Snippet for provisioner blocks. (@ApsOps - #13)

v0.4.0 - 2016-06-08

Added

  • Match opening/closing brackets. (@alexlouden - #12)

v0.3.0 - 2016-06-08

Added

  • Snippets for module blocks. (@maplebed - #10)

v0.2.0 - 2016-03-01

Added

  • Blocks comments /* ... */. (@bigkraig - #8)

v0.1.0 - 2015-08-04

Initial release.