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.

  • walden@sub.wetshaving.socialM
    link
    fedilink
    arrow-up
    3
    ·
    6 days ago

    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.

        • snooting@sub.wetshaving.socialOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          2 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@sub.wetshaving.social
            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. :)

          • snooting@sub.wetshaving.socialOP
            link
            fedilink
            arrow-up
            1
            ·
            2 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,
            }