diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2022-01-05 08:36:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-05 08:36:35 -0800 |
commit | 55a59e56eda98f17448a1c318a346ae12d30fc05 (patch) | |
tree | b10b98f1355a9bb32af5ca6ec67272a462c06b7a | |
parent | f65b0d4236eef69b02390a51cf335b0836f35801 (diff) | |
download | rneovim-55a59e56eda98f17448a1c318a346ae12d30fc05.tar.gz rneovim-55a59e56eda98f17448a1c318a346ae12d30fc05.tar.bz2 rneovim-55a59e56eda98f17448a1c318a346ae12d30fc05.zip |
feat(lsp): enable default debounce of 150 ms (#16908)
-rw-r--r-- | runtime/doc/lsp.txt | 4 | ||||
-rw-r--r-- | runtime/lua/vim/lsp.lua | 6 | ||||
-rw-r--r-- | test/functional/plugin/lsp_spec.lua | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt index 614dd82443..bb42a87034 100644 --- a/runtime/doc/lsp.txt +++ b/runtime/doc/lsp.txt @@ -887,10 +887,10 @@ start_client({config}) *vim.lsp.start_client()* default true): Allow using incremental sync for buffer edits • debounce_text_changes (number, - default nil): Debounce didChange + default 150): Debounce didChange notifications to the server by the given number in milliseconds. No - debounce occurs if nil + debounce occurs if set to 0. • exit_timeout (number, default 500): Milliseconds to wait for server to exit cleanly after sending the diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index 72bda63b43..7df0064b6b 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -256,7 +256,7 @@ local function validate_client_config(config) (not config.flags or not config.flags.debounce_text_changes or type(config.flags.debounce_text_changes) == 'number'), - "flags.debounce_text_changes must be nil or a number with the debounce time in milliseconds" + "flags.debounce_text_changes must be a number with the debounce time in milliseconds" ) local cmd, cmd_args = lsp._cmd_parts(config.cmd) @@ -383,8 +383,8 @@ do return end local state = state_by_client[client.id] - local debounce = client.config.flags.debounce_text_changes - if not debounce then + local debounce = client.config.flags.debounce_text_changes or 150 + if debounce == 0 then local changes = state.use_incremental_sync and incremental_changes(client) or full_changes() client.notify("textDocument/didChange", { textDocument = { diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua index 1af31c38f8..2fe7eca260 100644 --- a/test/functional/plugin/lsp_spec.lua +++ b/test/functional/plugin/lsp_spec.lua @@ -73,8 +73,11 @@ local function fake_lsp_server_setup(test_name, timeout_ms, options) on_init = function(client, result) TEST_RPC_CLIENT = client vim.rpcrequest(1, "init", result) - client.config.flags.allow_incremental_sync = options.allow_incremental_sync or false end; + flags = { + allow_incremental_sync = options.allow_incremental_sync or false; + debounce_text_changes = 0; + }; on_exit = function(...) vim.rpcnotify(1, "exit", ...) end; |