{"id":31656410,"url":"https://github.com/georgeharker/comment-tasks.nvim","last_synced_at":"2025-10-29T02:01:58.755Z","repository":{"id":316654904,"uuid":"1064318658","full_name":"georgeharker/comment-tasks.nvim","owner":"georgeharker","description":"Add tasks to clickup from code","archived":false,"fork":false,"pushed_at":"2025-09-26T07:21:12.000Z","size":47,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-26T09:24:56.130Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/georgeharker.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T21:23:22.000Z","updated_at":"2025-09-26T07:21:16.000Z","dependencies_parsed_at":"2025-09-26T09:25:04.372Z","dependency_job_id":"cc202dbc-da14-4396-a037-77a76df56af6","html_url":"https://github.com/georgeharker/comment-tasks.nvim","commit_stats":null,"previous_names":["georgeharker/clickup-comment-tasks.nvim","georgeharker/comment-tasks.nvim"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/georgeharker/comment-tasks.nvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgeharker%2Fcomment-tasks.nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgeharker%2Fcomment-tasks.nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgeharker%2Fcomment-tasks.nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgeharker%2Fcomment-tasks.nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/georgeharker","download_url":"https://codeload.github.com/georgeharker/comment-tasks.nvim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgeharker%2Fcomment-tasks.nvim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278786685,"owners_count":26045591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-10-07T14:11:41.831Z","updated_at":"2025-10-29T02:01:58.748Z","avatar_url":"https://github.com/georgeharker.png","language":"Lua","readme":"# Comment Tasks\n\nA universal Neovim plugin that bridges **10+ task management systems** with code comments across multiple programming languages. Create, update, and manage tasks directly from your comments without leaving your editor.\n\n## 🚀 Features\n\n\u003e **Manage tasks from code without losing focus. Maintain task references in code.**\n\nTransform your TODO comments into actionable tasks across 10+ platforms while keeping task URLs embedded in your codebase for perfect traceability.\n\n- **🔗 Universal Multi-Provider Support**: Works with 10+ task management systems\n- **🎯 Custom Status System**: Configurable workflows for each provider\n- **🌍 Multi-Language Support**: Works with 15+ programming languages using Tree-sitter\n- **✨ Smart Comment Detection**: Handles single-line, block comments, and docstrings\n- **🔄 Intelligent URL Insertion**: Context-aware URL placement\n- **⚡ Unified Command Interface**: Same commands work across all providers\n- **📁 File Reference Management**: Structured file associations with tasks\n- **🧹 Comment Prefix Trimming**: Automatically clean TODO, FIXME, and other prefixes\n- **🎨 Language Override**: Force specific language detection when needed\n- **🔧 Modular Architecture**: Extensible system for easy provider addition\n\n## 📊 Supported Providers\n\n| Provider | Type | Custom Status | Bulk Operations | File References |\n|----------|------|---------------|-----------------|-----------------|\n| **🎯 [ClickUp](docs/providers/clickup.md)** | Full | ✅ | ✅ | ✅ |\n| **📋 [Asana](docs/providers/asana.md)** | Full | ✅ | ❌ | ✅ |\n| **⚡ [Linear](docs/providers/linear.md)** | Full | ✅ | ❌ | ✅ |\n| **🏢 [Jira](docs/providers/jira.md)** | Full | ✅ | ❌ | ✅ |\n| **📝 [Notion](docs/providers/notion.md)** | Full | ✅ | ❌ | ✅ |\n| **📈 [Monday.com](docs/providers/monday.md)** | Full | ✅ | ❌ | ✅ |\n| **🐙 [GitHub Issues](docs/providers/github.md)** | Basic | ❌ | ❌ | ✅ |\n| **🦊 [GitLab Issues](docs/providers/gitlab.md)** | Basic | ❌ | ❌ | ✅ |\n| **📦 [Trello](docs/providers/trello.md)** | Basic | ❌ | ❌ | ✅ |\n| **✅ [Todoist](docs/providers/todoist.md)** | Basic | ❌ | ❌ | ✅ |\n\n**Full**: Complete workflow customization with any status names  \n**Basic**: Open/closed or list-based status management\n\n## 🌍 Supported Languages\n\nWorks with 15+ programming languages including:\n**Python** • **JavaScript/TypeScript** • **Lua** • **Rust** • **C/C++** • **Go** • **Java** • **Ruby** • **PHP** • **CSS** • **HTML** • **Bash** • **Vim Script** • **YAML** • **JSON**\n\n## 📦 Installation\n\n### Using [lazy.nvim](https://github.com/folke/lazy.nvim)\n\n```lua\n{\n    \"georgeharker/comment-tasks.nvim\",\n    dependencies = {\n        \"nvim-lua/plenary.nvim\", -- Required for HTTP requests\n    },\n    config = function()\n        require(\"comment-tasks\").setup({\n            default_provider = \"clickup\", -- Choose your preferred provider\n            \n            providers = {\n                clickup = {\n                    enabled = true,\n                    api_key_env = \"CLICKUP_API_KEY\",\n                    list_id = \"your_clickup_list_id\",\n                    statuses = {\n                        new = \"To Do\",\n                        in_progress = \"In Progress\",\n                        review = \"Code Review\", \n                        completed = \"Complete\",\n                    }\n                },\n                -- Add other providers as needed\n            },\n        })\n    end\n}\n```\n\n**Environment Setup**:\n```bash\nexport CLICKUP_API_KEY=\"your_api_key_here\"\n```\n\n📖 **Detailed Installation**: [docs/installation.md](docs/installation.md)\n\n## 🚀 Quick Start\n\n1. **Install** the plugin with your preferred package manager\n2. **Configure** your task management provider(s)\n3. **Set environment variables** for API authentication\n4. **Create tasks** from comments using commands\n\n### Example Workflow\n\n```python\n# TODO: Implement user authentication system\n# This needs proper validation and error handling\n```\n\nPlace cursor on the comment and run `:ClickUpTask new` → \n\n```python\n# TODO: Implement user authentication system  \n# This needs proper validation and error handling\n# https://app.clickup.com/t/task_id\n```\n\nUpdate task status as you progress:\n```vim\n:ClickUpTask in_progress  \" When you start working  \n:ClickUpTask review       \" When ready for code review\n:ClickUpTask close        \" When finished (uses completed status)\n```\n\n## ⚡ Core Commands\n\n### Provider-Specific Commands (Recommended)\n\n```vim\n\" ClickUp (Full custom status support)\n:ClickUpTask              \" Create task (default)\n:ClickUpTask create       \" Create task (explicit)\n:ClickUpTask in_progress  \" Update to 'In Progress' status\n:ClickUpTask close        \" Complete task (uses completed status)\n:ClickUpTask addfile      \" Add current file to task\n\n\" GitHub Issues (Basic support)\n:GitHubTask               \" Create issue (default)\n:GitHubTask create        \" Create issue (explicit)\n:GitHubTask close         \" Close issue\n:GitHubTask addfile       \" Add file reference\n\n\" Asana (Full custom status support)  \n:AsanaTask                \" Create task (default)\n:AsanaTask create         \" Create task (explicit)\n:AsanaTask blocked        \" Update to 'Blocked' status\n:AsanaTask close          \" Complete task\n:ClickUpTask review       \" Update to 'Code Review' status\n:ClickUpTask completed    \" Complete task\n:ClickUpTask addfile      \" Add current file to task\n\n\" GitHub Issues (Basic support)\n:GitHubTask new          \" Create issue\n:GitHubTask close        \" Close issue  \n:GitHubTask addfile      \" Add file reference\n\n\" Asana (Full custom status support)  \n:AsanaTask new           \" Create task\n:AsanaTask blocked       \" Update to 'Blocked' status\n:AsanaTask completed     \" Complete task\n```\n\n### Generic Commands (Uses default_provider)\n\n```vim\n:CommentTask new         \" Create task with default provider\n:CommentTask completed   \" Complete task with default provider\n:CommentTask             \" Create task with default provider (default)\n:CommentTask create      \" Create task with default provider (explicit)\n:CommentTask close       \" Complete task with default provider\n:CommentTaskAddFile      \" Add file reference with default provider\n```\n\n**Available commands are generated dynamically** from your status configuration.\n\n## ⚙️ Configuration\n\n### Basic Setup\n\n```lua\nrequire(\"comment-tasks\").setup({\n    default_provider = \"clickup\",  -- Provider for generic commands\n    \n    providers = {\n        clickup = {\n            enabled = true,\n            api_key_env = \"CLICKUP_API_KEY\",\n            list_id = \"123456789\",\n            statuses = {\n                new = \"To Do\",           -- Special: creates tasks\n                completed = \"Complete\",  -- Special: completes tasks\n                review = \"Code Review\",  -- Custom: creates :ClickUpTask review  \n                blocked = \"Blocked\",     -- Custom: creates :ClickUpTask blocked\n            }\n        }\n    }\n})\n```\n\n### Status System\n\nCommands are **automatically generated** from your status configuration:\n\n```lua\nstatuses = {\n    new = \"Backlog\",        -- → :ClickUpTask new (creates with \"Backlog\")\n    completed = \"Done\",     -- → :ClickUpTask completed (updates to \"Done\")  \n    review = \"In Review\",   -- → :ClickUpTask review (updates to \"In Review\")\n    testing = \"QA Testing\", -- → :ClickUpTask testing (updates to \"QA Testing\")\n}\n```\n\n📖 **Complete Configuration**: [docs/configuration.md](docs/configuration.md)\n\n## 📚 Documentation\n\n### Setup Guides\n- 📦 **[Installation Guide](docs/installation.md)** - Complete installation instructions\n- ⚙️ **[Configuration Reference](docs/configuration.md)** - All configuration options\n\n### Provider Guides\n- 🎯 **[ClickUp Setup](docs/providers/clickup.md)** \n- 📋 **[Asana Setup](docs/providers/asana.md)**\n- 🐙 **[GitHub Issues Setup](docs/providers/github.md)**\n- ⚡ **[Linear Setup](docs/providers/linear.md)**\n- 🏢 **[Jira Setup](docs/providers/jira.md)**\n- 📝 **[Notion Setup](docs/providers/notion.md)**\n- 📈 **[Monday.com Setup](docs/providers/monday.md)**\n- 📦 **[Trello Setup](docs/providers/trello.md)**\n- 🦊 **[GitLab Issues Setup](docs/providers/gitlab.md)**\n- ✅ **[Todoist Setup](docs/providers/todoist.md)**\n\n### Examples\n\n### Reference\n- 🔧 **[API Reference](docs/api-reference.md)** - Lua API \u0026 keybinding examples\n\n## 🔧 Keybinding Examples\n\n```lua\nvim.keymap.set(\"n\", \"\u003cleader\u003etcc\", function()\n    require(\"comment-tasks\").create_clickup_task_from_comment()\nend, { desc = \"Create ClickUp task\" })\n\nvim.keymap.set(\"n\", \"\u003cleader\u003etgh\", function() \n    require(\"comment-tasks\").create_github_task_from_comment()\nend, { desc = \"Create GitHub issue\" })\n\nvim.keymap.set(\"n\", \"\u003cleader\u003etc\", function()\n    require(\"comment-tasks\").create_task_from_comment()\nend, { desc = \"Create task (default provider)\" })\n\nvim.keymap.set(\"n\", \"\u003cleader\u003etu\", function()\n    require(\"comment-tasks\").update_task_status_from_comment(\"completed\")\nend, { desc = \"Complete task\" })\n\nvim.keymap.set(\"n\", \"\u003cleader\u003etx\", function()\n    require(\"comment-tasks\").close_task_from_comment()\nend, { desc = \"Close task\" })\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for:\n\n- 🆕 Adding new providers\n- 🐛 Bug reports and fixes\n- 📖 Documentation improvements\n- 💡 Feature suggestions\n\n### Development Setup\n\n```bash\ngit clone https://github.com/georgeharker/comment-tasks.nvim.git\ncd comment-tasks.nvim\n```\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## 🙏 Support\n\n- 📖 **Documentation**: Check [docs/](docs/) for detailed guides\n- 🐛 **Issues**: Report bugs on [GitHub Issues](https://github.com/georgeharker/comment-tasks.nvim/issues)\n- 💬 **Discussions**: Ask questions in [GitHub Discussions](https://github.com/georgeharker/comment-tasks.nvim/discussions)\n\n---\n\n**Ready to get started?** Check out the [Installation Guide](docs/installation.md) and choose your [provider setup](docs/providers/).\n","funding_links":[],"categories":["Editing Support"],"sub_categories":["Comment"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgeharker%2Fcomment-tasks.nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorgeharker%2Fcomment-tasks.nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgeharker%2Fcomment-tasks.nvim/lists"}