Giter Club home page Giter Club logo

vscode-terraform's Introduction


logo
vscode-terraform

Adds syntax highlighting and other editing features for Terraform files

Release

Features at a glance

  • Auto-completion support
    1. Terraform high level types (variable, resource, data, module ...) auto completion support.
    2. resource types (aws_dynamodb_table ...) auto completion support for aws, azure, datadog, google, oci and openstack
    3. resource | data | module | output | variable property types auto completion support
    4. resource | data 1-level nested block property types auto completion support
  • Syntax highlighting for .tf and .tfvars files (and .hcl)
  • Automatic formatting using terraform fmt
  • Automatically closes braces and quotes
  • Adds a command for running terraform validate
  • Linting support with the help of tflint
  • Browse document symbols
  • Browse workspace symbols
  • Peek definition
  • Goto definition
  • Find references
  • Completion for variables and outputs
  • Rename variables, resource, and data types and all references
  • Show variable values on hover
  • CodeLens shows if a section is referenced

News in 1.0.0

  • 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)

Syntax Highlighting

Syntax Highlighting

Auto-completion support

Auto completion

Formatting support

The plugin also ships a formatter integration which uses terraform fmt for formatting files. Formatting can be enabled or disabled by setting editor.formatOnSave or [terraform]editor.formatOnSave to true or false.

Linting

Linting support

You can lint your terraform templates by invoking the command Terraform: Lint from within VSCode.

Linting is supported with the help of tflint, either download it and add it to your path or can configure terraform.lintPath to point to your tflint executable. tflint will be executed with the workspace directory as the current working directory so you can configure tflint by dropping a .tflint.hcl file in your workspace root. You can change the configuration file path by supplying the configuration option terraform.lintConfig.

Validation

You can terraform validate your project by invoking the command Terraform: Validate from within VSCode.

terraform validate is invoked with the workspace root as current working directory and with the setting terraform.templateDirectory as template directory, by default this setting is "templates" (relative to workspace root).

Because the output of terraform validate is not parseable the output is just dumped into the output tab.

Indexing support

The plugin indexes all the terraform files in the workspace by default and enables some advanced features, like Goto Definition and Show references based on information gathered during indexing.

Indexing is enabled by default but can be disabled using terraform.indexing.enable.

Browse Document Symbols

Press Ctrl+Shift+O or ⇧⌘O to browse symbols in the current file.

Browse Document Symbols

Browse Workspace Symbols

Press Ctrl+T or ⌘T to quickly jump to any symbol.

Browse Workspace Symbols

Peek and Go To definition

Press Alt+F12 or ⌥F12 to peek definition (currently only some types supported).

Peek definition

Find All References

Press Shift+F12 or ⇧F12 to find all references (currently only variables).

Find all references

Code completion

Press Ctrl+Space (also triggered automatically after . and ") for simple code completion (currently only variables and outputs).

Complete variables and outputs

Complete variables

Rename variables, resources and its references

Press F2 to automatically rename a variable and its usages.

Rename variable (before) Rename variable (after)

Show variable default on hover

Hover over variable

CodeLens support

CodeLens shows number of references

Document Link support

Click on resource type to go to documentation

Outline View support

An outline of the currently open document is automatically showed

Module Overview

A custom view is contributed which shows an overview of all modules

vscode-terraform's People

Contributors

bryanhelmig avatar christek91 avatar chroju avatar conradolega avatar haad avatar hernandesbsousa avatar jackric avatar josh-padnick avatar lawrencegripper avatar lostintangent avatar madssj avatar maglenno avatar mattfenner avatar mauve avatar michaelmoussa avatar pecigonzalo avatar ranga543 avatar ratza avatar squidfunk avatar steve-louis avatar stuartleeks avatar tbondarchuk avatar teraken0509 avatar xeres avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.