From 94b149c14f3a6f8fba1b5309d80c485b1bc48d55 Mon Sep 17 00:00:00 2001 From: frelodev Date: Tue, 1 Oct 2024 18:55:01 +0200 Subject: [PATCH] feat: process workspace events --- src/commands/client.ts | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/commands/client.ts b/src/commands/client.ts index 6490f5a..dc0efe0 100644 --- a/src/commands/client.ts +++ b/src/commands/client.ts @@ -111,25 +111,29 @@ export async function join(selected: vscode.TreeItem | undefined) { }); // TODO waiting for https://github.com/hexedtech/codemp/pull/19 to reach npm - // let event_handler = async () => { - // try { - // while (true) { - // if (workspace === null) break; - // let event = await workspace.event(); - // if (event.type == "leave") { - // mapping.colors_cache.get(event.value)?.clear() - // mapping.colors_cache.delete(event.value); - // } - // if (event.type == "join") { - // mapping.colors_cache.set(event.value, new mapping.UserDecoration(event.value)); - // } - // provider.refresh(); - // } - // } catch (e) { - // console.log(`stopping event handler for workspace: ${e}`); - // } - // }; - // event_handler(); + let event_handler = async () => { + try { + while (true) { + if (workspace === null) break; + let event = await workspace.event(); + if (event.type == "leave") { + mapping.colors_cache.get(event.value)?.clear() + mapping.colors_cache.delete(event.value); + } + if (event.type == "join") { + mapping.colors_cache.set(event.value, new mapping.UserDecoration(event.value)); + } + provider.refresh(); + } + } catch (e) { + console.log(`stopping event handler for workspace: ${e}`); + } + }; + event_handler(); + + for (let user of workspace.user_list()) { + mapping.colors_cache.set(user, new mapping.UserDecoration(user)); + } vscode.window.showInformationMessage("Connected to workspace"); provider.refresh();