no text document did save delay by default (#629)

This commit is contained in:
Vu Le
2019-12-27 01:03:32 +07:00
committed by Prabir Shrestha
parent 6dd95bbcab
commit d3ce720d43
3 changed files with 18 additions and 4 deletions

View File

@@ -213,10 +213,14 @@ function! s:on_text_document_did_save() abort
if getbufvar(l:buf, '&buftype') ==# 'terminal' | return | endif
call lsp#log('s:on_text_document_did_save()', l:buf)
for l:server_name in lsp#get_whitelisted_servers(l:buf)
" We delay the callback by one loop iteration as calls to ensure_flush
" can introduce mmap'd file locks that linger on Windows and collide
" with the second lang server call preventing saves (see #455)
call s:ensure_flush(l:buf, l:server_name, {result->timer_start(0, {timer->s:call_did_save(l:buf, l:server_name, result, function('s:Noop'))})})
if g:lsp_text_document_did_save_delay >= 0
" We delay the callback by one loop iteration as calls to ensure_flush
" can introduce mmap'd file locks that linger on Windows and collide
" with the second lang server call preventing saves (see #455)
call s:ensure_flush(l:buf, l:server_name, {result->timer_start(g:lsp_text_document_did_save_delay, {timer->s:call_did_save(l:buf, l:server_name, result, function('s:Noop'))})})
else
call s:ensure_flush(l:buf, l:server_name, {result->s:call_did_save(l:buf, l:server_name, result, function('s:Noop'))})
endif
endfor
endfunction

View File

@@ -38,6 +38,7 @@ CONTENTS *vim-lsp-contents*
g:lsp_hover_conceal |g:lsp_hover_conceal|
g:lsp_ignorecase |g:lsp_ignorecase|
g:lsp_log_file |g:lsp_log_file|
g:lsp_text_document_did_save_delay |g:lsp_text_document_did_save_delay|
Functions |vim-lsp-functions|
lsp#enable |lsp#enable()|
lsp#disable |lsp#disable()|
@@ -567,6 +568,14 @@ g:lsp_log_file *g:lsp_log_file*
let g:lsp_log_file = ''
let g:lsp_log_file = expand('~/vim-lsp.log')
g:lsp_text_document_did_save_delay *g:lsp_text_document_did_save_delay*
Type: |Number|
Default: `-1`
The waiting time in milliseconds before sending textDocument/didSave to
LSP servers, -1 by default means no delay. If >= 0, will delay using
|timer_start()| with {time} is the number.
==============================================================================
FUNCTIONS *vim-lsp-functions*

View File

@@ -39,6 +39,7 @@ let g:lsp_signature_help_enabled = get(g:, 'lsp_signature_help_enabled', 1)
let g:lsp_fold_enabled = get(g:, 'lsp_fold_enabled', 1)
let g:lsp_hover_conceal = get(g:, 'lsp_hover_conceal', 1)
let g:lsp_ignorecase = get(g:, 'lsp_ignorecase', &ignorecase)
let g:lsp_text_document_did_save_delay = get(g:, 'lsp_text_document_did_save_delay', -1)
let g:lsp_get_vim_completion_item = get(g:, 'lsp_get_vim_completion_item', [function('lsp#omni#default_get_vim_completion_item')])
let g:lsp_get_supported_capabilities = get(g:, 'lsp_get_supported_capabilities', [function('lsp#default_get_supported_capabilities')])