- Track references in ternary expressions (Fixes #123)
- Track references in heredocs (Fixes #159)
- Track references to modules (Fixes #165)
Terraform: Show Plan
commandTerraform: Preview Graph
works again
- Added autocompletion support for the OCI provider Thanks to @ASatanicPickle
- Exclude configured directories from indexing during initial crawl (Fixes #153, #156) Thanks to @christek91
- Upgrade ApplicationInsights SDK (Fixes #133)
- Do not show a warning if a
terraform {}
statement is missing arequired_version
attribute (Closes #132)
- Allow brackets in auto-closing in double quote string Thanks to @aliusmiles
- Fix broken multi-line strings (Closes #109) Thanks to @squidfunk
- (Partially fix #118) High-CPU usage on auto-complete Thanks to @michaelmoussa
- Pull-requests no longer require the AppInsights key which means they can actually succeed
- We now correctly parse and compare Terraform versions so that we can evaluate
required_versions
statements (not surfaced in the UI yet)
- Fix one error during autocompletion which was reported by telemetry
19be431
Do not parse user input as RegExp
- No longer raise Output window on warning or error as it is to intrusive (Closes #115)
- Fix one error in the completion provider which would cause it to fail if a single argument was unknown
- Fixed two errors which were automatically reported through telemetry:
f2afae1
parseHcl might return error without Position24884c2
groupFor fails when called with Uri from vscode as opposed to Uri from vscode-uri
- Fixed two errors which were automatically reported through telemetry
- Correctly fold HEREDOCs (closes #48)
- Resources are not correctly groups so that goto definition works as expected (closes #107)
- Looks for all
terraform
binaries inPATH
and picks the newest - Show a warning if
erd0s.terraform-autocomplete
is installed as it breaks document links (refer #102) - Resources are now grouped by folder internally which fixes several reported issues #103
- Support outline view
- Simple custom view which shows an overview of all modules
- This is the very first and very simplest version so you cannot really interact with the view.
- Format On Auto-Save is now gone (closes #112 and others, see below for an in-depth explanation)
- Catches exceptions in all commands and providers and reports them automatically (if enabled, closes #106)
In one of the very first versions of the Terraform plugin, that is before VSCode had format-on-save or the auto-save features, the Terraform plugin had its own implementation of format-on-save which just listened to save events from the editor and then overwrite the files.
Later auto-save was introduced and because the Terraform plugin was listening to save events and manually performing format on save, that meant that without doing anything we suddenly had format-on-auto-save.
A while back VSCode introduced a proper API for performing formatting and formatting on save; these APIs have been in use by the extension since 0.0.20; when these API were introduced they deliberatively omitted format on auto save, because it breaks development workflows in more complicated languages.
Now the Terraform plugin has started to become relatively complicated in itself with auto completion support and refactoring support as well as more and more coding features added all the time. As the usage of the extension has been growing and we have started to see more and more bugs because we perform format-on-auto-save.
So now I had to remove the feature.
Sorry to all of you who liked the feature. I hope you will keep using my extension regardless of the lack of this feature.
With the removal of this feature the following configuration changes have been made.
- the Terraform extension no longer supply a default config for
[terraform]editor.formatOnSave: false
, instead the default setting ofeditor.formatOnSave
applies unless you have overridden it yourself. - the setting
terraform.format.enable
is now gone as it doesn't make sense anymore - the setting
terraform.formatOnSave
is now gone as it has no effect- use
editor.formatOnSave
or[terraform]editor.formatOnSave
instead
- use
Thanks for using my extension.
- Unbreak Show Workspace Symbols
- Forgot to bundle metrics key
- Collect references in math expressions (Closes #95)
- Do not eat property accesses during rename refactoring (Closes #104)
- Split tests into unit tests and integration tests
- Added even more build instructions
- Browsing workspace symbols works again
- Remove duplicates when suggesting completions (Closes #98)
- Show more information when browsing symbols (Closes #92)
- Add matching syntax for closing brackets Thanks to @pecigonzalo
- Do no show code-lenses for provider sections (references were incorrect anyway)
- Fix typos in README.md Thanks to @conradolega
- Improved build instructions to make contributions easier
- Upgraded to gulp 4.0.0
- Use gulp for all build steps and workflows
- Literally nothing
- Correctly track user session
- Very simple telemetry is now being reported if enabled (currently only an event is recorded when the plugin activates)
- Indexing is now done per workspace folder rather than globally (closes #83)
- HIL parse errors are now correctly handled and surfaced in the Problems view
Currently only a simple activated
event is being recorded. All events include the version of VSCode and
some other automatically provided properties by VSCode (refer: Common Properties).
The plugin respects the global telemetry opt-out (telemetry.enableTelemetry
) setting but you can also
disable telemetry collection for just this plugin by setting terraform.telemetry.enabled
to false
.
You can read more about telemetry reporting in VSCode in the FAQ.
- Correctly set current working directory when calling
tflint
(Closes #82)
- Correctly index and support
locals {}
in hover, references and so on...
- Ensure
tflint
execution errors show up in the Output tab
- Autocomplete now autocomplete builtin interpolation functions
- Autocomplete in interpolation should be more robust
.tfvars
Files are now correctly indexed so that Go To definition, Rename more now work as expected (Closes #80)- Autocomplete of top-level sections (e.g.
resource
,variable
for example) now uses snippets to speed up authoring
- Invoking the command
terraform.preview-graph
(Terraform: Preview Graph) will generate and show a clickable resource dependency graph
- Correctly syntax highlight the
locals {}
keyword
- The Hover now shows values of more references (previously only variable
default
were shown)
- Correctly parse references to list and map variables as well as references in nested expressions (Closes #75)
- Correctly add
minimatch
to dependencies (Closes #74)
- Support region for code-folding (
#region
,#endregion
) (closes #63) - Add document links to the official terraform documentation (closes #68)
- CodeLens contribution can be disabled via configuration (closes #73)
- Make it possible to exclude paths from indexing (by default excludes
.terraform
, closes #72)
- Fix racecondition during startup of larger projects
- Indexing support is no longer experimental
- Indexing support no longer requires a separate tool (HCL parsing is now built directly into the plugin)
- Rename refactoring now supports all types
- Hovering a variable shows the default value
- A code lens shows how often a resource (or variable, or data) is referenced
- Terraform now works with Visual Studio LiveShare (thanks to @lostintangent)
- Typo in README.md which broke the auto-complete preview @chroju
- Do not require
terraform.index.enabled
to be true in order for auto-completion to work - Fix a small typo which makes
Format Document
command fail - Correctly bundle auto-completion data files
- Auto completion support @ranga543
- Format on save is back (closes #45, #47)
- Tools can now be installed in directories which have spaces @xeres
The last version introduced usage of the correct extension APIs for registering formatting
providers. VSCode then automatically invokes the formatting provider on save if editor.formatOnSave
has been specified. VSCode however does never invoke the formatting
provider if the save operation came from an auto-save event.
0.0.21 reintroduces the manual code which handled format on autosave instead of relying on VSCode to perform those operations. The following configuration options have changes as result of that:
terraform.format.enable
: needs to betrue
terraform.format.formatOnSave
: needs to betrue
terraform.format.ignoreExtensionsOnSave
: can be used to exclude.tfvars
for example from autosave formatting
The global setting: editor.formatOnSave
should be false
for Terraform files and the
extension contributes that default configuration. Please verify that you do not have
conflicting configuration, by removing the following setting if you have it:
"[terraform]": {
"editor.formatOnSave": true
}
The configuration editor.formatOnSave
will have the correct setting contributed by Terraform.
- The formatter now uses the correct Formatting API so that the builtin command for formatting works as expected (closes #42)
- The formatter no longer has a hardcoded list of approved extensions, instead if the document type is 'terraform' then the formatter can be used to that file (closes #41)
- The introduced formatter changes means that the plugin specific configuration for formatting (e.g.
terraform.formatOnSave
) have been deprecated and are no longer used.
- Mark
.tfstate
files as JSON (closes #38) - Remove unnecessary files from package
- Show output channel on validation failure @jackric
- Add support for local variable type @mspaulding06
- Several great syntax highlighting fixes by @haad
- We no longer create several output channels (closes #25)
- Tiny bugfix for "Browse symbols" where a results would not get shown
- More tiny bugfixes for index
- Experimental new Indexing support using terraform-index
- Browse document symbols
- Browse workspace symbols
- Peek definition
- Goto definition
- Find references
- Completion for variables and outputs
- Rename variables (and all usages)
- Much better marketplace description
- Minor fixes
- Add linting support using tflint (Closes #12)
- Only run
terraform fmt
on terraform files so that the plugin can be used forHCL
files in general (Closes #18) - Syntax highlight string interpolations in heredocs
- Add a command to run
terraform validate
- Also handle
.hcl
files (Closes #17) - Update screenshot in README.md
- Also highlight interpolations and function calls inside strings
- Add auto closing and surrounding pairs
terraform.formatOnSave
is now disabled by default due to some minor issues I want to improve before enabling it again- Added new configuration option
terraform.formatVarsOnSave
which controls whether to format.tfvars
files on save, by default this setting mirrorsterraform.formatOnSave
All changes for this release have been contributed by @madssj.
- Added basic
terraform fmt
runner- Adds the ability to invoke
terraform fmt
on save or on the current file - Adds two configuration options
terraform.formatOnSave
andterraform.path
- Adds the ability to invoke
- Added block comments in the language specification
- Update the line comment to # instead //
- This PR fixes the automated block commenting and uncommenting
Ctrl+/
which previously used the wrong kind of comments.
- This PR fixes the automated block commenting and uncommenting
- Fixed screenshot in README.md
- Initial version