From 0112e1f77983141e1453bd37d124302f1c876c46 Mon Sep 17 00:00:00 2001 From: Dmytro Meleshko Date: Fri, 20 Jun 2025 15:07:25 +0200 Subject: fix: some `on_attach` callbacks may act on the wrong buffer #3916 Problem: If a server is attached to a non-current buffer by `vim.lsp.buf_attach_client`, then the Language Server-related commands may be created in the current (wrong) buffer. Solution: Always use the `bufnr` arg provided to `on_attach`. --- lsp/rust_analyzer.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lsp/rust_analyzer.lua') diff --git a/lsp/rust_analyzer.lua b/lsp/rust_analyzer.lua index 23771bac..660442cc 100644 --- a/lsp/rust_analyzer.lua +++ b/lsp/rust_analyzer.lua @@ -111,9 +111,9 @@ return { init_params.initializationOptions = config.settings['rust-analyzer'] end end, - on_attach = function() - vim.api.nvim_buf_create_user_command(0, 'LspCargoReload', function() - reload_workspace(0) + on_attach = function(_, bufnr) + vim.api.nvim_buf_create_user_command(bufnr, 'LspCargoReload', function() + reload_workspace(bufnr) end, { desc = 'Reload current cargo workspace' }) end, } -- cgit v1.2.3-70-g09d2