Scoper
Scoper is a VS Code extension that helps you manage and organize the files you're actively working on. Instead of keeping dozens of tabs open or constantly searching through your project, Scoper lets you create focused "scopes" - collections of files that persist even after you close tabs or restart VS Code.
Heavily inspired by HARPOON
Features
- 📁 Create Multiple Scopes: Organize files into different contexts (e.g., "Feature A", "Bug Fix", "Refactoring")
- ⚡ Quick File Navigation: Jump to any file in your active scope with keyboard shortcuts (
Alt+1 through Alt+0)
- 🎯 Persistent File Collections: Your scopes persist across VS Code sessions
- 🤖 GitHub Copilot Integration: Quickly attach all files from a scope to GitHub Copilot Chat
- 📊 Visual Tree View: See all your scopes and their files in a dedicated sidebar
- ✏️ Easy Management: Add, remove, rename, and delete scopes through intuitive commands
Getting Started
Click on the Scoper icon (📚) in the Activity Bar on the left side of VS Code, or use the Command Palette to open the Scopes view.
2. Creating Your First Scope
Method 1: Using the Command Palette
- Press
Cmd+Shift+P (macOS) or Ctrl+Shift+P (Windows/Linux)
- Type "Scoper: Create Scope"
- Enter a name for your scope (e.g., "Authentication Feature")
Method 2: Using the Sidebar
- Click the + button in the Scopes view title bar
- Enter a scope name
3. Adding Files to Your Scope
Method 1: From Active Editor
- Open a file you want to add
- Press
Cmd+Shift+P / Ctrl+Shift+P
- Run "Scoper: Add File to Scope"
- The currently open file will be added to your active scope
Method 2: Using the Tree View
- Files are automatically added to the currently active scope (indicated by a checkmark icon)
4. Switching Between Scopes
Using Command Palette:
- Press
Cmd+Shift+P / Ctrl+Shift+P
- Run "Scoper: Select Scope"
- Choose from the list of available scopes
Using Tree View:
- Click the checkmark icon next to any scope to set it as active
Commands
All commands are accessible via the Command Palette (Cmd+Shift+P / Ctrl+Shift+P):
| Command |
Description |
Scoper: Create Scope |
Create a new scope with a custom name |
Scoper: Select Scope |
Switch to a different scope from a quick pick list |
Scoper: Add File to Scope |
Add the currently open file to the active scope |
Scoper: Go to File in Scope |
Quick pick menu to jump to any file in the active scope |
Scoper: Go to File in Scope by Index |
Jump to a file by its index (used internally by keybindings) |
Scoper: Add Scope Files to Chat |
Attach all files from the active scope to GitHub Copilot Chat |
Rename Scope |
Rename a scope (available from context menu) |
Delete Scope |
Permanently delete a scope and its file references |
Set as Active Scope |
Set a scope as the currently active one |
Remove from Scope |
Remove a file from its scope |
Keybindings
Scoper provides quick keyboard shortcuts to instantly jump to files in your active scope:
| Keybinding |
Action |
Alt+1 |
Open the 1st file in the active scope |
Alt+2 |
Open the 2nd file in the active scope |
Alt+3 |
Open the 3rd file in the active scope |
Alt+4 |
Open the 4th file in the active scope |
Alt+5 |
Open the 5th file in the active scope |
Alt+6 |
Open the 6th file in the active scope |
Alt+7 |
Open the 7th file in the active scope |
Alt+8 |
Open the 8th file in the active scope |
Alt+9 |
Open the 9th file in the active scope |
Alt+0 |
Open the 10th file in the active scope |
Note: Files are numbered in the order they appear in the Scopes tree view (top to bottom).
Scoper Tree View
The Scopes sidebar shows all your scopes and their files in a tree structure:
📚 SCOPES
✓ Authentication Feature (Active)
📄 login.ts
📄 auth.service.ts
📄 auth.controller.ts
📁 Bug Fix [#123](https://github.com/vyshar/scoper-vs-code/issues/123)
📄 user.model.ts
📁 Refactoring
📄 legacy-code.ts
📄 new-implementation.ts
Tree View Actions
Scope Actions (right-click on a scope or use inline icons):
- ✓ Set as Active: Makes this scope the active one
- ✏️ Rename: Change the scope name
- 🗑️ Delete: Remove the scope entirely (files remain in your workspace)
File Actions (right-click on a file):
- ✕ Remove from Scope: Remove the file from this scope (file remains in your workspace)
- Click to Open: Click any file to open it in the editor
Usage Examples
Example 1: Feature Development Workflow
1. Create scope: "User Dashboard Feature"
2. Add relevant files:
- dashboard.component.ts
- dashboard.service.ts
- dashboard.html
- dashboard.css
3. Use Alt+1, Alt+2, etc. to quickly navigate between these files
4. When done, create a new scope for your next task
Example 2: Bug Investigation
1. Create scope: "Bug [#456](https://github.com/vyshar/scoper-vs-code/issues/456) - Login Error"
2. Add files you're investigating:
- auth.middleware.ts
- login.controller.ts
- error.handler.ts
3. Use "Add Scope Files to Chat" to get AI assistance with all context
4. Delete scope once bug is fixed
Example 3: Code Review
1. Create scope: "PR Review - API Refactor"
2. Add all changed files from the pull request
3. Navigate through files systematically using keybindings
4. Keep scope until PR is merged
GitHub Copilot Integration
If you have GitHub Copilot installed, you can quickly add all files from your active scope to a chat conversation:
- Ensure you have an active scope with files
- Run command: "Scoper: Add Scope Files to Chat"
- All files from the active scope will be attached to Copilot Chat
- Start asking questions about your entire context
This is perfect for getting AI assistance that understands the full context of your work.
Tips & Best Practices
- Keep scopes focused: Create separate scopes for different tasks rather than one large scope
- Use descriptive names: Name scopes by feature, bug number, or task (e.g., "API Refactor", "Bug #123")
- Leverage keybindings: Memorize the positions of your most-used files for fastest navigation
- Clean up regularly: Delete scopes when tasks are complete to keep your workspace organized
- One active scope: Only one scope can be active at a time - this is where new files are added
Troubleshooting
Q: Files don't open when I press Alt+1
- Ensure you have an active scope selected (look for the ✓ checkmark in the tree view)
- Make sure the scope has files added to it
Q: "No active scope" message appears
- Create a new scope or select an existing one using "Scoper: Select Scope"
Q: File paths show as invalid
- If you've moved or deleted files in your workspace, remove them from the scope using the ✕ icon
Q: Can't add file to scope
- Ensure a file is currently open in the editor
- Verify that you have an active scope selected
Requirements
- VS Code version 1.108.1 or higher
- (Optional) GitHub Copilot for chat integration features
Known Issues
- Files that are moved or renamed in the workspace must be manually removed and re-added to scopes
- The extension currently supports up to 10 files per scope for keybinding navigation (Alt+1 through Alt+0)
Release Notes
0.0.1
Initial release of Scoper:
- Create and manage multiple scopes
- Add/remove files from scopes
- Quick navigation with Alt+1-0 keybindings
- GitHub Copilot Chat integration
- Persistent scope storage across sessions
- Tree view for visual scope management
Enjoy using Scoper! If you have feedback or feature requests, please open an issue on GitHub.