# Todoer.nvim - Enhanced TODO Management for Neovim A Neovim plugin that provides enhanced TODO list management with smart handling of checkboxes, indentation, and list items in markdown and other text formats. ## Features ✅ **Current Functionality:** - Smart TODO item creation with `ti`, `ta`, `to` - Toggle checkboxes with `tt` - Remove TODO markup with `td` - Smart Enter key handling in insert mode: - Creates new TODO items with proper indentation - Handles empty TODO items by outdenting or terminating lists - Tab/Shift-Tab indentation for TODO items - Supports multiple list markers: `-`, `*`, `+` - Works with markdown, text, and norg files by default ## Known Issues 🐛 **Current Bugs:** - Tab indentation handling still uses feedkeys and needs refactoring - Shift-Tab behavior may not be consistent with spaces vs tabs - Edge cases with mixed indentation (spaces + tabs) not fully handled - Cursor positioning could be improved in some scenarios ## Roadmap 📌 **Planned Improvements:** - [ ] Refactor tab indentation to use proper buffer operations - [ ] Add support for numbered lists - [ ] Add support for nested TODO items with proper indentation - [ ] Add visual selection operations for multiple TODOs - [ ] Add commands for archiving completed items - [ ] Add support for custom TODO markers - [ ] Add support for custom checkbox states (e.g., `[ ]`, `[x]`, `[-]`) ## Installation Using [lazy.nvim](https://github.com/folke/lazy.nvim): ```lua { 'your-username/todoer.nvim', config = function() require('todoer').setup({ -- Optional: override default filetypes filetypes = { 'markdown', 'text', 'norg' } }) end } ``` ## Configuration Default configuration: ```lua { filetypes = { "markdown", "text", "norg" } -- Filetypes to activate the plugin for } ``` ## Keybindings Normal Mode: - `ti` - Convert line to TODO (cursor after `] `) - `ta` - Convert line to TODO (cursor at end) - `to` - Insert new TODO line below - `tt` - Toggle checkbox state - `td` - Remove TODO markup Insert Mode: - `` - Smart enter behavior for TODO items - `` - Indent TODO item - `` - Outdent TODO item