GetlinterStatus gets status from ale or signs
This commit is contained in:
parent
ef052d91a5
commit
fcd199af39
|
@ -165,9 +165,19 @@ endfunction
|
|||
"}}}
|
||||
|
||||
function! GetLinterStatus(key) abort
|
||||
let l:linter = ale#statusline#Count(bufnr(''))"{{{
|
||||
"{{{
|
||||
let l:statuscount = 0
|
||||
|
||||
return l:linter[a:key]
|
||||
if exists('b:ale_linted')
|
||||
let l:linter = ale#statusline#Count(bufnr(''))
|
||||
else
|
||||
let l:linter = GetDiagnosticCountsFromSigns(bufnr(''))
|
||||
endif
|
||||
|
||||
if has_key(l:linter, a:key)
|
||||
let l:statuscount = l:linter[a:key]
|
||||
endif
|
||||
return l:statuscount
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
|
@ -228,6 +238,37 @@ command! -complete=shellcmd -nargs=+ Shell call s:RunShellCommand(<q-args>)
|
|||
let g:shell_scratch_buffer_nr = -1
|
||||
"}}}
|
||||
|
||||
function! GetDiagnosticCountsFromSigns(buffer) abort
|
||||
let l:error = 0
|
||||
let l:warn = 0
|
||||
let l:info = 0
|
||||
let l:hint = 0
|
||||
|
||||
redir => l:result
|
||||
silent exec 'sign place buffer=' . a:buffer
|
||||
redir end
|
||||
|
||||
let l:lines = split(l:result, '\n')
|
||||
|
||||
for l:line in l:lines
|
||||
if l:line =~? 'Error'
|
||||
let l:error += 1
|
||||
endif
|
||||
if l:line =~? 'Warning'
|
||||
let l:warn += 1
|
||||
endif
|
||||
if l:line =~? 'Info'
|
||||
let l:info += 1
|
||||
endif
|
||||
if l:line =~? 'Hint'
|
||||
let l:hint += 1
|
||||
endif
|
||||
endfor
|
||||
|
||||
return {'error': l:error, 'warning': l:warn, 'info': l:info, 'hint': l:hint}
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
" https://stackoverflow.com/a/40195855
|
||||
" ex_command: command to run to execute file
|
||||
|
|
Loading…
Reference in New Issue