From 0344736aa698dc205f8f9f80609b7033308d39ca Mon Sep 17 00:00:00 2001 From: Mathias Fußenegger Date: Sat, 30 Apr 2022 22:13:26 +0200 Subject: fix(lsp): handle textDocumentSync.save bool capability (#18332) Follow up to https://github.com/neovim/neovim/pull/17814 --- runtime/lua/vim/lsp.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'runtime/lua/vim') 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', { -- cgit