Blacklist startify for [noperm]
Startify unfortunately does not set the buftype option, so the `[noperm]` would be shown, since the buffer is not really a file. (see mhinz/vim-startify#324) So allow to blacklist startify from this setting. To do so, the logic from the tabline extension was refactored out into a separate function that returns true, if the buffer matches `g:airline#extensions#tabline#ignore_bufadd_pat` and that function is then reused for the readonly() function as well.
This commit is contained in:
parent
c7e05efb76
commit
b84e13f1d7
|
@ -49,14 +49,13 @@ function! s:update_tabline()
|
||||||
endif
|
endif
|
||||||
let match = expand('<afile>')
|
let match = expand('<afile>')
|
||||||
let ignore_bufadd_pat = get(g:, 'airline#extensions#tabline#ignore_bufadd_pat',
|
let ignore_bufadd_pat = get(g:, 'airline#extensions#tabline#ignore_bufadd_pat',
|
||||||
\ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree')
|
\ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree|startify')
|
||||||
if pumvisible()
|
if pumvisible()
|
||||||
return
|
return
|
||||||
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||||
return
|
return
|
||||||
" return, if buffer matches ignore pattern or is directory (netrw)
|
" return, if buffer matches ignore pattern or is directory (netrw)
|
||||||
elseif empty(match)
|
elseif empty(match) || airline#util#ignore_buf(match)
|
||||||
\ || match(match, ignore_bufadd_pat) > -1
|
|
||||||
\ || isdirectory(expand("<afile>"))
|
\ || isdirectory(expand("<afile>"))
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -88,7 +88,7 @@ endfunction
|
||||||
function! airline#parts#readonly()
|
function! airline#parts#readonly()
|
||||||
" only consider regular buffers (e.g. ones that represent actual files,
|
" only consider regular buffers (e.g. ones that represent actual files,
|
||||||
" but not special ones like e.g. NERDTree)
|
" but not special ones like e.g. NERDTree)
|
||||||
if !empty(&buftype)
|
if !empty(&buftype) || airline#util#ignore_buf(bufname('%'))
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
if &readonly && !filereadable(bufname('%'))
|
if &readonly && !filereadable(bufname('%'))
|
||||||
|
|
|
@ -96,3 +96,10 @@ function! airline#util#strchars(str)
|
||||||
return strlen(substitute(a:str, '.', 'a', 'g'))
|
return strlen(substitute(a:str, '.', 'a', 'g'))
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! airline#util#ignore_buf(name)
|
||||||
|
let pat = '\c\v'. get(g:, 'airline#ignore_bufadd_pat', '').
|
||||||
|
\ get(g:, 'airline#extensions#tabline#ignore_bufadd_pat',
|
||||||
|
\ 'gundo|undotree|vimfiler|tagbar|nerd_tree|startify')
|
||||||
|
return match(a:name, pat) > -1
|
||||||
|
endfunction
|
||||||
|
|
|
@ -324,6 +324,12 @@ section.
|
||||||
let g:airline_section_b = '%-0.10{getcwd()}'
|
let g:airline_section_b = '%-0.10{getcwd()}'
|
||||||
let g:airline_section_c = '%t'
|
let g:airline_section_c = '%t'
|
||||||
<
|
<
|
||||||
|
|airline#ignore_bufadd_pat|
|
||||||
|
Determines a pattern to ignore a buffer name for various things (e.g. the
|
||||||
|
tabline extension) or the read-only check. Default is
|
||||||
|
`g:airline#extensions#tabline#ignore_bufadd_pat` (see below) or
|
||||||
|
`'gundo|undotree|vimfiler|tagbar|nerd_tree|startify'` if it is unset.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
EXTENSIONS *airline-extensions*
|
EXTENSIONS *airline-extensions*
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue