2016-01-15 10:38:38 +08:00
|
|
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
2013-10-01 12:42:42 +08:00
|
|
|
" vim: et ts=2 sts=2 sw=2
|
|
|
|
|
2016-09-24 08:16:30 +08:00
|
|
|
scriptencoding utf-8
|
|
|
|
|
2013-10-01 12:42:42 +08:00
|
|
|
if !exists(':ProjectCreate')
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
2013-10-03 00:07:57 +08:00
|
|
|
function! airline#extensions#eclim#creat_line(...)
|
|
|
|
if &filetype == "tree"
|
|
|
|
let builder = a:1
|
|
|
|
call builder.add_section('airline_a', ' Project ')
|
|
|
|
call builder.add_section('airline_b', ' %f ')
|
|
|
|
call builder.add_section('airline_c', '')
|
|
|
|
return 1
|
|
|
|
endif
|
|
|
|
endfunction
|
|
|
|
|
2013-10-01 12:42:42 +08:00
|
|
|
function! airline#extensions#eclim#get_warnings()
|
2016-06-24 00:04:23 +08:00
|
|
|
" Cache vavlues, so that it isn't called too often
|
|
|
|
if exists("s:eclim_errors") &&
|
|
|
|
\ get(b:, 'airline_changenr', 0) == changenr()
|
|
|
|
return s:eclim_errors
|
|
|
|
endif
|
2013-10-01 12:42:42 +08:00
|
|
|
let eclimList = eclim#display#signs#GetExisting()
|
2016-06-24 00:04:23 +08:00
|
|
|
let s:eclim_errors = ''
|
2013-12-04 15:58:30 +08:00
|
|
|
|
2013-10-01 12:42:42 +08:00
|
|
|
if !empty(eclimList)
|
2013-12-04 15:58:30 +08:00
|
|
|
" Remove any non-eclim signs (see eclim#display#signs#Update)
|
2014-10-13 08:38:06 +08:00
|
|
|
" First check for just errors since they are more important.
|
|
|
|
" If there are no errors, then check for warnings.
|
|
|
|
let errorList = filter(copy(eclimList), 'v:val.name =~ "^\\(qf_\\)\\?\\(error\\)$"')
|
|
|
|
|
|
|
|
if (empty(errorList))
|
|
|
|
" use the warnings
|
2014-10-27 01:14:13 +08:00
|
|
|
call filter(eclimList, 'v:val.name =~ "^\\(qf_\\)\\?\\(warning\\)$"')
|
2014-10-13 08:38:06 +08:00
|
|
|
let type = 'W'
|
|
|
|
else
|
|
|
|
" Use the errors
|
|
|
|
let eclimList = errorList
|
|
|
|
let type = 'E'
|
|
|
|
endif
|
2013-12-04 15:58:30 +08:00
|
|
|
|
|
|
|
if !empty(eclimList)
|
|
|
|
let errorsLine = eclimList[0]['line']
|
|
|
|
let errorsNumber = len(eclimList)
|
2014-10-13 08:38:06 +08:00
|
|
|
let errors = "[Eclim:" . type . " line:".string(errorsLine)." (".string(errorsNumber).")]"
|
2013-12-04 15:58:30 +08:00
|
|
|
if !exists(':SyntasticCheck') || SyntasticStatuslineFlag() == ''
|
2016-06-24 00:04:23 +08:00
|
|
|
let s:eclim_errors = errors.(g:airline_symbols.space)
|
2013-12-04 15:58:30 +08:00
|
|
|
endif
|
2013-10-02 02:25:43 +08:00
|
|
|
endif
|
2013-10-01 12:42:42 +08:00
|
|
|
endif
|
2016-06-24 00:04:23 +08:00
|
|
|
let b:airline_changenr = changenr()
|
|
|
|
return s:eclim_errors
|
2013-10-01 12:42:42 +08:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! airline#extensions#eclim#init(ext)
|
|
|
|
call airline#parts#define_function('eclim', 'airline#extensions#eclim#get_warnings')
|
2013-10-03 00:07:57 +08:00
|
|
|
call a:ext.add_statusline_func('airline#extensions#eclim#creat_line')
|
2013-10-01 12:42:42 +08:00
|
|
|
endfunction
|
2013-10-03 00:07:57 +08:00
|
|
|
|