Skip to content

A todoist integration with neovim using the sync api. Includes pro features of todoist including reminder support

Notifications You must be signed in to change notification settings

adam-coates/todoist.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

Contents


A neovim plugin written in pure lua for integration with Todoist.

WHY?

  • 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 or lua 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

Features

  1. Full integration with todoist (all features for adding tasks are implemented, including todoist pro features)
  2. Customisation of the ui colours used when previewing tasks
  3. Easy to set up (no additional dependencies)
  4. Add/ delete/ complete tasks fast and efficiently

Installation

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
}

Configuration

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)"

Usage

  1. Open Todoist view:

    :Todoist
    
  2. Key mappings in Todoist buffer:

    • <Enter> on empty line: Add new task
    • c: Toggle task completion
    • dd: Delete task
    • r: Refresh tasks manually

Upcoming features

  • 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)

About

A todoist integration with neovim using the sync api. Includes pro features of todoist including reminder support

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages