hunks: only enable coc-git extension, if explicitly enabled by the user

As requested by the coc maintainer, this is explicitly disabled, unless
the user configures vim-airline to use it for the branch extension. This
is done, because the `CocAction('extensionStats')` function is known to
be slow and this may cause a slow startup.
This commit is contained in:
Christian Brabandt 2020-04-29 16:57:20 +02:00
parent e7f78bbc0f
commit 48064e24d5
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
2 changed files with 11 additions and 16 deletions

View File

@ -16,24 +16,14 @@ let s:non_zero_only = get(g:, 'airline#extensions#hunks#non_zero_only', 0)
let s:hunk_symbols = get(g:, 'airline#extensions#hunks#hunk_symbols', ['+', '~', '-'])
function! s:coc_git_enabled() abort
if !exists("*CocAction")
if !exists("*CocAction") ||
!get(g:, 'airline#extensions#hunks#coc_git', 0)
" coc-git extension is disabled by default
" unless specifically being enabled by the user
" (as requested from coc maintainer)
return 0
endif
if exists("s:airline_coc_git_enabled")
return s:airline_coc_git_enabled
endif
let extensions=CocAction('extensionStats')
if type(extensions) != type([])
" not yet initialized? Assume it is available...
return 1
endif
let coc_git=filter(extensions, 'v:val.id is# "coc-git" && v:val.state is# "activated"')
if !empty(coc_git)
let s:airline_coc_git_enabled = 1
else
let s:airline_coc_git_enabled = 0
endif
return s:airline_coc_git_enabled
return 1
endfunction
function! s:get_hunks_signify() abort

View File

@ -758,6 +758,11 @@ querying how many changes you got. It will return something like '+4 ~2 -1'.
<
* set hunk count symbols. >
let g:airline#extensions#hunks#hunk_symbols = ['+', '~', '-']
* enable coc-git extension.
If not set to 1, vim-airline will not consider to use coc-git for the hunks
extension. Make sure to have the coc-git extension enabled. >
let g:airline#extensions#hunks#coc_git = 1
<
------------------------------------- *airline-keymap*
vim-keymap