{"id":38514883,"url":"https://github.com/claui/vscode-taskwarrior","last_synced_at":"2026-01-17T06:27:23.318Z","repository":{"id":40410052,"uuid":"487042192","full_name":"claui/vscode-taskwarrior","owner":"claui","description":"VS Code extension to manage Taskwarrior tasks","archived":false,"fork":false,"pushed_at":"2023-07-19T14:22:10.000Z","size":4594,"stargazers_count":9,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-02T02:18:22.015Z","etag":null,"topics":["syntax-highlighting","task-management","taskwarrior","visual-studio-code","visual-studio-code-extension","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=claui.taskwarrior","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/claui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-29T16:35:39.000Z","updated_at":"2024-05-02T02:18:22.016Z","dependencies_parsed_at":"2022-09-15T22:30:18.925Z","dependency_job_id":null,"html_url":"https://github.com/claui/vscode-taskwarrior","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/claui/vscode-taskwarrior","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claui%2Fvscode-taskwarrior","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claui%2Fvscode-taskwarrior/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claui%2Fvscode-taskwarrior/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claui%2Fvscode-taskwarrior/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/claui","download_url":"https://codeload.github.com/claui/vscode-taskwarrior/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claui%2Fvscode-taskwarrior/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28502269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["syntax-highlighting","task-management","taskwarrior","visual-studio-code","visual-studio-code-extension","vscode","vscode-extension"],"created_at":"2026-01-17T06:27:22.659Z","updated_at":"2026-01-17T06:27:23.304Z","avatar_url":"https://github.com/claui.png","language":"TypeScript","readme":"# vscode-taskwarrior\n\nThis is the source code repository for the `taskwarrior` VS Code\nextension.\n\nThis document is for **contributors,** not for users of this\nextension.  \nFor **user documentation,** see: [extension/README.md](./extension/README.md)  \nFor **license information,** see the bottom of this document.\n\n## About the extension\n\nThis VS Code extension provides syntax highlighting for Taskwarrior’s `task edit` command.\n\nFor more features and details, see the user documentation:\n[extension/README.md](./extension/README.md)\n\n## Requirements for contributing\n\nWorking on this VS Code extension requires the following programs to\nbe installed on your system:\n\n- `yarn` (required)\n- `nvm` (recommended)\n\n## Preparing your session\n\nTo prepare your session, `cd` to the project root directory, then\nrun `nvm use`.\n\n## Installing dependencies\n\nTo install dependencies, run: `yarn install`\n\nIf that fails, consult the _Maintenance_ section.\n\n## Building the extension\n\nTo build the extension, run: `yarn package`\n\nUnlike `vsce package`, running `yarn package` will work around issue\n[microsoft/vscode-vsce#517](https://github.com/microsoft/vscode-vsce/issues/517).\nUse `yarn package` as long as the issue is unresolved.\n\n## Publishing the extension\n\nPublishing the extension has several steps:\n\n1. Merge the contributions.\n2. Choose a target version number.\n3. Publish to the Marketplace. (This modifies `extension/package.json`.)\n4. Publish to the Open VSX Registry.\n5. Create a Git commit, Git tag, GitHub prerelease and GitHub PR.\n\n### Merging the contributions\n\nMake sure that all the contributions you’re going to have in the\nrelease have been merged to the `main` branch.\n\n### Choosing a target version number\n\nWith all contributions merged into `main`, choose a target version\nnumber.  \n[The VS Code folks recommend](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#prerelease-extensions)\nthe following numbering scheme:\n\n- `major.ODD_NUMBER.patch` (e.g. 1.1.0) for **pre-release** versions; and\n- `major.EVEN_NUMBER.patch` (e.g. 1.2.0) for **release** versions.\n\n### Publishing to the Marketplace\n\nAfter deciding on a target version, run:\n\n- `git checkout main`\n- `yarn login`\n- `yarn publish-vsce [--pre-release] [version]`\n\nThe `yarn publish-vsce` command first updates the version number in\n[extension/package.json](./extension/package.json) to the given\nversion. Then it packages and publishes the extension to the VS Code\nExtension Marketplace.\n\n### Publishing to the Open VSX Registry\n\nFollow these steps to publish the extension to the Open VSX Registry:\n\n1. Set the `OVSX_PAT` environment variable to your personal access\n   token.\n\n   For example, if you’re on Bash and you have your token in\n   1Password, you could run the following command line:\n\n   ```bash\n   read -r OVSX_PAT \u003c \u003c(\n     op item get 'Open VSX Registry' --fields password\n   ) \u0026\u0026 export OVSX_PAT\n   ```\n\n2. Make sure you have published the extension to the VS Code\n   Extension Marketplace. This ensures that the version number has\n   been updated and that a `.vsix` file has been generated.\n\n3. Run the `yarn ovsx publish` command with the correct\n   `extension/[…].vsix` file as the sole argument. Example in Bash:\n\n   ```bash\n   yarn ovsx publish \"extension/taskwarrior-$(jq -r .version extension/package.json).vsix\"\n   ```\n\n### Committing, tagging and creating a GitHub prerelease and PR\n\nWith the extension now published on the Marketplace, commit the\nchange, create a tag, push, cut a GitHub (pre-)release, and create a\npull request against `main`:\n\n```bash\n(\n  set -eux\n  git checkout -b publish\n  tag=\"$(jq -r '\"v\" + .version' extension/package.json)\"\n  echo \"New tag: ${tag}\"\n  git add -u\n  git commit --edit -m \"Release ${tag}\"\n  git tag \"${tag}\"\n  git push --tags\n  gh release create --generate-notes --prerelease \"${tag}\"\n  gh pr create --fill --web\n)\n```\n\n## Maintenance\n\n### yarn install\n\nTo install the current project dependencies as specified in\n`package.json` and `yarn.lock`, run `yarn install`.\n\n### yarn clean-install\n\nIf the Yarn version has changed and you run `yarn install`, Yarn\nwill try to upgrade itself. That causes changes to several files,\nsuch as the `LICENSE` files I have placed into several\nsubdirectories.\n\nAnytime that happens, run the `yarn clean-install` script, a wrapper\naround `yarn install` which cleans up afterwards.\n\nNote that the `yarn clean-install` script may fail and tell you to\nrun `yarn install` instead. I haven’t figured out why it does that.\nIf that happens, run `yarn install` followed by `yarn clean-install`.\n\n### yarn outdated\n\nTo see a list of outdated packages, run: `yarn outdated`\n\n### yarn upgrade-lockfile\n\nThis runs `yarn up -R '**' \u0026\u0026 yarn clean-install` behind the scenes\nin order to upgrade all resolutions in the lockfile as far as\npossible, but leaves your `package.json` as is.\n\n### yarn upgrade-packages\n\nThe built-in `yarn up` command can be a bit cumbersome to use if you\nwant to upgrade all dependencies in one go.\n\nRunning the `yarn upgrade-packages` script will upgrade all relevant\ndependencies. That includes the `@types`, `@typescript-eslint`, and\n`@yarnpkg` scopes but excludes Yarn itself (see the\n`yarn upgrade-yarn-itself` section).\n\nAlso excluded is the `@types/vscode` package. For details, see\nsection _Upgrading the VS Code API_.\n\n### yarn upgrade-yarn-itself\n\nTo upgrade Yarn PnP to the latest available version, run the\n`yarn upgrade-yarn-itself` script.\n\nNote that the script will only print manual instructions. That’s\nbecause Yarn makes changes to `package.json`, and that doesn’t play\nwell with Yarn PnP in scripts.\n\n### yarn upgrade-all\n\nTo also upgrade Yarn itself, run `yarn upgrade-all`.\n\n### Upgrading the VS Code API version\n\nUpgrading the version of the `@types/vscode` package should always\nbe a manual step and a conscious decision. It effectively bumps the\nminimum supported VS Code version that this extension supports.\n\nTo bump the minimum supported VS Code version, follow these steps:\n\n1. In `package.json`, manually update the minimum version to a new\n   version tuple (e.g. `=1.99`).  \n   Make sure to preserve the `=` prefix as you change the value.\n\n2. In `package.json`, modify the `upgrade-package` script to update\n   the same tuple (e.g `@types/vscode@=1.99`).  \n   Preserve the `@types/vscode@=` prefix as you change the value.\n\n3. In `extension/package.json` under the `engines` section, manually\n   update the value of the `vscode` property to the chosen version.\n   Since `vsce` expects a triple for that property, append a `.0`.  \n   Preserve the `^` prefix as you change the value.\n\n4. Run `yarn clean-install`.\n\n## Patching dependencies\n\nSometimes you may want to tweak a dependency. This section explains how to do that using `yarn patch`.\n\n### Start editing\n\nTo start editing a dependency, run `yarn patch \u003cdependency\u003e`.\n\nFor example, to start editing the `vsce` executable, run:\n\n```shell\nyarn patch @vscode/vsce@npm:2.17.0\n```\n\nSince this project is already patching this dependency, you may want to apply the existing patch to the temporary working directory:\n\n```shell\npatch \u003c path/to/this/project/.yarn/patches/@vscode-vsce-npm-2.17.0-c171711221.patch\n```\n\n### Finish editing\n\nTo commit the patch, run `yarn repatch -- \u003cworkdir\u003e`.\n\nFor example, if the temporary working directory is `/tmp/xfs-36e26fe6/user`, run:\n\n```shell\nyarn repatch -- /tmp/xfs-36e26fe6/user\n```\n\nNote: `yarn repatch` is a custom script. It serves to work around two issues in `yarn patch-commit`:\n\n- Using bare `yarn patch-commit` would create a nested patch while amending the patch is what I actually want.\n\n- It may also use an incorrect key in the resolution entry it writes to `package.json`.  \n  The key should match the dependency’s semver expression, not the resolved version.\n  Using the latter as a key causes the resolution to never apply.  \n  Example for a correct key: `\"@vscode/vsce@^2.17.0\"`\n\n## Handling vulnerable dependencies\n\n### The thing about vulnerabilities in transitive dependencies\n\nPeople sometimes discover vulnerabilities in packages on which\nvscode-taskwarrior depends.\n\nIf that happens and a patch comes out, I need to upgrade the\naffected package to a newer version, which includes the patch.\n\nBut a vulnerability might also affect a package on which\nvscode-taskwarrior depends only indirectly, e.g. through a\ntransitive requirement. A patch may exist for such a package, but\nsomewhere in the chain of dependencies (from the vulnerable package\nall the way down to vscode-taskwarrior), the patch may be\noutside the specified semver range so I **can’t upgrade** the\npackage via the usual `yarn up` or `yarn up -R` command.\n\n### Dealing with the risk\n\nIf such cases arise, I’m going to try force-upgrading affected\npackages, and document those upgrades in the section\n_List of force-upgraded transitive dependencies_ below.  \nEven if the upgrade happens to fail (or if it breaks the app and I\nhave to roll back the upgrade, leaving the vulnerability unpatched),\nI’m also going to document that failure here.\n\n## List of force-upgraded transitive dependencies\n\nThe goal of this list is:\n\n- to document the drift between version requirements (in the tree\n  of `package.json` files) and the resolutions in `yarn.lock`; and\n\n- to inform about unpatched vulnerabilities.\n\n\u003c!-- Remove this line when adding the first entry: --\u003eNo entries yet.\n\n\u003c!--\nI have preserved the order in which I have applied the upgrades.\nThe list starts with the first upgrade and ends with the latest one.\n--\u003e\n\n\u003c!--\n### Vulnerability in …………, dependency of ………… v…………\n\nI have manually bumped `…………`’s dependency `…………` to\nv………… in order to bump the transitive dependency `…………` to v…………:\n\n```shell\nyarn set resolution --save …………@npm:………… …………\n```\n\n(Remove this section once an upgrade to `…………` is available\nthat depends on ………… v………… or higher.)\n--\u003e\n\n## See also\n\n- [TextMate language grammars](https://macromates.com/manual/en/language_grammars)\n- Default themes\n  [dark_vs](https://github.com/microsoft/vscode/blob/main/extensions/theme-defaults/themes/dark_vs.json)\n  and\n  [dark_plus](https://github.com/microsoft/vscode/blob/main/extensions/theme-defaults/themes/dark_plus.json)\n  as references on how VS Code renders grammar scopes.\n\n## License\n\nThis source code repository contains code and assets sourced from\ndifferent parties. Therefore, multiple sets of license terms apply\nto different parts of this source code repository.\n\nThe following table shows which terms apply to which parts of this\nsource code repository:\n\n| Directory tree | Description | License | Terms |\n|---|---|---|---|\n| `.` | This directory | Apache-2.0 | [License](./LICENSE)\u003cbr\u003ewith License header below |\n| `./.yarn/releases` | The `yarn` package manager | BSD-2-Clause | [License](./.yarn/releases/LICENSE) |\n| `./.yarn/sdks` | SDK files for `yarn` | BSD-2-Clause | [License](./.yarn/sdks/LICENSE) |\n| `./extension` | The source code for this VS Code extension | Apache-2.0 | [License](./extension/LICENSE.txt)\u003cbr\u003ewith [License header](./extension/README.md#license) |\n\nIn each of the directories the table mentions, you will find one\nlicense file, named `LICENSE` or `LICENSE.txt`.  \nEach license file applies to the directory that contains it,\nincluding all subdirectories, but excluding any subdirectory tree\nwhose root has a license file on its own.\n\n## License header\n\nCopyright (c) 2022 Claudia Pellegrino\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nFor a copy of the License, see [LICENSE](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaui%2Fvscode-taskwarrior","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclaui%2Fvscode-taskwarrior","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaui%2Fvscode-taskwarrior/lists"}