mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-08 21:44:47 +08:00
This linter uses the check functionality built into terraform. ALE
already has a fixer using `terraform fmt` but this doesn't provide error
messages. ALE already has a linter using `tflint` but this requires an
extra application to be installed.
For example this linter will give a warning that ! is an illegal
character in the line below:
variable "example" !{}
This linter runs the buffer through the command below and parses the
output:
terraform fmt -no-color -check=true -
This commit includes a basic implementation, documentation and tests.
The only option is to control which executable is run.
Tested with:
$ terraform -version
Terraform v0.11.13
35 lines
869 B
Plaintext
Executable File
35 lines
869 B
Plaintext
Executable File
Before:
|
|
" Load the file which defines the linter.
|
|
runtime ale_linters/terraform/terraform.vim
|
|
|
|
After:
|
|
" Unload all linters again.
|
|
call ale#linter#Reset()
|
|
|
|
Execute(The output should be correct):
|
|
AssertEqual
|
|
\ [
|
|
\ {
|
|
\ 'lnum': 1,
|
|
\ 'col': 20,
|
|
\ 'type': 'E',
|
|
\ 'text': 'illegal char',
|
|
\ },
|
|
\ {
|
|
\ 'lnum': 2,
|
|
\ 'col': 14,
|
|
\ 'type': 'E',
|
|
\ 'text': 'literal not terminated',
|
|
\ },
|
|
\ {
|
|
\ 'lnum': 1,
|
|
\ 'type': 'E',
|
|
\ 'text': 'object expected closing RBRACE got: EOF',
|
|
\ },
|
|
\ ],
|
|
\ ale_linters#terraform#terraform#Handle(bufnr(''), [
|
|
\ 'Error running fmt: In <standard input>: At 1:20: illegal char',
|
|
\ 'Error running fmt: In <standard input>: At 2:14: literal not terminated',
|
|
\ 'Error running fmt: In <standard input>: object expected closing RBRACE got: EOF',
|
|
\ ])
|