diff options
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r-- | runtime/lua/vim/lsp.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index 50fd26957d..5c35d3916f 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -1208,10 +1208,11 @@ function lsp._text_document_did_save_handler(bufnr) bufnr = resolve_bufnr(bufnr) local uri = vim.uri_from_bufnr(bufnr) local text = once(buf_get_full_text) - for_each_buffer_client(bufnr, function(client, _client_id) - if vim.tbl_get(client.server_capabilities, "textDocumentSync", "save") then + for_each_buffer_client(bufnr, function(client) + local save_capability = vim.tbl_get(client.server_capabilities, "textDocumentSync", "save") + if save_capability then local included_text - if vim.tbl_get(client.server_capabilities, "textDocumentSync", "save", "includeText") then + if type(save_capability) == "table" and save_capability.includeText then included_text = text(bufnr) end client.notify('textDocument/didSave', { |