https://github.com/georgeharker/comment-tasks.nvim
Add tasks to clickup from code
https://github.com/georgeharker/comment-tasks.nvim
Last synced: 6 months ago
JSON representation
Add tasks to clickup from code
- Host: GitHub
- URL: https://github.com/georgeharker/comment-tasks.nvim
- Owner: georgeharker
- License: mit
- Created: 2025-09-25T21:23:22.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-09-26T07:21:12.000Z (7 months ago)
- Last Synced: 2025-09-26T09:24:56.130Z (7 months ago)
- Language: Lua
- Size: 45.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-neovim-sorted - georgeharker/comment-tasks.nvim
- awesome-neovim - georgeharker/comment-tasks.nvim - Keep your task manager up to date from TODO and FIXME comments in code. (Editing Support / Comment)
README
# Comment Tasks
A 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.
## ๐ Features
> **Manage tasks from code without losing focus. Maintain task references in code.**
Transform your TODO comments into actionable tasks across 10+ platforms while keeping task URLs embedded in your codebase for perfect traceability.
- **๐ Universal Multi-Provider Support**: Works with 10+ task management systems
- **๐ฏ Custom Status System**: Configurable workflows for each provider
- **๐ Multi-Language Support**: Works with 15+ programming languages using Tree-sitter
- **โจ Smart Comment Detection**: Handles single-line, block comments, and docstrings
- **๐ Intelligent URL Insertion**: Context-aware URL placement
- **โก Unified Command Interface**: Same commands work across all providers
- **๐ File Reference Management**: Structured file associations with tasks
- **๐งน Comment Prefix Trimming**: Automatically clean TODO, FIXME, and other prefixes
- **๐จ Language Override**: Force specific language detection when needed
- **๐ง Modular Architecture**: Extensible system for easy provider addition
## ๐ Supported Providers
| Provider | Type | Custom Status | Bulk Operations | File References |
|----------|------|---------------|-----------------|-----------------|
| **๐ฏ [ClickUp](docs/providers/clickup.md)** | Full | โ
| โ
| โ
|
| **๐ [Asana](docs/providers/asana.md)** | Full | โ
| โ | โ
|
| **โก [Linear](docs/providers/linear.md)** | Full | โ
| โ | โ
|
| **๐ข [Jira](docs/providers/jira.md)** | Full | โ
| โ | โ
|
| **๐ [Notion](docs/providers/notion.md)** | Full | โ
| โ | โ
|
| **๐ [Monday.com](docs/providers/monday.md)** | Full | โ
| โ | โ
|
| **๐ [GitHub Issues](docs/providers/github.md)** | Basic | โ | โ | โ
|
| **๐ฆ [GitLab Issues](docs/providers/gitlab.md)** | Basic | โ | โ | โ
|
| **๐ฆ [Trello](docs/providers/trello.md)** | Basic | โ | โ | โ
|
| **โ
[Todoist](docs/providers/todoist.md)** | Basic | โ | โ | โ
|
**Full**: Complete workflow customization with any status names
**Basic**: Open/closed or list-based status management
## ๐ Supported Languages
Works with 15+ programming languages including:
**Python** โข **JavaScript/TypeScript** โข **Lua** โข **Rust** โข **C/C++** โข **Go** โข **Java** โข **Ruby** โข **PHP** โข **CSS** โข **HTML** โข **Bash** โข **Vim Script** โข **YAML** โข **JSON**
## ๐ฆ Installation
### Using [lazy.nvim](https://github.com/folke/lazy.nvim)
```lua
{
"georgeharker/comment-tasks.nvim",
dependencies = {
"nvim-lua/plenary.nvim", -- Required for HTTP requests
},
config = function()
require("comment-tasks").setup({
default_provider = "clickup", -- Choose your preferred provider
providers = {
clickup = {
enabled = true,
api_key_env = "CLICKUP_API_KEY",
list_id = "your_clickup_list_id",
statuses = {
new = "To Do",
in_progress = "In Progress",
review = "Code Review",
completed = "Complete",
}
},
-- Add other providers as needed
},
})
end
}
```
**Environment Setup**:
```bash
export CLICKUP_API_KEY="your_api_key_here"
```
๐ **Detailed Installation**: [docs/installation.md](docs/installation.md)
## ๐ Quick Start
1. **Install** the plugin with your preferred package manager
2. **Configure** your task management provider(s)
3. **Set environment variables** for API authentication
4. **Create tasks** from comments using commands
### Example Workflow
```python
# TODO: Implement user authentication system
# This needs proper validation and error handling
```
Place cursor on the comment and run `:ClickUpTask new` โ
```python
# TODO: Implement user authentication system
# This needs proper validation and error handling
# https://app.clickup.com/t/task_id
```
Update task status as you progress:
```vim
:ClickUpTask in_progress " When you start working
:ClickUpTask review " When ready for code review
:ClickUpTask close " When finished (uses completed status)
```
## โก Core Commands
### Provider-Specific Commands (Recommended)
```vim
" ClickUp (Full custom status support)
:ClickUpTask " Create task (default)
:ClickUpTask create " Create task (explicit)
:ClickUpTask in_progress " Update to 'In Progress' status
:ClickUpTask close " Complete task (uses completed status)
:ClickUpTask addfile " Add current file to task
" GitHub Issues (Basic support)
:GitHubTask " Create issue (default)
:GitHubTask create " Create issue (explicit)
:GitHubTask close " Close issue
:GitHubTask addfile " Add file reference
" Asana (Full custom status support)
:AsanaTask " Create task (default)
:AsanaTask create " Create task (explicit)
:AsanaTask blocked " Update to 'Blocked' status
:AsanaTask close " Complete task
:ClickUpTask review " Update to 'Code Review' status
:ClickUpTask completed " Complete task
:ClickUpTask addfile " Add current file to task
" GitHub Issues (Basic support)
:GitHubTask new " Create issue
:GitHubTask close " Close issue
:GitHubTask addfile " Add file reference
" Asana (Full custom status support)
:AsanaTask new " Create task
:AsanaTask blocked " Update to 'Blocked' status
:AsanaTask completed " Complete task
```
### Generic Commands (Uses default_provider)
```vim
:CommentTask new " Create task with default provider
:CommentTask completed " Complete task with default provider
:CommentTask " Create task with default provider (default)
:CommentTask create " Create task with default provider (explicit)
:CommentTask close " Complete task with default provider
:CommentTaskAddFile " Add file reference with default provider
```
**Available commands are generated dynamically** from your status configuration.
## โ๏ธ Configuration
### Basic Setup
```lua
require("comment-tasks").setup({
default_provider = "clickup", -- Provider for generic commands
providers = {
clickup = {
enabled = true,
api_key_env = "CLICKUP_API_KEY",
list_id = "123456789",
statuses = {
new = "To Do", -- Special: creates tasks
completed = "Complete", -- Special: completes tasks
review = "Code Review", -- Custom: creates :ClickUpTask review
blocked = "Blocked", -- Custom: creates :ClickUpTask blocked
}
}
}
})
```
### Status System
Commands are **automatically generated** from your status configuration:
```lua
statuses = {
new = "Backlog", -- โ :ClickUpTask new (creates with "Backlog")
completed = "Done", -- โ :ClickUpTask completed (updates to "Done")
review = "In Review", -- โ :ClickUpTask review (updates to "In Review")
testing = "QA Testing", -- โ :ClickUpTask testing (updates to "QA Testing")
}
```
๐ **Complete Configuration**: [docs/configuration.md](docs/configuration.md)
## ๐ Documentation
### Setup Guides
- ๐ฆ **[Installation Guide](docs/installation.md)** - Complete installation instructions
- โ๏ธ **[Configuration Reference](docs/configuration.md)** - All configuration options
### Provider Guides
- ๐ฏ **[ClickUp Setup](docs/providers/clickup.md)**
- ๐ **[Asana Setup](docs/providers/asana.md)**
- ๐ **[GitHub Issues Setup](docs/providers/github.md)**
- โก **[Linear Setup](docs/providers/linear.md)**
- ๐ข **[Jira Setup](docs/providers/jira.md)**
- ๐ **[Notion Setup](docs/providers/notion.md)**
- ๐ **[Monday.com Setup](docs/providers/monday.md)**
- ๐ฆ **[Trello Setup](docs/providers/trello.md)**
- ๐ฆ **[GitLab Issues Setup](docs/providers/gitlab.md)**
- โ
**[Todoist Setup](docs/providers/todoist.md)**
### Examples
### Reference
- ๐ง **[API Reference](docs/api-reference.md)** - Lua API & keybinding examples
## ๐ง Keybinding Examples
```lua
vim.keymap.set("n", "tcc", function()
require("comment-tasks").create_clickup_task_from_comment()
end, { desc = "Create ClickUp task" })
vim.keymap.set("n", "tgh", function()
require("comment-tasks").create_github_task_from_comment()
end, { desc = "Create GitHub issue" })
vim.keymap.set("n", "tc", function()
require("comment-tasks").create_task_from_comment()
end, { desc = "Create task (default provider)" })
vim.keymap.set("n", "tu", function()
require("comment-tasks").update_task_status_from_comment("completed")
end, { desc = "Complete task" })
vim.keymap.set("n", "tx", function()
require("comment-tasks").close_task_from_comment()
end, { desc = "Close task" })
```
## ๐ค Contributing
We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for:
- ๐ Adding new providers
- ๐ Bug reports and fixes
- ๐ Documentation improvements
- ๐ก Feature suggestions
### Development Setup
```bash
git clone https://github.com/georgeharker/comment-tasks.nvim.git
cd comment-tasks.nvim
```
## ๐ License
MIT License - see [LICENSE](LICENSE) for details.
## ๐ Support
- ๐ **Documentation**: Check [docs/](docs/) for detailed guides
- ๐ **Issues**: Report bugs on [GitHub Issues](https://github.com/georgeharker/comment-tasks.nvim/issues)
- ๐ฌ **Discussions**: Ask questions in [GitHub Discussions](https://github.com/georgeharker/comment-tasks.nvim/discussions)
---
**Ready to get started?** Check out the [Installation Guide](docs/installation.md) and choose your [provider setup](docs/providers/).