Merge pull request #219 from RooVetGit/update_workspace_tracker

Updated workspace tracker from Cline
This commit is contained in:
Matt Rubens
2024-12-26 08:26:40 -08:00
committed by GitHub
2 changed files with 3 additions and 25 deletions

View File

@@ -27,10 +27,8 @@ class WorkspaceTracker {
}
private registerListeners() {
// Create a file system watcher for all files
const watcher = vscode.workspace.createFileSystemWatcher('**')
const watcher = vscode.workspace.createFileSystemWatcher("**")
// Listen for file creation
this.disposables.push(
watcher.onDidCreate(async (uri) => {
await this.addFilePath(uri.fsPath)
@@ -38,7 +36,7 @@ class WorkspaceTracker {
})
)
// Listen for file deletion
// Renaming files triggers a delete and create event
this.disposables.push(
watcher.onDidDelete(async (uri) => {
if (await this.removeFilePath(uri.fsPath)) {
@@ -47,15 +45,6 @@ class WorkspaceTracker {
})
)
// Listen for file changes (which could include renames)
this.disposables.push(
watcher.onDidChange(async (uri) => {
await this.addFilePath(uri.fsPath)
this.workspaceDidUpdate()
})
)
// Add the watcher itself to disposables
this.disposables.push(watcher)
}
@@ -68,7 +57,7 @@ class WorkspaceTracker {
filePaths: Array.from(this.filePaths).map((file) => {
const relativePath = path.relative(cwd, file).toPosix()
return file.endsWith("/") ? relativePath + "/" : relativePath
}),
})
})
}

View File

@@ -12,7 +12,6 @@ const mockDispose = jest.fn()
const mockWatcher = {
onDidCreate: mockOnDidCreate.mockReturnValue({ dispose: mockDispose }),
onDidDelete: mockOnDidDelete.mockReturnValue({ dispose: mockDispose }),
onDidChange: mockOnDidChange.mockReturnValue({ dispose: mockDispose }),
dispose: mockDispose
}
@@ -86,16 +85,6 @@ describe("WorkspaceTracker", () => {
})
})
it("should handle file change events", async () => {
const [[callback]] = mockOnDidChange.mock.calls
await callback({ fsPath: "/test/workspace/changed.ts" })
expect(mockProvider.postMessageToWebview).toHaveBeenCalledWith({
type: "workspaceUpdated",
filePaths: ["changed.ts"]
})
})
it("should handle directory paths correctly", async () => {
// Mock stat to return directory type
;(vscode.workspace.fs.stat as jest.Mock).mockResolvedValueOnce({ type: 2 }) // FileType.Directory = 2