mirror of
1
0
Fork 0
ultimate-vim/sources_non_forked/ale/ale_linters/yaml/circleci.vim

36 lines
1014 B
VimL

function! ale_linters#yaml#circleci#Handle(buffer, lines) abort
let l:match_index = -1
let l:output = []
for l:index in range(len(a:lines))
let l:line = a:lines[l:index]
if l:line =~? 'Error: ERROR IN CONFIG FILE:'
let l:match_index = l:index + 1
break
endif
endfor
if l:match_index > 0
return [{
\ 'type': 'E',
\ 'lnum': 1,
\ 'text': a:lines[l:match_index],
\ 'detail': join(a:lines[l:match_index :], "\n"),
\}]
endif
return []
endfunction
" The circleci validate requires network requests, so we'll only run it when
" files are saved to prevent the server from being hammered.
call ale#linter#Define('yaml', {
\ 'name': 'circleci',
\ 'executable': {b -> expand('#' . b . ':p') =~? '\.circleci' ? 'circleci' : ''},
\ 'command': 'circleci config validate - < %s',
\ 'callback': 'ale_linters#yaml#circleci#Handle',
\ 'output_stream': 'stderr',
\ 'lint_file': 1,
\})