Home

Awesome

Terraform LSP

Gitter terraform version Release FOSSA Status

This is LSP (Language Server Protocol) for Terraform

IMPORTANT: Currently there are two Terraform LSP repositories one of which is this repository and one of which is terraform-ls. Terraform-LS also contains details about this repository as well.

Current Focus: Terraform State Reading

The aim to have a unified lsp for terraform in the future, but for now there is two concurrent development with collabration to each other, this repo is aim for more experimental features, and the terraform-ls is aim for stableness

NOTE: This is first stage of the plugin, so is experimental

asciicast

Release

Release can be found here

Building

Requirement

it will need Go 1.14+

Native

  1. Download a release or clone the repository
  2. Run these commands from the terraform-lsp directory
GO111MODULE=on go mod download # Download the modules for the project
make      # Build the project. Alternatively run "go build"
make copy # Install the project

you may also specify a path to your preferred bin directory with the DST parameter

make copy DST="$your_preferred_bin_path" # Install the project

Nixpkgs

Features

Todo

All Todos are listed here

LSP Support Table

FeatureDescriptionStatus
completionAutocompletionSupported for Resources/Data Sources/Variables/Locals, need support for nested interpolation
publishDiagnosticsError checkingSupported, need to check for all possible errors
hoverHover on function/variables to get resultNeed to Implement
signatureHelpGet docs for resources/data sources name and paramsNeed to Implement
declarationGo to DeclarationNeed to Implement
referencesFind all referencesNeed to Implement
implementationFind all implementationNeed to Implement (not sure if is applicable)
documentHighlightResources/data sources/variables highlightNeed to Implement
documentSymbolResources/data sources/variables symbolsNeed to Implement
codeActionRefactoring actionsNeed to Implement
codeLensVSCode's code lensNeed to Implement
formattingFormattingNeed to Implement
renameRename actionNeed to Implement
workspaceWorkspace supportNeed to Implement

Supported Editors

EditorStatusDocs
Visual Studio CodeSupportedLink
AtomSupportedLink
VimSupportedLink
Sublime Text 3SupportedLink
IntelliJSupportedLink
EmacsSupportedLink

NOTE: Please create a issue for a editor that you want to test for

Bugs

Credits

License

FOSSA Status