✅ Todo Checklist for VS Code
A simple and powerful Todo Checklist extension for VS Code, allowing you to manage tasks directly from the Activity Bar Sidebar.
✨ Features
- 📌 Add tasks quickly (
Ctrl + Shift + T)
- ✅ Toggle tasks via checkbox
- 🗑 Delete tasks from context menu
- 🔥 Priority support:
- High (red icon)
- Medium (yellow icon)
- Low (green icon)
- 🏷 Add tags like
@work, @home
- 💾 Auto-save tasks in global storage
- 🎨 Works in Dark & Light themes
- ⚡ Fast, lightweight, no extra dependencies
- 🔍 Enhanced TODO Scanner:
- Lazy scan with incremental updates: Results appear in real-time as files are scanned
- Re-scan button: Manual refresh button (🔄) in TODO Scanner view to trigger full re-scan
- Scans entire workspace without file limits
- Smart pattern matching: Only scans keywords with
@ prefix, : suffix, or exact whole word "TODO"
- Detects:
@TODO, TODO:, TODO (whole word), @FIXME, FIXME:, @CHECK, CHECK:, and more
- Smart debouncing to prevent excessive scanning
- Automatic exclusions: Always excludes
.vscode folder, .log and .md files
- 📋 TODO Scope Configuration: Configure include/exclude patterns for TODO scanning
- Edit individual patterns directly from TODO Scope view
- Right-click on any pattern to edit or delete
🚀 Usage
- Open VS Code
- Open the Activity Bar, click on Todo Checklist icon
- Add a new task:
- Click ➕ Add Task on top bar
- Or use
Ctrl + Shift + T
- Toggle or delete tasks using the context menu
🔑 Commands
| Command |
Shortcut |
Description |
Todo Checklist: Add Task |
Ctrl + Shift + T |
Add a new task |
| Toggle Task |
— |
Toggle checkbox state |
| Delete Task |
— |
Remove a task |
🛠 Requirements
- VS Code v1.75.0 or later
- Works on Windows, macOS, Linux, and WSL
⚙ Settings
Task Management
Tasks are stored in global storage and persist across sessions.
TODO Scanner Configuration
Configure TODO scanning patterns in VS Code settings:
todoChecklist.todo.include: Glob patterns to include when scanning TODOs (default: ["**/*"])
todoChecklist.todo.exclude: Glob patterns to exclude from TODO scanning (default: ["**/{node_modules,.git,out,dist,build,.next,.yarn}/**", "**/*.log", "**/*.md"])
Note: The extension automatically excludes .vscode folder and .log/.md files by default, even if not specified in exclude patterns.
Example Configuration
{
"todoChecklist.todo.include": ["src/**/*.ts", "src/**/*.js", "**/*.md"],
"todoChecklist.todo.exclude": ["**/node_modules/**", "**/dist/**", "**/*.test.ts"]
}
Supported TODO Patterns
The scanner uses smart pattern matching to detect TODO comments. It only matches:
- Keywords with
@ prefix: @TODO, @FIXME, @CHECK, @NOTE, @HACK, @XXX, @BUG, @FIX, @TASK, @ISSUE, @TBD, @OPTIMIZE, @REFACTOR, @REVIEW
- Keywords with
: suffix: TODO:, FIXME:, CHECK:, NOTE:, HACK:, XXX:, BUG:, FIX:, TASK:, ISSUE:, TBD:, OPTIMIZE:, REFACTOR:, REVIEW: (with optional space before :)
- Exact whole word "TODO":
TODO as a complete word (match whole word like VS Code search)
Examples that will be detected:
// @TODO fix this
// TODO: important task
// TODO : with space
/* TODO fix bug */
# @FIXME: broken code
Examples that will NOT be detected:
function todoSomething() - "todo" is part of a word
const check = true - "check" is code, not a comment keyword
TODO in code without comment markers
This prevents false positives from keywords appearing in regular code.
📝 TODO Scanner
The extension includes a powerful TODO scanner that:
- Lazy scan: Displays results incrementally as files are scanned (no need to wait for complete scan)
- Re-scan button: Click the refresh button (🔄) in the TODO Scanner view title to manually trigger a full re-scan
- Scans your entire workspace for TODO comments
- Displays all found TODOs in the sidebar with real-time updates
- Automatically refreshes when files change (with smart debouncing - 500ms delay)
- Allows you to configure which files to scan via include/exclude patterns
- Pattern editing: Right-click on any pattern in TODO Scope view to edit or delete
- Click on any TODO item to jump to its location in the code
- Performance optimized: Batch processing (50 files per batch) with concurrent file processing (10 files at a time)
| |