aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorMathias Fußenegger <mfussenegger@users.noreply.github.com>2022-04-30 22:13:26 +0200
committerGitHub <noreply@github.com>2022-04-30 22:13:26 +0200
commit0344736aa698dc205f8f9f80609b7033308d39ca (patch)
tree099aa0fef01b37012de459129bffce46d32ecfed /runtime/lua/vim/lsp.lua
parentcc27540560672c1586e17a9e39512074e770b005 (diff)
downloadrneovim-0344736aa698dc205f8f9f80609b7033308d39ca.tar.gz
rneovim-0344736aa698dc205f8f9f80609b7033308d39ca.tar.bz2
rneovim-0344736aa698dc205f8f9f80609b7033308d39ca.zip
fix(lsp): handle textDocumentSync.save bool capability (#18332)
Follow up to https://github.com/neovim/neovim/pull/17814
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua7
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', {