Skip to content

neovim reminders for zettlecast repos

License

Notifications You must be signed in to change notification settings

navicore/nvim-reminders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Reminders Plugin

A Neovim plugin written in Lua to manage and display reminders directly in your markdown notes. This plugin scans your configured repositories for reminders in the format:

#reminder datetime: text

I use the very nice renerocksai/telekasten.nvim for my notes and my nvim-reminders plugin adds reminders w/o the mess of UI pop-ups or device sync because I only want the reminders when I'm in nvim AND ready for them.

Features

  • Automatically converts natural language time expressions (e.g., "in 2 hours") to ISO 8601 format.
  • Displays a human-readable countdown in virtual text.
  • Rewrites reminders with check-boxes
  • Supports configurable repository lists to scan for reminders.

Installation

Using Lazy.nvim

To install with Lazy, add the following to your Neovim configuration:

require('lazy').setup({
    {
        'navicore/nvim-reminders',  -- Replace with the actual GitHub repo path
        config = function()
            require('reminders').setup({
                paths = {
                    "~/path/to/your/notes",
                    "~/another/path/to/notes"
                }
            })
        end
    }
})

Using Packer.nvim

To install with Packer, add the following to your packer setup:

use {
    'navicore/nvim-reminders',  -- Replace with the actual GitHub repo path
    config = function()
        require('reminders').setup({
            paths = {
                "~/path/to/your/notes",
                "~/another/path/to/notes"
            }
        })
    end
}

Using Vim-Plug

To install with Vim-Plug, add the following to your .vimrc or init.vim:

Plug 'navicore/nvim-reminders'  -- Replace with the actual GitHub repo path
lua << EOF
require('reminders').setup({
    paths = {
        "~/path/to/your/notes",
        "~/another/path/to/notes"
    }
})
EOF

Usage

Create reminders in your *.md files as:

#reminder in 2 hours: check logs for errors

and when you are ready for a quickfix list of reminders run :ReminderScan. Hit on the reminder you want to address and to resolve it check the check-box with an 'x', ie: [x] that was inserted into your reminder when you saved it.

for example:

This reminder: #reminder in 2 minutes: this is a test reminder!

Becomes: #reminder 2024-09-14T04:34:31Z: [ ] this is a test reminder!

Once you resolve it by checking the checkbox it becomes: #reminder 2024-09-14T04:34:31Z: [x] this is a test reminder!

Customizing the Repository List

By default, the plugin scans the directory ~/git/USERNAME/zet, where USERNAME is your system username. You can customize this by passing a list of paths to the setup function in your Neovim configuration:

require('reminders').setup({
    paths = {
        "~/path/to/your/notes",
        "~/another/path/to/notes"
    }
})

Supported Time Expressions

The plugin supports the following natural language time expressions, which will be automatically converted to ISO 8601 format:

    in X minutes
    in X hours
    in X days
    tomorrow
    next Monday (or any other weekday)

Example Reminder

You can add reminders to your markdown files in the following format:

#reminder in 2 hours: Follow up on the meeting notes

Upon saving the file, this will automatically be converted to:

#reminder 2024-08-25T14:00:00Z: Follow up on the meeting notes

And the plugin will display a virtual text next to it showing something like:

#reminder 2024-08-25T14:00:00Z: Follow up on the meeting notes : in 2 hours

Contributions

Contributions are welcome! Please feel free to submit a pull request or open an issue if you have any suggestions or bug reports.

About

neovim reminders for zettlecast repos

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages