Yet Another TODO Highlighter (YATH)
Highlight and list TODO, FIXME, HACK, and other keywords in your code.
Features
- In-editor highlighting — configurable foreground and background colors per keyword
- Sidebar panel — activity bar panel listing all TODOs organized by keyword type
- Click-to-navigate — jump from any sidebar item to its exact source location
- Hierarchical config —
.todo-highlighter.json files merge from outer to inner directories, with inner values taking precedence and keywords deep-merged
- Include/exclude patterns — control which files are scanned with glob patterns
- Theme-aware UI — sidebar adapts to your VS Code color theme
Configuration
Create a .todo-highlighter.json file in your project root (or any parent directory):
{
"keywords": {
"TODO": { "foreground": "#ffff00", "background": "#ffff0022" },
"FIXME": { "foreground": "#ff1493", "background": "#ff149322" },
"HACK": { "foreground": "#ff8c00", "background": "#ff8c0022" }
},
"includePattern": "**/*.{ts,js,svelte,py,go,rs}",
"excludePattern": "**/node_modules/**",
"debounceDelay": 200
}
Config fields
| Field |
Type |
Required |
Description |
keywords |
Record<string, { foreground, background }> |
yes |
Keywords to highlight with their colors |
includePattern |
string |
yes |
Glob pattern for files to scan |
excludePattern |
string |
no |
Glob pattern for files to exclude |
debounceDelay |
number |
no |
Milliseconds to debounce decoration updates (default: 200) |
Config merging
Config files are searched from the current file's directory up to the filesystem root. When multiple .todo-highlighter.json files are found:
- Scalar fields (
includePattern, excludePattern, debounceDelay) from inner configs override outer ones
keywords objects are deep-merged — inner keyword entries override outer ones with the same name, and unique keywords from both levels are preserved
Requirements
VS Code 1.106.0 or later.
License
MIT