aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim
diff options
context:
space:
mode:
authorMarvin Borner2020-03-16 23:33:42 +0100
committerMarvin Borner2020-03-16 23:33:42 +0100
commit0e9ddbb0bf0cd34500155ea4b03de2e2a38d8ab2 (patch)
tree719da1c7fe5dabb872fe9ff1582c39b55ccd488e /.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim
parente5d38956336ab1be954bdbd12808c5f98f8bd925 (diff)
Well I'm using Arch again
Diffstat (limited to '.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim')
-rw-r--r--.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim54
1 files changed, 54 insertions, 0 deletions
diff --git a/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim b/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim
new file mode 100644
index 0000000..3a2abaa
--- /dev/null
+++ b/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim
@@ -0,0 +1,54 @@
+" MIT License. Copyright (c) 2019 Peng Guanwen et al.
+" vim: et ts=2 sts=2 sw=2
+" Plugin: https://github.com/neoclide/coc
+
+scriptencoding utf-8
+
+let s:error_symbol = get(g:, 'airline#extensions#coc#error_symbol', 'E:')
+let s:warning_symbol = get(g:, 'airline#extensions#coc#warning_symbol', 'W:')
+
+function! airline#extensions#coc#get_warning() abort
+ return airline#extensions#coc#get('warning')
+endfunction
+
+function! airline#extensions#coc#get_error() abort
+ return airline#extensions#coc#get('error')
+endfunction
+
+function! airline#extensions#coc#get(type) abort
+ if !exists(':CocCommand')
+ return ''
+ endif
+ let _backup = get(g:, 'coc_stl_format', '')
+ let is_err = (a:type is# 'error')
+ if is_err
+ let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_err', '%E{[%e(#%fe)]}')
+ else
+ let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_warn', '%W{[%w(#%fw)]}')
+ endif
+ let info = get(b:, 'coc_diagnostic_info', {})
+ if empty(info) | return '' | endif
+
+
+ let cnt = get(info, a:type, 0)
+ if !empty(_backup)
+ let g:coc_stl_format = _backup
+ endif
+
+ if empty(cnt)
+ return ''
+ else
+ return (is_err ? s:error_symbol : s:warning_symbol).cnt
+ endif
+endfunction
+
+function! airline#extensions#coc#get_status() abort
+ " Shorten text for windows < 81 characters
+ return airline#util#shorten(get(g:, 'coc_status', ''), 81, 9)
+endfunction
+
+function! airline#extensions#coc#init(ext) abort
+ call airline#parts#define_function('coc_error_count', 'airline#extensions#coc#get_error')
+ call airline#parts#define_function('coc_warning_count', 'airline#extensions#coc#get_warning')
+ call airline#parts#define_function('coc_status', 'airline#extensions#coc#get_status')
+endfunction