A neovim plugin written in pure lua
for integration with Todoist.
-
Other neovim plugins do not have full functionality for integrating with todist
Plugins may use the REST api method for integrating with todoist documented here The REST api does not have the capabilities to add reminders for example
-
Other plugins are outdated
Written in
vimscript
-
Other plugins make use of unneeded language
Combining
vimscript
orlua
with other languages e.g.python
,javascript
-
Other plugins don't allow for much if any configuration
Not able to customise the rending of colours in the ui
-
Other projects are unmaintained
- Full integration with todoist (all features for adding tasks are implemented, including todoist pro features)
- Customisation of the ui colours used when previewing tasks
- Easy to set up (no additional dependencies)
- Add/ delete/ complete tasks fast and efficiently
Using packer.nvim:
use {
'adam-coates/todoist.nvim',
config = function()
require('todoist').setup({
-- Optional config
auto_refresh_interval = 30000, -- 30 seconds
highlight = {
priority1 = "#ff0000",
priority2 = "#ff8c00",
priority3 = "#0087ff",
}
})
end
}
Using lazy.nvim:
{
'adam-coates/todoist.nvim',
config = function()
require('todoist').setup()
end
}
First, set your Todoist API token in your environment:
export TODOIST_API_KEY='your-api-token-here'
Note
It is advisable to use a password management system e.g. pass
$ pass insert Todoist/API
Enter password for Todoist/API: XXXXXXXXX
export TODOIST_API_KEY="$(pass Todoist/API)"
-
Open Todoist view:
:Todoist
-
Key mappings in Todoist buffer:
<Enter>
on empty line: Add new taskc
: Toggle task completiondd
: Delete taskr
: Refresh tasks manually
- Add ability to add custom durations (not yet implemented)
- Add ability to change/ delete projects (not yet implemented)
- Add ability to make changes to already existing tasks (not yet implemented)