microsoft / microsoft/vscode-documentdb
Copy-and-Paste: Progress Monitoring Tree View ` Bonus Task 🎁 `
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 31
- Forks
- 22
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 21
Description
Copy-and-Paste: Bonus Task - Progress Monitoring Tree View
⚠️ Important: This is a bonus enhancement to be implemented after the main progress monitoring feature is complete.
Enhances Development Plan Point: 6
Description:
Instead of using vscode.window.withProgress notifications, create a dedicated VS Code view with a tree-like structure for progress monitoring. This will provide a more sophisticated interface for tracking multiple concurrent operations with detailed sub-task progress information.
Requirements
Progress Monitoring Tree View Implementation:
1. Create a new Progress View:
- Add a new view contribution in package.json:
- View ID:
documentdb.progressView - View Name: "Tasks"
- View Container: Create a new view container or use existing "DocumentDB" container
- Icon: Use appropriate task/progress icon
- View ID:
2. Tree Data Provider Implementation:
- Create
src/tree/progress-view/ProgressTreeDataProvider.tsfollowing the existing tree provider patterns - Tree structure:
- Root level: Active tasks (show task name, overall progress percentage, status icon)
- Child level: Sub-tasks or detailed progress steps (show step name, progress, timing information)
- Implement real-time updates using VS Code's tree refresh events when task states change
3. Tree Item Features:
-
Task Items (root level):
- Show task type icon (e.g., copy, paste, migration)
- Display overall progress bar using custom tree item descriptions
- Show elapsed time and estimated time remaining
- Context menu actions: "Stop Task", "View Details", "Clear Completed"
-
Sub-task Items (child level):
- Show individual operation progress (e.g., "Copying document 45/100")
- Display operation-specific details (document IDs, collection names, error counts)
- Use different icons for different states (pending, running, completed, failed)
4. Enhanced TaskReportingService Integration:
- Modify
TaskReportingServiceto support both notification and tree view modes - Add methods to:
- Register/unregister the tree data provider
- Convert task status updates to tree item updates
- Manage hierarchical progress reporting for sub-tasks
- Allow users to switch between notification and tree view modes via settings
5. Additional Tree View Features:
-
Filtering and Sorting:
- Filter by task type, status, or time range
- Sort by start time, progress, or name
-
Task History:
- Keep completed/failed tasks visible for a configurable duration
- Allow manual clearing of completed tasks
- Show task completion timestamps
-
Progress Visualization:
- Use VS Code's built-in progress indicators in tree items
- Color-code items based on status (green for running, yellow for warnings, red for errors)
- Show aggregate statistics in view welcome content when no tasks are active
6. User Experience Enhancements:
- Auto-reveal the progress view when a new long-running task starts
- Provide "pin" functionality to keep important tasks visible
- Support collapsing/expanding task details
- Show task queue information if multiple tasks are pending
This tree view approach provides a centralized location for monitoring all DocumentDB operations, making it easier to track multiple concurrent tasks and understand complex multi-step operations at a glance.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing package.json for existing view contributions and the existing tree provider patterns before examining src/tree/progress-view/ProgressTreeDataProvider.ts and TaskReportingService. Confirm the main progress monitoring feature is complete, then define the task and sub-task states, refresh behavior, commands, filtering, history, and settings described here. Done means the progress view supports concurrent operations and the listed monitoring interactions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100