I had the day off today, so I hacked together a port of the SOTD emacs plugin that @[email protected] uses.
It’s still a pretty rough implementation, but I wanted to share the repository here in case others who use Neovim might want to help me kick the tires. I’m fully aware that this is a niche within a niche, but you miss 100% of the shots you don’t take!
I know there’s some cleanup that needs to happen, and the config file format could use a bit more thought, but it works well enough for now. If anyone feels compelled to use it I’d welcome any feedback either here or on the repo itself.
The code is hosted on GitHub here.
Wait… did someone say… Neovim… and SoTD in the same sentence!!!
It works well enough for now, but I’d love to get more eyes on it!
I’m making some progress on setting up my den.json
Cool! I can’t try it right now and I don’t use neovim, but I’ll try to remember to give it a shot when I get home next week.
That’d be awesome. Let me know if you have any issues getting set up!
Lazy doesn’t appear to be loading the plugin, although it’s installed. Perhaps I’m doing something daft?
Oh, it looks like I failed to document a pretty important step.
You currently need to define the
SOTDCreate
editor function somewhere, I have mine defined in.config/init.lua
:vim.api.nvim_create_user_command("SOTDCreate", function() require("sotd").create_sotd() end, {})
This is not ideal and is a rough edge that should be fixed. I’ll take a look today.
Excellent, the plugin now fires as expected. I’ll give it a shot for tomorrow’s SOTD post. Thanks!
I didn’t think about going and looking for your dotfiles, I’m sure I would have found this had I looked. :)
I pushed up a change that wraps this up in the plugin creation, so it should no longer be necessary.
You’ll also want to update your config to prevent lazy loading (since we want this plugin to be loaded immediately when
nvim
is opened):{ "snooting/sotd.nvim", dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim", "b0o/schemastore.nvim", }, lazy = false, config = function() require("sotd").setup({ -- any config options }) end, }