From efb5a7b605c88cc499ec7d391d646b1259da5d12 Mon Sep 17 00:00:00 2001 From: ya7010 Date: Sat, 12 Sep 2026 17:13:53 +0900 Subject: [PATCH] fix(vscode): persist status bar item visibility The status bar item was created without an `id`, so VSCode did not persist the user's show/hide choice from the status bar context menu: hiding the item was reset on every restart. Pass an `id` and set `name` so the preference survives a restart. Refs: #2175 Co-Authored-By: Claude Opus 5 --- .gitignore | 1 + editors/vscode/src/extension/index.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 38694efcc..fc030865e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ libcairo.2.dylib # node node_modules /docs/public/wasm/ +.pnpm-store/ # envrc .direnv/ diff --git a/editors/vscode/src/extension/index.ts b/editors/vscode/src/extension/index.ts index 6e47c68ef..bcb42a38d 100644 --- a/editors/vscode/src/extension/index.ts +++ b/editors/vscode/src/extension/index.ts @@ -33,6 +33,7 @@ export const SUPPORT_JSON_LANGUAGES = ["json"]; export const TOMBI_DEV_VERSION = "0.0.0-dev"; const OPEN_TOOLTIP_LINK_COMMAND = `${EXTENSION_ID}.openTooltipLink`; const MIN_VERSION_FOR_TOMBI_TOOLTIP_LINK = "0.11.2"; +const STATUS_BAR_ITEM_ID = `${EXTENSION_ID}.status`; export class Extension { private statusBarItem: vscode.StatusBarItem; @@ -43,9 +44,13 @@ export class Extension { private client: node.LanguageClient, private server: Server, ) { + // NOTE: The `id` is required for VSCode to persist the user's + // show/hide preference from the status bar context menu. this.statusBarItem = vscode.window.createStatusBarItem( + STATUS_BAR_ITEM_ID, vscode.StatusBarAlignment.Left, ); + this.statusBarItem.name = `${EXTENSION_NAME} Status`; this.context.subscriptions.push(this.statusBarItem); this.registerEvents();