diff --git a/src/dock.ts b/src/dock.ts index ff81656..3508976 100644 --- a/src/dock.ts +++ b/src/dock.ts @@ -341,6 +341,28 @@ export function initDockView(context: vscode.ExtensionContext) { context.subscriptions.push(view); vscode.commands.registerCommand('extension.refreshRTThread', () => refreshProjectFilesAndGroups()); + // Auto-refresh trees when project/workspace descriptors change + const workspaceFolder = vscode.workspace.workspaceFolders?.[0]; + if (workspaceFolder) { + const projectJsonPattern = new vscode.RelativePattern(workspaceFolder, '.vscode/project.json'); + const workspaceJsonPattern = new vscode.RelativePattern(workspaceFolder, '.vscode/workspace.json'); + + const projectWatcher = vscode.workspace.createFileSystemWatcher(projectJsonPattern); + const workspaceWatcher = vscode.workspace.createFileSystemWatcher(workspaceJsonPattern); + + const triggerRefresh = () => vscode.commands.executeCommand('extension.refreshRTThread'); + + projectWatcher.onDidChange(triggerRefresh); + projectWatcher.onDidCreate(triggerRefresh); + projectWatcher.onDidDelete(triggerRefresh); + + workspaceWatcher.onDidChange(triggerRefresh); + workspaceWatcher.onDidCreate(triggerRefresh); + workspaceWatcher.onDidDelete(triggerRefresh); + + context.subscriptions.push(projectWatcher, workspaceWatcher); + } + // update$(cpus) const cpus = os.cpus().length; for (const [key, value] of Object.entries(cmds)) { @@ -360,4 +382,3 @@ export function initDockView(context: vscode.ExtensionContext) { const treeDataprovider = new CmdTreeDataProvider(); context.subscriptions.push(vscode.window.registerTreeDataProvider("treeId", treeDataprovider)); } - diff --git a/src/vue/setting/view/environment/index.vue b/src/vue/setting/view/environment/index.vue index cb418d8..ed069d3 100644 --- a/src/vue/setting/view/environment/index.vue +++ b/src/vue/setting/view/environment/index.vue @@ -32,10 +32,10 @@

RT-Thread Env 状态: