diff --git a/ARTWORK-PROVENANCE.md b/ARTWORK-PROVENANCE.md new file mode 100644 index 0000000..6cc470c --- /dev/null +++ b/ARTWORK-PROVENANCE.md @@ -0,0 +1,34 @@ +# Better Todo Tree artwork provenance + +## Primary artwork + +Better Todo Tree's logo and primary icon system are original project artwork. The system was +constructed as flat vector geometry for Better Todo Tree and contains no traced paths, embedded +raster sources, gradients, shadows, filters, or font-rendered text. + +| Element | Geometry | +| --- | --- | +| Tree | Broad canopy, circular foliage, split trunk, and roots | +| Upper badge | Circular ring containing a checkmark | +| Lower badge | Equal-size circular ring containing two plus signs | +| Marketplace icon | 128 x 128 RGBA PNG rendered from the vector master | +| Activity Bar icon | 24 x 24 monochrome SVG | +| Product icon | U+EA01 TrueType outline stored in WOFF | + +In the 128 x 128 master, both badge circles have outer radius 18 and inner radius 14. The 24 x 24 +companions preserve the equal-badge composition with outer radius 4. + +## Source files + +| File | Role | +| --- | --- | +| `resources/better-todo-tree.png` | Marketplace raster icon | +| `resources/better-todo-tree-logo.svg` | Full-color vector master | +| `resources/better-todo-tree-container.svg` | Activity Bar vector icon | +| `resources/product-icons/better-todo-tree.svg` | Product-icon vector source | +| `resources/product-icons/better-todo-tree.woff` | Packaged product-icon font | + +## Unchanged third-party artwork + +Toolbar, tree-view, tag, and reveal icons retain their existing attribution in `README.md` and +`resources/icons/license.txt`. diff --git a/README.md b/README.md index d570b5d..9d42407 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # Better Todo Tree -**The actively maintained, extremely fast, drop-in replacement fork of Todo Tree.** +**An independent, actively maintained fork of Todo Tree for VS Code: the familiar workflow, major new features, active fixes, benchmarked speedups of 696+ folds, modern compatibility.** -Todo Tree is THE visual map I rely on to track every scattered issue across projects. When upstream stopped being maintained, new and existing bugs 🐛 took root and started choking the extension. Before it became firewood 🪵, I took over to modernize the core, clear the rot, and make it lightning fast ⚡. +> **Independent fork:** Better Todo Tree is independently maintained and published by **FanaticPythoner**. It is based on the open-source [Todo Tree](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree) project and is **not affiliated with, endorsed by, or published by Gruntfuggly**. + +Todo Tree was THE visual map I relied on to track every scattered issue across projects. When the upstream project stopped receiving updates, new and existing bugs took root and started choking the extension. Before it became firewood 🪵, I created Better Todo Tree as an independent fork to modernize the core, clear the rot, and make it lightning fast ⚡. **Made TODO rescans 51.4X faster (so you don't have time to feel guilty for not fixing them... 🥀)** @@ -23,8 +25,8 @@ Todo Tree is THE visual map I rely on to track every scattered issue across proj **Why this fork exists** - * **Drop-in Ready 🤝:** Zero friction. Same workflow. Same exact settings. - * **Bulletproof Fixes 🛡️:** Notebook behavior, scan parity, strict regex handling, and modern VS Code compatibility actually move forward. + * **Migration Ready 🤝:** Familiar workflow. Existing Todo Tree settings remain supported and are imported into Better Todo Tree's own settings namespace. + * **Major Features & Bulletproof Fixes 🛠️:** Complete notebook scanning, embedded Vue/Svelte/Astro support, scan parity, strict regex handling, major performance improvements, and modern VS Code compatibility. * **Alive & Active 💖:** Keeping this project alive takes a lot of time and, predictably, more coffee than I'd like to admit (caffeine or rent? Who knows what it will be next week 💀 #tariffs). If you're in the same boat: `// TODO: buy the Better Todo Tree guy a coffee` ☕ → [buymeacoffee.com/FanaticPythoner](https://buymeacoffee.com/FanaticPythoner) @@ -651,7 +653,7 @@ Better Todo Tree keeps reading legacy `todo-tree.*` settings and imports them in Uses a modified version of [ripgrep-js](https://www.npmjs.com/package/ripgrep-js). -Main icons originally made by [Freepik](http://www.freepik.com) from [www.flaticon.com](https://www.flaticon.com/) is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/) +Better Todo Tree's logo and primary iconography are original project artwork. See [ARTWORK-PROVENANCE.md](ARTWORK-PROVENANCE.md). Tree view icons made by [Vaadin](https://www.flaticon.com/authors/vaadin) from [www.flaticon.com](https://www.flaticon.com/) is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/) diff --git a/package.json b/package.json index 3be1783..827034c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "better-todo-tree", "displayName": "Better Todo Tree", - "description": "The maintained successor to Todo Tree for VS Code: same workflow, active fixes, better compatibility, and ongoing improvements.", + "description": "An independent, actively maintained fork of Todo Tree for VS Code: the familiar workflow, major new features, active fixes, benchmarked speedups of 696+ folds, modern compatibility.", "keywords": [ "todo", "todos", diff --git a/resources/better-todo-tree-container.svg b/resources/better-todo-tree-container.svg index 9ca5cc3..ecdba5f 100755 --- a/resources/better-todo-tree-container.svg +++ b/resources/better-todo-tree-container.svg @@ -1,7 +1,23 @@ - - - - - - + + diff --git a/resources/better-todo-tree-logo.svg b/resources/better-todo-tree-logo.svg new file mode 100644 index 0000000..f2529db --- /dev/null +++ b/resources/better-todo-tree-logo.svg @@ -0,0 +1,55 @@ + + + Better Todo Tree + A broad flat green tree with layered foliage, a split trunk and roots, and two equal-size circular status badges stacked vertically: a checkmark above and two plus signs below. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/better-todo-tree.png b/resources/better-todo-tree.png index 1e27c35..6388b43 100644 Binary files a/resources/better-todo-tree.png and b/resources/better-todo-tree.png differ diff --git a/resources/product-icons/better-todo-tree.svg b/resources/product-icons/better-todo-tree.svg new file mode 100644 index 0000000..c64524d --- /dev/null +++ b/resources/product-icons/better-todo-tree.svg @@ -0,0 +1,23 @@ + + diff --git a/resources/product-icons/better-todo-tree.woff b/resources/product-icons/better-todo-tree.woff index e3d0514..fe63c6a 100644 Binary files a/resources/product-icons/better-todo-tree.woff and b/resources/product-icons/better-todo-tree.woff differ diff --git a/resources/screenshot.png b/resources/screenshot.png index 7616d83..ad609df 100644 Binary files a/resources/screenshot.png and b/resources/screenshot.png differ diff --git a/test/package.manifest.test.js b/test/package.manifest.test.js index eabbd5c..7abba78 100644 --- a/test/package.manifest.test.js +++ b/test/package.manifest.test.js @@ -13,6 +13,38 @@ function readPackageNls( fileName ) return JSON.parse( fs.readFileSync( path.join( __dirname, '..', fileName ), 'utf8' ) ); } +function readRepositoryFile( fileName ) +{ + return fs.readFileSync( path.join( __dirname, '..', fileName ) ); +} + +function occurrenceCount( text, value ) +{ + return text.split( value ).length - 1; +} + +function circleRadii( svg, centerX, centersY ) +{ + var radii = []; + + centersY.forEach( function( centerY ) + { + var marker = '