terraformls
URL: https://github.com/hashicorp/terraform-ls
plugins.lsp.servers.terraformls.enable
Whether to enable https://github.com/hashicorp/terraform-ls
Terraform language server Download a released binary from https://github.com/hashicorp/terraform-ls/releases.
From https://github.com/hashicorp/terraform-ls#terraform-ls-vs-terraform-lsp:
Both HashiCorp and the maintainer of terraform-lsp expressed interest in collaborating on a language server and are working towards a long-term goal of a single stable and feature-complete implementation.
For the time being both projects continue to exist, giving users the choice:
-
terraform-ls
providing- overall stability (by relying only on public APIs)
- compatibility with any provider and any Terraform >=0.12.0 currently less features
- due to project being younger and relying on public APIs which may not offer the same functionality yet
-
terraform-lsp
providing-
currently more features
-
compatibility with a single particular Terraform (0.12.20 at time of writing)
- configs designed for other 0.12 versions may work, but interpretation may be inaccurate
-
less stability (due to reliance on Terraform’s own internal packages)
-
Note, that the settings
configuration option uses the
workspace/didChangeConfiguration
event, which is not supported by
terraform-ls.
Instead you should use init_options
which passes the settings as part
of the LSP initialize call as is required by
terraform-ls.
.
Type: boolean
Default:
false
Example:
true
Declared by:
plugins.lsp.servers.terraformls.package
The terraformls package to use.
Type: null or package
Default:
pkgs.terraform-ls
Declared by:
plugins.lsp.servers.terraformls.autostart
Controls if the FileType
autocommand that launches a language server is created.
If false
, allows for deferring language servers until manually launched with
:LspStart
(|lspconfig-commands|).
Type: null or boolean or raw lua code
Default:
null
Plugin default: true
Declared by:
plugins.lsp.servers.terraformls.cmd
A list where each entry corresponds to the blankspace delimited part of the command that launches the server.
The first entry is the binary used to run the language server. Additional entries are passed as arguments.
Type: null or (list of string)
Default:
null when package
is null, otherwise null
Declared by:
plugins.lsp.servers.terraformls.extraOptions
Extra options for the terraformls language server.
Type: attribute set of anything
Default:
{ }
Declared by:
plugins.lsp.servers.terraformls.filetypes
Set of filetypes for which to attempt to resolve {root_dir}. May be empty, or server may specify a default value.
Type: null or (list of string)
Default:
null
Declared by:
plugins.lsp.servers.terraformls.rootMarkers
A list of files that mark the root of the project/workspace.
Vim’s LSP will try to share the same language server instance for all
buffers matching filetypes
within the same project.
A new server instance is only spawned when opening a buffer with a different project root.
See :h lsp-config
and :h vim.fs.root()
.
Type: null or (list of (string or raw lua code)) or raw lua code
Default:
null
Plugin default: null
Declared by:
plugins.lsp.servers.terraformls.settings
The settings for this LSP.
Type: attribute set of anything
Default:
{ }
Example:
{
callback = {
__raw = ''
function()
print('nixvim')
end
'';
};
foo_bar = 42;
hostname = "localhost:8080";
}
Declared by: