All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 " Author: Keith Maxwell <keith.maxwell@gmail.com>
2 " Description: terraform fmt to check for errors
4 call ale#Set('terraform_terraform_executable', 'terraform')
6 function! ale_linters#terraform#terraform#GetExecutable(buffer) abort
7 return ale#Var(a:buffer, 'terraform_terraform_executable')
10 function! ale_linters#terraform#terraform#GetCommand(buffer) abort
11 return ale#Escape(ale_linters#terraform#terraform#GetExecutable(a:buffer))
12 \ . ' validate -no-color -json '
15 function! ale_linters#terraform#terraform#GetType(severity) abort
16 if a:severity is? 'warning'
23 function! ale_linters#terraform#terraform#GetDetail(error) abort
24 let l:detail = get(a:error, 'detail', '')
26 if strlen(l:detail) > 0
29 return get(a:error, 'summary', '')
33 function! ale_linters#terraform#terraform#Handle(buffer, lines) abort
36 let l:errors = ale#util#FuzzyJSONDecode(a:lines, {'diagnostics': []})
37 let l:dir = expand('#' . a:buffer . ':p:h')
38 let l:file = expand('#' . a:buffer . ':p')
40 for l:error in l:errors['diagnostics']
41 if has_key(l:error, 'range')
43 \ 'filename': ale#path#GetAbsPath(l:dir, l:error['range']['filename']),
44 \ 'lnum': l:error['range']['start']['line'],
45 \ 'col': l:error['range']['start']['column'],
46 \ 'text': ale_linters#terraform#terraform#GetDetail(l:error),
47 \ 'type': ale_linters#terraform#terraform#GetType(l:error['severity']),
54 \ 'text': ale_linters#terraform#terraform#GetDetail(l:error),
55 \ 'type': ale_linters#terraform#terraform#GetType(l:error['severity']),
63 call ale#linter#Define('terraform', {
64 \ 'name': 'terraform',
65 \ 'output_stream': 'stdout',
66 \ 'executable': function('ale_linters#terraform#terraform#GetExecutable'),
67 \ 'command': function('ale_linters#terraform#terraform#GetCommand'),
68 \ 'callback': 'ale_linters#terraform#terraform#Handle',