Skip to content

Commit e8cf12d

Browse files
Release prep
1 parent 0b1b8a6 commit e8cf12d

8 files changed

Lines changed: 218 additions & 12 deletions

File tree

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
ci:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- uses: actions/setup-node@v4
16+
with:
17+
node-version: 20
18+
cache: npm
19+
20+
- run: npm ci
21+
22+
- name: Lint
23+
run: npm run lint
24+
25+
- name: Spell check
26+
uses: streetsidesoftware/cspell-action@v6
27+
with:
28+
files: "src/**/*.ts"
29+
30+
- name: Build
31+
run: npm run compile
32+
33+
- name: Unit tests
34+
run: npm run test:unit
35+
36+
- name: E2E tests
37+
run: xvfb-run -a npm run test:e2e

.github/workflows/deploy.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Deploy
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
publish:
8+
runs-on: ubuntu-latest
9+
if: github.ref == 'refs/heads/main'
10+
steps:
11+
- uses: actions/checkout@v4
12+
13+
- uses: actions/setup-node@v4
14+
with:
15+
node-version: 20
16+
cache: npm
17+
18+
- run: npm ci
19+
20+
- name: Build
21+
run: npm run compile
22+
23+
- name: Publish to Marketplace
24+
run: npx vsce publish --skip-duplicate
25+
env:
26+
VSCE_PAT: ${{ secrets.VSCE_PAT }}

.vscodeignore

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
11
.vscode/**
22
.vscode-test/**
3+
.venv/**
34
src/**
45
test-fixtures/**
6+
out/test/**
7+
node_modules/**
8+
scripts/**
9+
.too_many_cooks/**
10+
.claude/**
11+
.github/**
512
.gitignore
13+
.mocharc.json
14+
.vscode-test.mjs
15+
cspell.json
616
tsconfig.json
17+
eslint.config*
18+
icon.svg
19+
CLAUDE.md
20+
Claude.md
21+
SPEC.md
722
**/*.map
823
**/*.ts
924
**/*.bak
10-
node_modules/**
11-
.venv/**
25+
*.vsix

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Changelog
2+
3+
## 0.1.0 - Initial Release
4+
5+
### Features
6+
7+
- Automatic discovery of shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, and Python scripts
8+
- Unified tree view in the sidebar with collapsible categories
9+
- Folder-based grouping with nested directory hierarchy
10+
- Run tasks in a new terminal or the current terminal
11+
- Debug launch configurations directly from the tree
12+
- Quick Tasks panel for pinning frequently-used tasks
13+
- Tag system with pattern-based auto-tagging (by type, label, or exact ID)
14+
- Text filter and tag filter with toolbar controls
15+
- Configurable exclude patterns and sort order (folder, name, type)
16+
- File watcher for automatic refresh on config and script changes
17+
- Parameterized task support with input prompts

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Christian Findlay
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,31 @@ One sidebar. Every task in your workspace.
44

55
TaskTree scans your project and surfaces all runnable tasks in a single tree view: shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, and Python scripts. Filter by text or tag, run in terminal or debugger.
66

7+
## Features
8+
9+
- **Auto-discovery** - Shell scripts (`.sh`, `.bash`, `.zsh`), npm scripts, Makefile targets, VS Code tasks, launch configurations, and Python scripts
10+
- **Quick Tasks** - Pin frequently-used tasks to a dedicated panel at the top
11+
- **Tagging** - Auto-tag tasks by type, label, or exact ID using pattern rules in `.vscode/tasktree.json`
12+
- **Filtering** - Filter the tree by text search or by tag
13+
- **Run anywhere** - Execute in a new terminal, the current terminal, or launch with the debugger
14+
- **Folder grouping** - Tasks grouped by directory with collapsible nested hierarchy
15+
- **Parameterized tasks** - Prompt for arguments before execution
16+
- **File watching** - Automatic refresh when scripts or config files change
17+
18+
## Supported Task Types
19+
20+
| Type | Source |
21+
|------|--------|
22+
| Shell Scripts | `.sh`, `.bash`, `.zsh` files |
23+
| NPM Scripts | `package.json` scripts |
24+
| Makefile Targets | `Makefile` / `makefile` targets |
25+
| VS Code Tasks | `.vscode/tasks.json` |
26+
| Launch Configs | `.vscode/launch.json` |
27+
| Python Scripts | `.py` files |
28+
729
## Getting Started
830

9-
Install from source:
31+
Install from the VS Code Marketplace, or from source:
1032

1133
```bash
1234
npm install
@@ -18,16 +40,38 @@ Open a workspace and the TaskTree panel appears in the sidebar. All discovered t
1840

1941
## Usage
2042

21-
- **Run a task** - Click it or use the play button
22-
- **Debug** - Click the bug button (launch configs only)
23-
- **Star a task** - Pin frequently-used tasks to Quick Tasks at the top
24-
- **Filter** - Use the toolbar to filter by text or tag
43+
- **Run a task** - Click the play button or right-click > "Run Task"
44+
- **Run in current terminal** - Right-click > "Run in Current Terminal"
45+
- **Debug** - Launch configurations run with the VS Code debugger
46+
- **Star a task** - Click the star icon to pin it to Quick Tasks
47+
- **Filter** - Use the toolbar icons to filter by text or tag
2548
- **Tag tasks** - Right-click > "Add Tag" to group related tasks
49+
- **Edit tags** - Configure auto-tagging patterns in `.vscode/tasktree.json`
50+
51+
## Settings
2652

27-
## Full Specification
53+
| Setting | Description | Default |
54+
|---------|-------------|---------|
55+
| `tasktree.excludePatterns` | Glob patterns to exclude from discovery | `**/node_modules/**`, `**/.git/**`, etc. |
56+
| `tasktree.sortOrder` | Sort tasks by `folder`, `name`, or `type` | `folder` |
57+
58+
## Tag Configuration
59+
60+
Create `.vscode/tasktree.json` to define tag patterns:
61+
62+
```json
63+
{
64+
"tags": {
65+
"build": [{ "type": "npm", "label": "build" }],
66+
"test": [{ "label": "test" }],
67+
"scripts": [{ "type": "shell" }],
68+
"quick": ["npm:/project/package.json:build"]
69+
}
70+
}
71+
```
2872

29-
See SPEC.md for complete details on task discovery, tagging, pattern syntax, parameterized tasks, settings, and data storage.
73+
Patterns match by `type`, `label`, exact `id`, or any combination.
3074

3175
## License
3276

33-
MIT
77+
[MIT](LICENSE)

cspell.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"version": "0.2",
3+
"language": "en",
4+
"ignorePaths": [
5+
"node_modules",
6+
"out",
7+
"coverage",
8+
"*.vsix",
9+
".vscode-test",
10+
"src/test/fixtures",
11+
"package-lock.json"
12+
],
13+
"words": [
14+
"tasktree",
15+
"nimblesite",
16+
"vsix",
17+
"vsce",
18+
"xvfb",
19+
"viewitem",
20+
"mocha",
21+
"lcov",
22+
"tsconfig",
23+
"devdependencies",
24+
"treeview",
25+
"vscodeignore",
26+
"activitybar",
27+
"taskfile",
28+
"powershell",
29+
"deno",
30+
"gradle",
31+
"maven",
32+
"cargo",
33+
"composer",
34+
"rakefile",
35+
"justfile",
36+
"dockercompose"
37+
]
38+
}

package.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,20 @@
66
"author": "Christian Findlay",
77
"license": "MIT",
88
"publisher": "nimblesite",
9+
"repository": {
10+
"type": "git",
11+
"url": "https://github.com/MelbourneDeveloper/TaskTree.git"
12+
},
13+
"homepage": "https://github.com/MelbourneDeveloper/TaskTree#readme",
14+
"bugs": {
15+
"url": "https://github.com/MelbourneDeveloper/TaskTree/issues"
16+
},
917
"engines": {
1018
"vscode": "^1.80.0"
1119
},
1220
"categories": [
13-
"Other"
21+
"Other",
22+
"Testing"
1423
],
1524
"keywords": [
1625
"tasks",
@@ -362,7 +371,7 @@
362371
"test:coverage": "vscode-test --coverage",
363372
"coverage:check": "c8 check-coverage --lines 90 --functions 90 --branches 90 --statements 90",
364373
"clean": "rm -rf node_modules out *.vsix coverage || true",
365-
"package": "npm run compile && vsce package --allow-missing-repository --skip-license",
374+
"package": "npm run compile && vsce package",
366375
"uninstall": "code --uninstall-extension nimblesite.tasktree || true",
367376
"install-ext": "code --install-extension tasktree-*.vsix",
368377
"build-and-install": "npm run clean && npm install && npm run uninstall && npm run package && npm run install-ext"

0 commit comments

Comments
 (0)