diff --git a/README.md b/README.md index df60449..ea3d37d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Nix Build](https://img.shields.io/travis/com/juliosueiras/terraform-lsp.svg?logo=travis&label=Nix%20Build)](https://travis-ci.com/juliosueiras/terraform-lsp) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjuliosueiras%2Fterraform-lsp.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjuliosueiras%2Fterraform-lsp?ref=badge_shield) -This is LSP(Language Server Protocol) for Terraform +This is LSP (Language Server Protocol) for Terraform **NOTE:** This is first stage of the plugin, so is experimental @@ -30,8 +30,15 @@ Release can be found [here](https://github.com/juliosueiras/terraform-lsp/releas ### Native -- download go modules `GO111MODULE=on go mod download` -- run make or `go build` +1. Download a [release](https://github.com/juliosueiras/terraform-lsp/releases) + or clone the repository +2. Run these commands from the `terraform-lsp` directory + +```sh +GO111MODULE=on go mod download # Download the modules for the project +make # Build the project. Alternatively run "go build" +make copy # Install the project +``` ### Nixpkgs @@ -40,13 +47,13 @@ Release can be found [here](https://github.com/juliosueiras/terraform-lsp/releas ## Features -- Variables complex completion(infinite nesting type) -- Provider Config completion -- Resource(with infinite block, looking at you kubernetes provider ;) ) completion +- Variables complex completion (infinite nesting type) +- Provider config completion +- Resource (with infinite block, looking at you Kubernetes provider ;) ) completion - Data source completion -- Dynamic Error Checking(Terraform and HCL checks) -- Communication using provider binary(so it will support any provider as long as is built with terraform 0.12 sdk) -- Module nesting(inifinte as well) variable completion +- Dynamic Error Checking (Terraform and HCL checks) +- Communication using provider binary (so it will support any provider as long as is built with terraform 0.12 SDK) +- Module nesting (infinite as well) variable completion ## Todo @@ -54,33 +61,33 @@ All Todos are listed [here](Todo.md) ## LSP Support Table -| Feature | Description | Status | -|---------|-------------|--------| -| completion | Autocompletion | Supported for Resources/Data Sources/Variables/Locals, need support for nested interpolation | -| publishDiagnostics | Error checking | Supported, need to check for all possible errors | -| hover | Hover on function/variables to get result | Need to Implement | -| signatureHelp | get docs for resources/data sources name and params | Need to Implement | -| declaration | Go to Declaration | Need to Implement | -| references | Find all references | Need to Implement | -| implementation | Find all implementation | Need to Implement(not sure if is applicable) | -| documentHighlight | resources/data sources/variables highlight | Need to Implement | -| documentSymbol | resources/data sources/variables symbols | Need to Implement | -| codeAction | Refactoring actions | Need to Implement | -| codeLens | VSCode's code lens | Need to Implement | -| formatting | Formatting | Need to Implement | -| rename | Rename action | Need to Implement | -| workspace | Workspace support | Need to Implement | +| Feature | Description | Status | +|--------------------|-----------------------------------------------------|----------------------------------------------------------------------------------------------| +| completion | Autocompletion | Supported for Resources/Data Sources/Variables/Locals, need support for nested interpolation | +| publishDiagnostics | Error checking | Supported, need to check for all possible errors | +| hover | Hover on function/variables to get result | Need to Implement | +| signatureHelp | Get docs for resources/data sources name and params | Need to Implement | +| declaration | Go to Declaration | Need to Implement | +| references | Find all references | Need to Implement | +| implementation | Find all implementation | Need to Implement (not sure if is applicable) | +| documentHighlight | Resources/data sources/variables highlight | Need to Implement | +| documentSymbol | Resources/data sources/variables symbols | Need to Implement | +| codeAction | Refactoring actions | Need to Implement | +| codeLens | VSCode's code lens | Need to Implement | +| formatting | Formatting | Need to Implement | +| rename | Rename action | Need to Implement | +| workspace | Workspace support | Need to Implement | ## Supported Editors -| Editor | Status | Docs | -|---------|-------------|--------| -| Visual Studio Code | Supported | [Link](docs/editors/vscode.md) | -| Atom | Supported | [Link](docs/editors/atom.md) | -| Vim | Supported | [Link](docs/editors/vim.md) | -| Sublime Text 3 | Supported | [Link](docs/editors/sublime3.md) | -| Intellij | Supported | [Link](docs/editors/intellij.md) | -| Emacs | Supported | [Link](docs/editors/emacs.md) | +| Editor | Status | Docs | +|--------------------|-----------|----------------------------------| +| Visual Studio Code | Supported | [Link](docs/editors/vscode.md) | +| Atom | Supported | [Link](docs/editors/atom.md) | +| Vim | Supported | [Link](docs/editors/vim.md) | +| Sublime Text 3 | Supported | [Link](docs/editors/sublime3.md) | +| IntelliJ | Supported | [Link](docs/editors/intellij.md) | +| Emacs | Supported | [Link](docs/editors/emacs.md) | **NOTE:** Please create a issue for a editor that you want to test for diff --git a/docs/editors/atom.md b/docs/editors/atom.md index bff3d21..8ea226c 100644 --- a/docs/editors/atom.md +++ b/docs/editors/atom.md @@ -1,6 +1,7 @@ # Atom -- There is a seperate [atom-terraform](https://github.com/juliosueiras/atom-terraform) +- There is a separate [atom-terraform](https://github.com/juliosueiras/atom-terraform) + plugin that works in conjunction with `terraform-lsp` ## Issues diff --git a/docs/editors/emacs.md b/docs/editors/emacs.md index a8d06d0..05d240d 100644 --- a/docs/editors/emacs.md +++ b/docs/editors/emacs.md @@ -1,6 +1,6 @@ -### Emacs Supportt +### Emacs Support -There is two option +There are two options 1. Use the latest version of [emacs-lsp/lsp-mode](https://github.com/emacs-lsp/lsp-mode), it had added support for terraform-lsp diff --git a/docs/editors/vim.md b/docs/editors/vim.md index eeb38b0..3fff1d9 100644 --- a/docs/editors/vim.md +++ b/docs/editors/vim.md @@ -2,4 +2,4 @@ Todo: add config snippets -- Should work with all lsp plugin on vim +- Should work with all LSP plugin on vim