You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
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
<leader>ti
,<leader>ta
,<leader>to
- Toggle checkboxes with
<leader>tt
- Remove TODO markup with
<leader>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:
{
'your-username/todoer.nvim',
config = function()
require('todoer').setup({
-- Optional: override default filetypes
filetypes = { 'markdown', 'text', 'norg' }
})
end
}
Configuration
Default configuration:
{
filetypes = { "markdown", "text", "norg" } -- Filetypes to activate the plugin for
}
Keybindings
Normal Mode:
<leader>ti
- Convert line to TODO (cursor after]
)<leader>ta
- Convert line to TODO (cursor at end)<leader>to
- Insert new TODO line below<leader>tt
- Toggle checkbox state<leader>td
- Remove TODO markup
Insert Mode:
<CR>
- Smart enter behavior for TODO items<Tab>
- Indent TODO item<S-Tab>
- Outdent TODO item