Guide: Structuring Lua plugins

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/neovim

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • SaaSHub - Software Alternatives and Reviews
  • nvim

    🍨 Soothing pastel theme for (Neo)vim

    I wanted to make a post here but I get shadow banned for not having enough reddit karma :< (I used these to make catppuccin.nvim startup in 1ms)

  • nvim-dap

    Debug Adapter Protocol client implementation for Neovim

    It's not obvious from the website, but this is the blog of GitHub user @mfussenegger, who is a Neovim core member, one of the primary maintainers of Neovim's LSP client implementation, and the other of several excellent plugins.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • nvim-jdtls

    Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls

    It's not obvious from the website, but this is the blog of GitHub user @mfussenegger, who is a Neovim core member, one of the primary maintainers of Neovim's LSP client implementation, and the other of several excellent plugins.

  • nvim-lint

    An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support.

    It's not obvious from the website, but this is the blog of GitHub user @mfussenegger, who is a Neovim core member, one of the primary maintainers of Neovim's LSP client implementation, and the other of several excellent plugins.

  • persistence.nvim

    💾 Simple session management for Neovim

    I like the idea of a "config" module. Plugins like persistence and mason.nvim have it, they allow you to set variables without calling the main module.

  • mason.nvim

    Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.

    I like the idea of a "config" module. Plugins like persistence and mason.nvim have it, they allow you to set variables without calling the main module.

  • impatient.nvim

    Improve startup time for Neovim

    :lua vim.pretty_print(vim.mpack.decode(vim.mpack.encode({some = { thing = false }}))) used by impatient.nvim

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • vim-illuminate

    illuminate.vim - (Neo)Vim plugin for automatically highlighting other uses of the word under the cursor using either LSP, Tree-sitter, or regex matching.

    +1, I avoided .setup in vim-illuminate and had a github comment explaining why it started and the alternative I went with, https://github.com/RRethy/vim-illuminate/issues/112. Got a lot of push-back on reddit for that. Happy to see some others dislike that useless convention.

  • leap.nvim

    🦘 Neovim's answer to the mouse: a "clairvoyant" interface that makes on-screen navigation quicker and more natural than ever

    +1. I've already taken the first step.

  • neovim-plugin

    I'm pretty sure we got started down the .setup road because of this article by norcalli a few years ago. It was published when plugins started using Lua and suddenly I went from seeing one or two plugins using .setup to literally every single plugin use it.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts