mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 04:11:10 -05:00
Merge pull request #219 from RooVetGit/update_workspace_tracker
Updated workspace tracker from Cline
This commit is contained in:
@@ -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
|
||||
}),
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user