I had the day off today, so I hacked together a port of the SOTD emacs plugin that @PorkButtsNTaters666@sub.wetshaving.social 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.

    • snootingOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      3 days ago

      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.

      • absenth
        link
        fedilink
        arrow-up
        2
        ·
        2 days ago

        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. :)

      • snootingOP
        link
        fedilink
        arrow-up
        1
        ·
        3 days ago

        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,
        }