From 625bcb504d472b1314f15638359c72e34473fbf9 Mon Sep 17 00:00:00 2001 From: alemi Date: Sat, 17 Aug 2024 03:28:34 +0200 Subject: [PATCH] feat: clear cursor on user leave, redraw windows --- src/workspace.lua | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/workspace.lua b/src/workspace.lua index 5968c59..e4a3529 100644 --- a/src/workspace.lua +++ b/src/workspace.lua @@ -56,6 +56,9 @@ local function register_cursor_handler(controller) event.finish ) end + if old_buffer ~= buffer then + window.update() -- redraw user positions + end end end)) controller:callback(function (_controller) async:send() end) @@ -66,9 +69,18 @@ local function join(workspace) register_cursor_callback(ws.cursor) register_cursor_handler(ws.cursor) - -- ws:callback(function (_ev) - -- vim.schedule(function() window.update() end) - -- end) + ws:callback(function (event) + if event.type == "leave" then + if buffers.users[event.value] ~= nil then + vim.schedule(function () + vim.api.nvim_buf_clear_namespace(buffers.users[event.value], user_hl[event.value].ns, 0, -1) + buffers.users[event.value] = nil + user_hl[event.value] = nil + end) + end + end + vim.schedule(function() window.update() end) + end) window.update() end