Merge pull request #902 from efirs/ef_ycm_error_warning_count
Show YouCompleteMe error and warning count in the statusline
This commit is contained in:
commit
d7f4fbf529
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
|
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
|
||||||
|
|
||||||
let s:sections = ['a','b','c','gutter','x','y','z','warning']
|
let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning']
|
||||||
let s:inactive_funcrefs = []
|
let s:inactive_funcrefs = []
|
||||||
|
|
||||||
function! airline#add_statusline_func(name)
|
function! airline#add_statusline_func(name)
|
||||||
|
|
|
@ -138,6 +138,8 @@ function! airline#extensions#load()
|
||||||
call airline#extensions#netrw#init(s:ext)
|
call airline#extensions#netrw#init(s:ext)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
call airline#extensions#ycm#init(s:ext)
|
||||||
|
|
||||||
if get(g:, 'loaded_vimfiler', 0)
|
if get(g:, 'loaded_vimfiler', 0)
|
||||||
let g:vimfiler_force_overwrite_statusline = 0
|
let g:vimfiler_force_overwrite_statusline = 0
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -9,7 +9,7 @@ let s:section_truncate_width = get(g:, 'airline#extensions#default#section_trunc
|
||||||
\ })
|
\ })
|
||||||
let s:layout = get(g:, 'airline#extensions#default#layout', [
|
let s:layout = get(g:, 'airline#extensions#default#layout', [
|
||||||
\ [ 'a', 'b', 'c' ],
|
\ [ 'a', 'b', 'c' ],
|
||||||
\ [ 'x', 'y', 'z', 'warning' ]
|
\ [ 'x', 'y', 'z', 'error', 'warning' ]
|
||||||
\ ])
|
\ ])
|
||||||
|
|
||||||
function! s:get_section(winnr, key, ...)
|
function! s:get_section(winnr, key, ...)
|
||||||
|
@ -26,7 +26,7 @@ endfunction
|
||||||
|
|
||||||
function! s:build_sections(builder, context, keys)
|
function! s:build_sections(builder, context, keys)
|
||||||
for key in a:keys
|
for key in a:keys
|
||||||
if key == 'warning' && !a:context.active
|
if (key == 'warning' || key == 'error') && !a:context.active
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
call s:add_section(a:builder, a:context, key)
|
call s:add_section(a:builder, a:context, key)
|
||||||
|
@ -37,11 +37,11 @@ if v:version >= 704 || (v:version >= 703 && has('patch81'))
|
||||||
function s:add_section(builder, context, key)
|
function s:add_section(builder, context, key)
|
||||||
" i have no idea why the warning section needs special treatment, but it's
|
" i have no idea why the warning section needs special treatment, but it's
|
||||||
" needed to prevent separators from showing up
|
" needed to prevent separators from showing up
|
||||||
if a:key == 'warning'
|
if (a:key == 'warning' || a:key == 'error')
|
||||||
call a:builder.add_raw('%(')
|
call a:builder.add_raw('%(')
|
||||||
endif
|
endif
|
||||||
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
||||||
if a:key == 'warning'
|
if (a:key == 'warning' || a:key == 'error')
|
||||||
call a:builder.add_raw('%)')
|
call a:builder.add_raw('%)')
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -50,6 +50,8 @@ else
|
||||||
function s:add_section(builder, context, key)
|
function s:add_section(builder, context, key)
|
||||||
if a:key == 'warning'
|
if a:key == 'warning'
|
||||||
call a:builder.add_raw('%#airline_warning#'.s:get_section(a:context.winnr, a:key))
|
call a:builder.add_raw('%#airline_warning#'.s:get_section(a:context.winnr, a:key))
|
||||||
|
else if a:key == 'error'
|
||||||
|
call a:builder.add_raw('%#airline_error#'.s:get_section(a:context.winnr, a:key))
|
||||||
else
|
else
|
||||||
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
" MIT License. Copyright (c) 2015 Evgeny Firsov.
|
||||||
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
|
let s:spc = g:airline_symbols.space
|
||||||
|
let s:error_symbol = get(g:, 'airline#extensions#ycm#error_symbol', 'E:')
|
||||||
|
let s:warning_symbol = get(g:, 'airline#extensions#ycm#warning_symbol', 'W:')
|
||||||
|
|
||||||
|
function! airline#extensions#ycm#init(ext)
|
||||||
|
call airline#parts#define_function('ycm_error_count', 'airline#extensions#ycm#get_error_count')
|
||||||
|
call airline#parts#define_function('ycm_warning_count', 'airline#extensions#ycm#get_warning_count')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! airline#extensions#ycm#get_error_count()
|
||||||
|
if exists(':YcmDiag')
|
||||||
|
let cnt = youcompleteme#GetErrorCount()
|
||||||
|
|
||||||
|
if cnt != 0
|
||||||
|
return s:error_symbol.cnt
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! airline#extensions#ycm#get_warning_count()
|
||||||
|
if exists(':YcmDiag')
|
||||||
|
let cnt = youcompleteme#GetWarningCount()
|
||||||
|
|
||||||
|
if cnt != 0
|
||||||
|
return s:warning_symbol.cnt.s:spc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
|
@ -117,8 +117,11 @@ function! airline#init#sections()
|
||||||
if !exists('g:airline_section_z')
|
if !exists('g:airline_section_z')
|
||||||
let g:airline_section_z = airline#section#create(['windowswap', '%3p%%'.spc, 'linenr', ':%3v '])
|
let g:airline_section_z = airline#section#create(['windowswap', '%3p%%'.spc, 'linenr', ':%3v '])
|
||||||
endif
|
endif
|
||||||
|
if !exists('g:airline_section_error')
|
||||||
|
let g:airline_section_error = airline#section#create(['ycm_error_count'])
|
||||||
|
endif
|
||||||
if !exists('g:airline_section_warning')
|
if !exists('g:airline_section_warning')
|
||||||
let g:airline_section_warning = airline#section#create(['syntastic', 'eclim', 'whitespace'])
|
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic', 'eclim', 'whitespace'])
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,10 @@ endfunction
|
||||||
function! airline#themes#patch(palette)
|
function! airline#themes#patch(palette)
|
||||||
for mode in keys(a:palette)
|
for mode in keys(a:palette)
|
||||||
if !has_key(a:palette[mode], 'airline_warning')
|
if !has_key(a:palette[mode], 'airline_warning')
|
||||||
let a:palette[mode]['airline_warning'] = [ '#000000', '#df5f00', 232, 166 ]
|
let a:palette[mode]['airline_warning'] = [ '#000000', '#df5f00', 232, 190 ]
|
||||||
|
endif
|
||||||
|
if !has_key(a:palette[mode], 'airline_error')
|
||||||
|
let a:palette[mode]['airline_error'] = [ '#000000', '#df5f00', 232, 160 ]
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
|
|
|
@ -225,7 +225,8 @@ section.
|
||||||
let g:airline_section_x (tagbar, filetype, virtualenv)
|
let g:airline_section_x (tagbar, filetype, virtualenv)
|
||||||
let g:airline_section_y (fileencoding, fileformat)
|
let g:airline_section_y (fileencoding, fileformat)
|
||||||
let g:airline_section_z (percentage, line number, column number)
|
let g:airline_section_z (percentage, line number, column number)
|
||||||
let g:airline_section_warning (syntastic, whitespace)
|
let g:airline_section_error (ycm_error_count)
|
||||||
|
let g:airline_section_warning (ycm_warning_count, syntastic, whitespace)
|
||||||
|
|
||||||
" here is an example of how you could replace the branch indicator with
|
" here is an example of how you could replace the branch indicator with
|
||||||
" the current working directory, followed by the filename.
|
" the current working directory, followed by the filename.
|
||||||
|
@ -275,7 +276,7 @@ configuration values that you can use.
|
||||||
(first array is the left side, second array is the right side). >
|
(first array is the left side, second array is the right side). >
|
||||||
let g:airline#extensions#default#layout = [
|
let g:airline#extensions#default#layout = [
|
||||||
\ [ 'a', 'b', 'c' ],
|
\ [ 'a', 'b', 'c' ],
|
||||||
\ [ 'x', 'y', 'z', 'warning' ]
|
\ [ 'x', 'y', 'z', 'error', 'warning' ]
|
||||||
\ ]
|
\ ]
|
||||||
<
|
<
|
||||||
------------------------------------- *airline-quickfix*
|
------------------------------------- *airline-quickfix*
|
||||||
|
@ -662,6 +663,17 @@ vim-ctrlspace <https://github.com/szw/vim-ctrlspace>
|
||||||
* enable/disable vim-ctrlspace integration >
|
* enable/disable vim-ctrlspace integration >
|
||||||
let g:airline#extensions#ctrlspace#enabled = 1
|
let g:airline#extensions#ctrlspace#enabled = 1
|
||||||
<
|
<
|
||||||
|
------------------------------------- *airline-ycm*
|
||||||
|
YouCompleteMe <https://github.com/Valloric/YouCompleteMe>
|
||||||
|
|
||||||
|
Shows number of errors and warnings in the current file detected by YCM.
|
||||||
|
|
||||||
|
* set error count prefix >
|
||||||
|
let g:airline#extensions#ycm#error_symbol = 'E:'
|
||||||
|
|
||||||
|
* set warning count prefix >
|
||||||
|
let g:airline#extensions#ycm#warning_symbol = 'W:'
|
||||||
|
<
|
||||||
==============================================================================
|
==============================================================================
|
||||||
ADVANCED CUSTOMIZATION *airline-advanced-customization*
|
ADVANCED CUSTOMIZATION *airline-advanced-customization*
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue