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.

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