fix(lsp): handle textDocumentSync.save bool capability (#18332)

Follow up to https://github.com/neovim/neovim/pull/17814
This commit is contained in:
Mathias Fußenegger
2022-04-30 22:13:26 +02:00
committed by GitHub
parent cc27540560
commit 0344736aa6
3 changed files with 114 additions and 4 deletions

View File

@@ -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', {