diff options
author | Mathias Fußenegger <mfussenegger@users.noreply.github.com> | 2023-03-11 14:50:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-11 14:50:14 +0100 |
commit | 23dc2a59b6e13b0dbab47c6c64ac5a55095b258b (patch) | |
tree | 13783c87ded36d93d8fb5d8027fb7af91172dc16 /runtime/lua/vim/lsp.lua | |
parent | 865d8d4720ca72de1c385773ca4c597f3642874c (diff) | |
download | rneovim-23dc2a59b6e13b0dbab47c6c64ac5a55095b258b.tar.gz rneovim-23dc2a59b6e13b0dbab47c6c64ac5a55095b258b.tar.bz2 rneovim-23dc2a59b6e13b0dbab47c6c64ac5a55095b258b.zip |
fix(lsp): send didClose on buffer rename (#22623)
Subset of https://github.com/neovim/neovim/pull/22407 that was reverted
in https://github.com/neovim/neovim/pull/22604
If a buffer is renamed sending `didClose` for the old buffer helps
ensure the language server doesn't keep a stale document in memory.
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r-- | runtime/lua/vim/lsp.lua | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index 117b32dc57..1896543da3 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -1,3 +1,4 @@ +---@diagnostic disable: invisible local default_handlers = require('vim.lsp.handlers') local log = require('vim.lsp.log') local lsp_rpc = require('vim.lsp.rpc') @@ -1592,6 +1593,11 @@ local function text_document_did_save_handler(bufnr) local name = api.nvim_buf_get_name(bufnr) local old_name = changetracking._get_and_set_name(client, bufnr, name) if old_name and name ~= old_name then + client.notify('textDocument/didClose', { + textDocument = { + uri = vim.uri_from_fname(old_name), + }, + }) client.notify('textDocument/didOpen', { textDocument = { version = 0, |