DEV Community

LmanTW
LmanTW

Posted on • Updated on

So... I created yet another Neovim plugin

This year I switched to Neovim after watching too many Primagen's videos, and to be honest I think everyone should try it! The experience is quite different from your average IDEs, and you might find out that you enjoy the feeling of coding without the need for a mouse!

This is the first time I'm writing something like this, I'm not native and am still learning English. Apology for all the spilling and grammar mistakes.

Why Neovim

Apart from watching too many videos about people using Neovim to code blazingly fast, I was using a Macbook Pro from 2012 and just imagine running a Electron app (VS Code) on it.

You can do so many things with Neovim, like playing Tetris and applying Cellular Automata to your code. These are mostly useless but it really shows the freedom Neovim offers.

Lua is Cool

When I first tried Lua I don't really like the language, mainly because how the syntax looks and it missing a lot of built-in APIs I'm used to having in JavaScript. Like the fact that you need to make your own table logging function is just crazy to me.

But after I made my own plugin, I must emit that the language is actually pretty fun to work with, using it with the type annotations is even better! The built-in APIs Lua provides are just enough to accomplish everything you need without being bloated.

This means you need to write more utility functions base on your needs, which I think is a good thing. Those functions shouldn't take you too long to implement, and doing so gives you more control over your program.

I made a Plugin

When I was trying to find a way to switch between colorschemes, I discovered Themery.nvim a colorscheme switcher with a live preview. It's an amazing plugin at its job, but I found it a bit annoying that I need to add my colorscheme to my plugin manager and then add it to a colorscheme switcher. So I made my own plugin to solve this problem!

Themify.nvim

Image description

A colorscheme manager and switcher designed for Neovim.

The plugin is inspired by Themery.nvim and Lazy.nvim, and it offers a simple way of managing and switching your colorschemes. Check out the Github Repository to learn more about Themify.

  • 🎨 Easily install and manage your colorschemes.
  • 🔍 Explore and preview colorschemes directly in Neovim..
  • ⚡️ Optimized startup time with lazy-loaded colorschemes.

How to use

Using Lazy.nvim as an example. You just need to add Themify as a plugin and specify the colorschemes you want!

{
  'lmantw/themify.nvim',

  lazy = false,
  priority = 999,

  config = {
    'folke/tokyonight.nvim',
    'Yazeed1s/minimal.nvim',
    {
      'sho-87/kanagawa-paper.nvim',

      branch = 'master'
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

The downsides

  • Colorschemes with dependencies are not supported, this decision was made to maintain the simplicity of the codebase.
  • Might start slowly when handling a lot amount of colorschemes.

Conclusions

I really enjoy the process of making this plugin, knowing that someone will benefit from it is just truly amazing. If you have a cool idea of a plugin, I encourage you to make it a reality!

Thank you for reading this! As I mentioned earlier, this is my first time writing something like this, so please let me know if there's anything I could improve!

This post is in fact written with the help of ChatGPT, though none of the content was generated by it. I'm just using it as a tool to fix my weird zoomer writing.

Updates

2024/9/24 | Added the colorscheme database and the explore page.

Top comments (0)