Skip to content

Repository files navigation

hav Task List

hav Task List is a VS Code extension that scans workspace files for TODO-style task tags and shows them in a dedicated tree view.

Scan workspace files for task tags, view matches by folder, tag, or flat list, and jump straight to the source line.

hav Task List icon

Table of Contents

Features

  • Scans workspace files for TODO, FIXME, HACK, BUG, NOTE, and custom regex tags
  • Shows tasks in a dedicated hav Task List Activity Bar view
  • Shows tasks by folder/file hierarchy, by tag, or as a flat list
  • Sorts task entries by file position, severity, tag, or task text
  • Filters the task tree without changing diagnostics or scan results
  • Supports ignore comments for intentional local exceptions
  • Tests configured or custom rules against the active editor
  • Provides tree actions for refresh, task navigation, grouping, sorting, filtering, expand, and collapse
  • Opens tasks directly at the matching source range
  • Shows optional diagnostics in the Problems view
  • Highlights task tags in visible editors using rule colors
  • Shows task counts in the Status Bar
  • Automatically rescans when files or settings change
  • Supports English and German UI strings

Screenshots

Task list workflow with tree, editor highlights, Problems entries, and Go to Task

Task list workflow with tree, editor highlights, Problems entries, and Go to Task.

Editor highlights with matching Problems entries

Editor highlights with matching Problems entries.

Default Tags

Rule Severity Color Purpose
todo info charts.blue General follow-up work
fixme warning charts.yellow Known code or content to fix
hack warning charts.orange Temporary or suspicious code
bug error charts.red Known defect marker
note info charts.green Useful implementation note

The default rules scan common code, config, script, and Markdown-like files. Their default file filter matches files ending in .js, .jsx, .ts, .tsx, .vue, .svelte, .c, .cc, .cpp, .cxx, .h, .hpp, .hh, .hxx, .cs, .csx, .py, .rb, .php, .go, .rs, .java, .kt, .kts, .swift, .m, .mm, .scala, .sh, .bash, .zsh, .fish, .ps1, .psm1, .sql, .html, .css, .scss, .less, .md, .mdx, .json, .jsonc, .yaml, .yml, .toml, .ini, .cmake, .gradle, or .dockerfile.

Default rules are meant for real task entries in code comments, scripts, and Markdown lists. Plain references to tag names are ignored.

Files larger than havTaskList.maxFileSizeKb, files containing null bytes, and common generated folders are skipped by default.

Commands

  • hav Task List: Refresh Tasks
  • hav Task List: Go to Task
  • hav Task List: Group by File
  • hav Task List: Group by Tag
  • hav Task List: Show Flat View
  • hav Task List: Sort Tree
  • hav Task List: Filter Tree
  • hav Task List: Clear Tree Filter
  • hav Task List: Expand Tree
  • hav Task List: Collapse Tree
  • hav Task List: Test Rule

The Activity Bar view also includes compact title bar buttons for refresh, task navigation, grouping, sorting, filtering, expand, and collapse.

VS Code Settings

{
  "havTaskList.autoScan": true,
  "havTaskList.debounceMs": 250,
  "havTaskList.groupBy": "file",
  "havTaskList.sortBy": "filePosition",
  "havTaskList.ignoreFileDirectiveTopLines": 50,
  "havTaskList.maxFileSizeKb": 512,
  "havTaskList.showDiagnostics": true,
  "havTaskList.showEditorHighlights": true,
  "havTaskList.includeGlobs": ["**/*"],
  "havTaskList.excludeGlobs": [
    "**/.git/**",
    "**/.hg/**",
    "**/.svn/**",
    "**/node_modules/**",
    "**/bower_components/**",
    "**/dist/**",
    "**/out/**",
    "**/build/**",
    "**/coverage/**",
    "**/.next/**",
    "**/.nuxt/**",
    "**/.turbo/**"
  ],
  "havTaskList.rules": [
    {
      "id": "todo",
      "label": "TODO",
      "pattern": "(?:^|\\s)(?://|#|<!--|/\\*|\\*|--|;|-)\\s*\\bTODO\\b(?::\\s*|\\s+)(.*)",
      "severity": "info",
      "color": "charts.blue",
      "filePattern": "\\.(ts|tsx|js|jsx|md)$"
    }
  ]
}

Rule Format

interface havTaskListRule {
  id: string;
  label?: string;
  pattern: string;
  severity: "off" | "info" | "warning" | "error";
  color?: string;
  filePattern?: string;
}

havTaskList.groupBy supports file, tag, and flat.

havTaskList.sortBy supports filePosition, severity, tag, and text.

pattern and filePattern are JavaScript regular expressions matched case-insensitively. filePattern is tested against the workspace-relative file path. The first capture group in pattern is used as the task text when present. severity: "off" disables a rule. color is a VS Code theme color ID used for tree icons and editor tag highlights, such as charts.blue, charts.orange, or charts.red.

Ignore Comments

Use ignore comments when a task tag is intentional text and should not appear in the tree, Problems view, editor highlights, Status Bar count, or Go to Task list.

Ignore one task on the same line:

// TODO: This is example text only. // hav-task-list-ignore-line

Ignore the next line:

// hav-task-list-ignore-next-line
// TODO: This documented example should not be reported.

Ignore the whole file:

// hav-task-list-ignore-file

// TODO: All task tags in this file are ignored.

Ignore directives must be inside comment-like lines, such as //, #, <!--, /*, *, --, or ;. hav-task-list-ignore-file is only honored in the first havTaskList.ignoreFileDirectiveTopLines lines. Set that value to 0 to disable file-level ignore directives.

Build From Source

git clone https://github.com/Havoc7891/hav-task-list.git
cd hav-task-list

npm install
npm run compile
npm run package

NOTE: The VSIX package is written to the repository root.

Run Tests

npm test

npm test compiles the extension and runs the unit tests for scanner ignore comments and task sorting.

Contributing

Thank you for your interest! Suggestions for features and bug reports are always welcome via issues.

To maintain a consistent design and quality for this extension, changes are implemented by the maintainer rather than via direct pull requests.

License

This extension is licensed under the MIT License.

About

A VS Code extension that scans workspace files for TODO-style task tags and shows them in a dedicated tree view.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages