From 8d00a51d44519ed9d4e47abdc47122e3c8e07151 Mon Sep 17 00:00:00 2001 From: Julia Silge Date: Tue, 26 Nov 2024 13:47:09 -0700 Subject: [PATCH] Context keys only apply to *active* documents --- apps/vscode/src/providers/context-keys.ts | 31 ++++++++--------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/apps/vscode/src/providers/context-keys.ts b/apps/vscode/src/providers/context-keys.ts index f639c6a1..f10ac7ef 100644 --- a/apps/vscode/src/providers/context-keys.ts +++ b/apps/vscode/src/providers/context-keys.ts @@ -13,7 +13,6 @@ * */ - import * as vscode from "vscode"; import debounce from "lodash.debounce"; @@ -41,24 +40,24 @@ export function activateContextKeySetter( context.subscriptions ); - // set context keys when visible text editors change - vscode.window.onDidChangeVisibleTextEditors( - (_editors) => { - triggerUpdateContextKeys(engine); + // set context keys when active text editor changes + vscode.window.onDidChangeActiveTextEditor( + (editor) => { + if (editor) { + setContextKeys(editor, engine); + } }, null, context.subscriptions ); - // set context keys on changes to the document (if its visible) + // set context keys on changes to the document (if it's active) vscode.workspace.onDidChangeTextDocument( (event) => { - const visibleEditor = vscode.window.visibleTextEditors.find(editor => { - return editor.document.uri.toString() === event.document.uri.toString(); - }); - if (visibleEditor) { + const activeEditor = vscode.window.activeTextEditor; + if (activeEditor) { debounce( - () => setContextKeys(visibleEditor, engine), + () => setContextKeys(activeEditor, engine), debounceOnDidChangeDocumentMs )(); } @@ -66,16 +65,6 @@ export function activateContextKeySetter( null, context.subscriptions ); - - // set context keys at activation time - triggerUpdateContextKeys(engine); - -} - -function triggerUpdateContextKeys(engine: MarkdownEngine) { - for (const editor of vscode.window.visibleTextEditors) { - setContextKeys(editor, engine); - } } function setContextKeys(editor: vscode.TextEditor, engine: MarkdownEngine) {