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: Alexander Olofsson <alexander.olofsson@liu.se>
3 call ale#Set('dockerfile_dockerfile_lint_executable', 'dockerfile_lint')
4 call ale#Set('dockerfile_dockerfile_lint_options', '')
6 function! ale_linters#dockerfile#dockerfile_lint#GetType(type) abort
9 elseif a:type is? 'warn'
16 function! ale_linters#dockerfile#dockerfile_lint#Handle(buffer, lines) abort
18 let l:data = json_decode(join(a:lines, ''))
24 " Should never happen, but it's better to be on the safe side
30 for l:type in ['error', 'warn', 'info']
31 for l:object in l:data[l:type]['data']
32 let l:line = get(l:object, 'line', -1)
33 let l:message = l:object['message']
35 let l:link = get(l:object, 'reference_url', '')
37 if type(l:link) == v:t_list
38 " Somehow, reference_url is returned as two-part list.
39 " Anchor markers in that list are sometimes duplicated.
40 " See https://github.com/projectatomic/dockerfile_lint/issues/134
41 let l:link = join(l:link, '')
42 let l:link = substitute(l:link, '##', '#', '')
45 let l:detail = l:message
47 if get(l:object, 'description', 'None') isnot# 'None'
48 let l:detail .= "\n\n" . l:object['description']
51 let l:detail .= "\n\n" . l:link
53 call add(l:messages, {
56 \ 'type': ale_linters#dockerfile#dockerfile_lint#GetType(l:type),
65 function! ale_linters#dockerfile#dockerfile_lint#GetCommand(buffer) abort
66 return '%e' . ale#Pad(ale#Var(a:buffer, 'dockerfile_dockerfile_lint_options'))
71 call ale#linter#Define('dockerfile', {
72 \ 'name': 'dockerfile_lint',
73 \ 'executable': {b -> ale#Var(b, 'dockerfile_dockerfile_lint_executable')},
74 \ 'command': function('ale_linters#dockerfile#dockerfile_lint#GetCommand'),
75 \ 'callback': 'ale_linters#dockerfile#dockerfile_lint#Handle',