mirror of
https://github.com/vim-airline/vim-airline.git
synced 2024-11-28 11:36:47 +08:00
4c22406e28
When using a non-english locale, the name of the Quickfix window can change, making the detection of Quickfix vs Location list fail. E.g., my locale is set to italian and the Quickfix window's name is `[Lista Quickfix]` rather than `[Quickfix List]`. This change generalizes the pattern used to detect the Quickfix window.
38 lines
988 B
VimL
38 lines
988 B
VimL
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
|
|
" vim: et ts=2 sts=2 sw=2
|
|
|
|
let g:airline#extensions#quickfix#quickfix_text = 'Quickfix'
|
|
let g:airline#extensions#quickfix#location_text = 'Location'
|
|
|
|
function! airline#extensions#quickfix#apply(...)
|
|
if &buftype == 'quickfix'
|
|
let w:airline_section_a = s:get_text()
|
|
let w:airline_section_b = '%{get(w:, "quickfix_title", "")}'
|
|
let w:airline_section_c = ''
|
|
let w:airline_section_x = ''
|
|
endif
|
|
endfunction
|
|
|
|
function! airline#extensions#quickfix#init(ext)
|
|
call a:ext.add_statusline_func('airline#extensions#quickfix#apply')
|
|
endfunction
|
|
|
|
function! s:get_text()
|
|
redir => buffers
|
|
silent ls
|
|
redir END
|
|
|
|
let nr = bufnr('%')
|
|
for buf in split(buffers, '\n')
|
|
if match(buf, '\v^\s*'.nr) > -1
|
|
if match(buf, '\cQuickfix') > -1
|
|
return g:airline#extensions#quickfix#quickfix_text
|
|
else
|
|
return g:airline#extensions#quickfix#location_text
|
|
endif
|
|
endif
|
|
endfor
|
|
return ''
|
|
endfunction
|
|
|