yousefakbar / notmuch.nvim

Notmuch interface for neovim written in Lua
2 stars 2 forks source link

compose/reply/send fetaures #2

Open mattmart3 opened 2 months ago

mattmart3 commented 2 months ago

Hi, I was looking for a replacement to https://github.com/felipec/notmuch-vim which is great but it looks it has some issue with recent ruby neovim. This plugin would be a good native neovim replacement if it would also provide a way to compose new messages, reply to a message thread and invoke a send command.

Are there any plan or interest to introduce such features?

yousefakbar commented 1 month ago

Hi @mattmart3 ! Apologies for the late reply. I'm so happy and grateful someone is making use of the plugin other than me (I wrote this a few years back but only recently made it public).

but it looks it has some issue with recent ruby neovim

Right, that was one of the reasons I decided to write this plugin. Lua is a much more natural and supported approach for interfacing with NeoVim, especially with async niceties.

Are there any plan or interest to introduce such features?

To be honest, when I wrote it I centered it around reading mail more than writing. But I have no issues brainstorming and implementing send features.

What does your intended workflow for writing and sending mail look like? What do you usually use to send mail through the CLI (if any)? Do you use multiple accounts?

Editing email before sending is the easy part, NeoVim buffers are already at our disposal, so I'm more interested in the workflow.

Please feel free to suggest more changes or things you would like to see as well. This was initially more of a personal project so I'm sure there is much to be desired in terms of generic customizability.

mattmart3 commented 1 month ago

Hi @yousefakbar, thanks for the reply,

What does your intended workflow for writing and sending mail look like? What do you usually use to send mail through the CLI (if any)? Do you use multiple accounts?

My current setup is: only one account, offlineimap + notmuch to receive and index emails, msmtp to send email. On top of that I was using the notmuch-vim to glue them all together. Your plugin looks similar that one but missing the compose/send/reply part. I guess there might be other users that could be interested [ref].

I've also been trying alot in the last few days and it also fits my simple workflow, but I would still like a neovim based CLI, even just to have the same key bindings and colorschemes that I am used to.

mattmart3 commented 3 weeks ago

Hi @yousefakbar, I've just sent a PR #3 to add compose and send features. This is more of a trivial example to get things started, but the PR could be garbage as I am not familiar with noevim scripting nor lua. So feel free to just drop the PR in that case.

What I think is (a little) less trivial is to add the reply feature from a thread: I was thinking that upon the reply keybinding event, the reply function could scan the current buffer from the current cursor position to top until the first id is found, and use the header info of that mail in a new compose buffer. Also, I would quote the message adding > per each line as many clients do. What you think? Any suggestions?

As a side note, after a while using alot I feel it's not suited for me, and I confirm I would be much happier with a neovim frontend.

mattmart3 commented 3 days ago

Added the reply function as well in same PR #3. This was much easier than I thought since you already wrote an helper to retrieve the message id from the current cursor and then I just used the notmuch reply command to prepare the buffer.

At this point the plugin is ready enough so that I can use it daily. I will likely extend it further trying to add some more feature and some more UI customization options. I will keep the feat branches open on my fork, let me know in case you are interested so that I can send other PRs.

Thanks again for your work!