@@ -341,6 +341,28 @@ export function initDockView(context: vscode.ExtensionContext) {
341341 context . subscriptions . push ( view ) ;
342342 vscode . commands . registerCommand ( 'extension.refreshRTThread' , ( ) => refreshProjectFilesAndGroups ( ) ) ;
343343
344+ // Auto-refresh trees when project/workspace descriptors change
345+ const workspaceFolder = vscode . workspace . workspaceFolders ?. [ 0 ] ;
346+ if ( workspaceFolder ) {
347+ const projectJsonPattern = new vscode . RelativePattern ( workspaceFolder , '.vscode/project.json' ) ;
348+ const workspaceJsonPattern = new vscode . RelativePattern ( workspaceFolder , '.vscode/workspace.json' ) ;
349+
350+ const projectWatcher = vscode . workspace . createFileSystemWatcher ( projectJsonPattern ) ;
351+ const workspaceWatcher = vscode . workspace . createFileSystemWatcher ( workspaceJsonPattern ) ;
352+
353+ const triggerRefresh = ( ) => vscode . commands . executeCommand ( 'extension.refreshRTThread' ) ;
354+
355+ projectWatcher . onDidChange ( triggerRefresh ) ;
356+ projectWatcher . onDidCreate ( triggerRefresh ) ;
357+ projectWatcher . onDidDelete ( triggerRefresh ) ;
358+
359+ workspaceWatcher . onDidChange ( triggerRefresh ) ;
360+ workspaceWatcher . onDidCreate ( triggerRefresh ) ;
361+ workspaceWatcher . onDidDelete ( triggerRefresh ) ;
362+
363+ context . subscriptions . push ( projectWatcher , workspaceWatcher ) ;
364+ }
365+
344366 // update$(cpus)
345367 const cpus = os . cpus ( ) . length ;
346368 for ( const [ key , value ] of Object . entries ( cmds ) ) {
@@ -360,4 +382,3 @@ export function initDockView(context: vscode.ExtensionContext) {
360382 const treeDataprovider = new CmdTreeDataProvider ( ) ;
361383 context . subscriptions . push ( vscode . window . registerTreeDataProvider ( "treeId" , treeDataprovider ) ) ;
362384}
363-
0 commit comments