I broke up with neovim....vim is my best friend now

This commit is contained in:
LinlyBoi
2023-04-30 08:14:07 +03:00
parent 0d185449c5
commit 4a4a6b1e81
5245 changed files with 468325 additions and 25 deletions

View File

@@ -0,0 +1,41 @@
" internal state for whether it is enabled or not to avoid multiple subscriptions
let s:enabled = 0
function! lsp#internal#diagnostics#echo#_enable() abort
" don't even bother registering if the feature is disabled
if !g:lsp_diagnostics_echo_cursor | return | endif
if s:enabled | return | endif
let s:enabled = 1
let s:Dispose = lsp#callbag#pipe(
\ lsp#callbag#fromEvent(['CursorMoved']),
\ lsp#callbag#filter({_->g:lsp_diagnostics_echo_cursor}),
\ lsp#callbag#debounceTime(g:lsp_diagnostics_echo_delay),
\ lsp#callbag#map({_->{'bufnr': bufnr('%'), 'curpos': getcurpos()[0:2], 'changedtick': b:changedtick }}),
\ lsp#callbag#distinctUntilChanged({a,b -> a['bufnr'] == b['bufnr'] && a['curpos'] == b['curpos'] && a['changedtick'] == b['changedtick']}),
\ lsp#callbag#filter({_->mode() is# 'n'}),
\ lsp#callbag#filter({_->getbufvar(bufnr('%'), '&buftype') !=# 'terminal' }),
\ lsp#callbag#map({_->lsp#internal#diagnostics#under_cursor#get_diagnostic()}),
\ lsp#callbag#subscribe({x->s:echo(x)}),
\ )
endfunction
function! lsp#internal#diagnostics#echo#_disable() abort
if !s:enabled | return | endif
if exists('s:Dispose')
call s:Dispose()
unlet s:Dispose
endif
let s:enabled = 0
endfunction
function! s:echo(diagnostic) abort
if !empty(a:diagnostic) && has_key(a:diagnostic, 'message')
call lsp#utils#echo_with_truncation('LSP: '. substitute(a:diagnostic['message'], '\n\+', ' ', 'g'))
let s:displaying_message = 1
elseif get(s:, 'displaying_message', 0)
call lsp#utils#echo_with_truncation('')
let s:displaying_message = 0
endif
endfunction