aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/plugged/vim-airline/autoload/airline/extensions/lsp.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/lsp.vim
parente5d38956336ab1be954bdbd12808c5f98f8bd925 (diff)
Well I'm using Arch again
Diffstat (limited to '.config/nvim/plugged/vim-airline/autoload/airline/extensions/lsp.vim')
-rw-r--r--.config/nvim/plugged/vim-airline/autoload/airline/extensions/lsp.vim67
1 files changed, 67 insertions, 0 deletions
diff --git a/.config/nvim/plugged/vim-airline/autoload/airline/extensions/lsp.vim b/.config/nvim/plugged/vim-airline/autoload/airline/extensions/lsp.vim
new file mode 100644
index 0000000..8d577b6
--- /dev/null
+++ b/.config/nvim/plugged/vim-airline/autoload/airline/extensions/lsp.vim
@@ -0,0 +1,67 @@
+" MIT License. Copyright (c) 2013-2019 François-Xavier Carton et al.
+" Plugin: https://github.com/prabirshrestha/vim-lsp
+" vim: et ts=2 sts=2 sw=2
+
+scriptencoding utf-8
+
+if !get(g:, 'lsp_loaded', 0)
+ finish
+endif
+
+function! s:airline_lsp_count(cnt, symbol) abort
+ return a:cnt ? a:symbol. a:cnt : ''
+endfunction
+
+function! s:airline_lsp_get_line_number(cnt, type) abort
+ let result = ''
+
+ if a:type ==# 'error'
+ let result = lsp#get_buffer_first_error_line()
+ endif
+
+ if empty(result)
+ return ''
+ endif
+
+ let open_lnum_symbol =
+ \ get(g:, 'airline#extensions#lsp#open_lnum_symbol', '(L')
+ let close_lnum_symbol =
+ \ get(g:, 'airline#extensions#lsp#close_lnum_symbol', ')')
+
+ return open_lnum_symbol . result . close_lnum_symbol
+endfunction
+
+function! airline#extensions#lsp#get(type) abort
+ if !exists(':LspDeclaration')
+ return ''
+ endif
+
+ let error_symbol = get(g:, 'airline#extensions#lsp#error_symbol', 'E:')
+ let warning_symbol = get(g:, 'airline#extensions#lsp#warning_symbol', 'W:')
+ let show_line_numbers = get(g:, 'airline#extensions#lsp#show_line_numbers', 1)
+
+ let is_err = a:type ==# 'error'
+
+ let symbol = is_err ? error_symbol : warning_symbol
+
+ let num = lsp#get_buffer_diagnostics_counts()[a:type]
+
+ if show_line_numbers == 1
+ return s:airline_lsp_count(num, symbol) . <sid>airline_lsp_get_line_number(num, a:type)
+ else
+ return s:airline_lsp_count(num, symbol)
+ endif
+endfunction
+
+function! airline#extensions#lsp#get_warning() abort
+ return airline#extensions#lsp#get('warning')
+endfunction
+
+function! airline#extensions#lsp#get_error() abort
+ return airline#extensions#lsp#get('error')
+endfunction
+
+function! airline#extensions#lsp#init(ext) abort
+ call airline#parts#define_function('lsp_error_count', 'airline#extensions#lsp#get_error')
+ call airline#parts#define_function('lsp_warning_count', 'airline#extensions#lsp#get_warning')
+endfunction