Skip to content

Commit 6ddf40e

Browse files
committed
feat: 添加项目和工作区描述符变化时的自动刷新功能
1 parent 7998283 commit 6ddf40e

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/dock.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)