Make skip_empty variable overridable per window

The denite extension functions return the content of some buffer-local
variables. Those variables are not defined, the first time the they are
accessed and therefore, the statusline is not updated later when
g:airline_skip_empty_sections is set.

So disable this variable in this window, by setting the
w:airline_skip_empty_section=0 variable in the denite window.

closes #1454
This commit is contained in:
Christian Brabandt 2017-04-10 09:17:23 +02:00
parent 396b49be4c
commit f76ede3b28
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
3 changed files with 12 additions and 0 deletions

View File

@ -161,6 +161,11 @@ function! s:section_is_empty(self, content)
if get(g:, 'airline_skip_empty_sections', 0) == 0 if get(g:, 'airline_skip_empty_sections', 0) == 0
return 0 return 0
endif endif
" only check, if airline#skip_empty_sections == 1
if get(w:, 'airline_skip_empty_sections', 0) == 0
return 0
endif
" assume accents sections to be never empty " assume accents sections to be never empty
" (avoides, that on startup the mode message becomes empty) " (avoides, that on startup the mode message becomes empty)
if match(a:content, '%#__accent_[^#]*#.*__restore__#') > -1 if match(a:content, '%#__accent_[^#]*#.*__restore__#') > -1

View File

@ -19,6 +19,7 @@ endfunction
function! airline#extensions#denite#apply(...) function! airline#extensions#denite#apply(...)
if &ft == 'denite' if &ft == 'denite'
let w:airline_skip_empty_sections = 0
call a:1.add_section('airline_a', ' Denite %{airline#extensions#denite#check_denite_mode('.a:2['bufnr'].')}') call a:1.add_section('airline_a', ' Denite %{airline#extensions#denite#check_denite_mode('.a:2['bufnr'].')}')
call a:1.add_section('airline_c', ' %{denite#get_status_sources()}') call a:1.add_section('airline_c', ' %{denite#get_status_sources()}')
call a:1.split() call a:1.split()

View File

@ -148,6 +148,12 @@ values):
> >
let g:airline_skip_empty_sections = 1 let g:airline_skip_empty_sections = 1
< <
This variable can be overriden by setting a window-local variable with
the same name (in the correct window):
>
let w:airline_skip_empty_sections = 0
<
============================================================================== ==============================================================================
COMMANDS *airline-commands* COMMANDS *airline-commands*