From 9c88e0a003d87892785b889cd36dc3bf022d2eb5 Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Sun, 3 May 2026 21:16:22 -0400 Subject: [PATCH] perf: debounce rerender calls with queueMicrotask to coalesce rapid updates --- index.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/index.ts b/index.ts index 85706a8..cce88fe 100644 --- a/index.ts +++ b/index.ts @@ -124,10 +124,19 @@ export default function piStatusbarExtension(pi: ExtensionAPI) { } } + let rerenderScheduled = false; function rerender(ctx: any) { latestCtx = ctx; - requestRender?.(); - if (ctx.hasUI) ctx.ui.setStatus("pi-statusbar", undefined); + if (rerenderScheduled) return; + rerenderScheduled = true; + + // Debounce Render - Coalesce rapid rerender calls into a single pass. + queueMicrotask(() => { + rerenderScheduled = false; + requestRender?.(); + const current = latestCtx; + if (current?.hasUI) current.ui.setStatus("pi-statusbar", undefined); + }); } function installFooter(ctx: any) {