diff --git a/src/extension.ts b/src/extension.ts index 25a073d..f88a5ae 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -15,7 +15,7 @@ import { initDockView } from './dock'; import { setupVEnv } from './venv'; import { initAPI } from './api'; import { openWorkspaceProjectsWebview } from './webviews/project'; -import { initProjectTree } from './project/tree'; +import { initProjectTree, setCurrentSelectedBspItem } from './project/tree'; import { DecorationProvider } from './project/fileDecorationProvider'; import { getCurrentProjectInWorkspace } from './webviews/project'; import { initCurrentProject } from './project/cmd'; @@ -73,6 +73,8 @@ export async function activate(context: vscode.ExtensionContext) { DecorationProvider.getInstance().markFile(vscode.Uri.file(currentProject)); // 初始化当前项目到 cmd.ts 的 _currentProject 变量 initCurrentProject(currentProject); + // 初始化当前选中的BSP项目,以便后续切换时能正确移除标记 + setCurrentSelectedBspItem(currentProject); } } } diff --git a/src/project/tree.ts b/src/project/tree.ts index 597cbde..4396f09 100644 --- a/src/project/tree.ts +++ b/src/project/tree.ts @@ -18,6 +18,17 @@ let currentSelectedBspItem: ProjectTreeItem | null = null; // 添加树视图刷新事件发射器 let _onDidChangeTreeData: vscode.EventEmitter | null = null; +// 设置当前选中的BSP项目(用于初始化时设置) +export function setCurrentSelectedBspItem(fn: string) { + // Create a minimal ProjectTreeItem for tracking + currentSelectedBspItem = new ProjectTreeItem( + path.basename(fn), + vscode.TreeItemCollapsibleState.None, + 'project_bsp', + fn + ); +} + export class ProjectTreeItem extends vscode.TreeItem { children: ProjectTreeItem[]; fn: string = '';