Top 23 Lua Nvim Projects
-
NvChad
An attempt to make neovim cli functional like an IDE while being very beautiful, blazing fast startuptime ~ 20ms to 70ms
-
I do web dev in nvim since 3 years. I rarely have any problems and never one I could not solve with some googling around/asking on discords for help. If you are like me and enjoy the keyboard-focused workflow of nvim but don't feel like nerding out with your own config, I very much recommend trying out one of the ready made distributions. Since half a year I use https://www.lunarvim.org/ and I am quite happy, but there are others as well, (https://github.com/CosmicNvim/CosmicNvim) comes to my mind.
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
Telescope's performance is a bit more nuanced. TJ verbally confirmed (please take with grain of salt :D) that he will finish fps-mode for 0.1 (which I think lands beginning of July) which already will be another great performance boost. Furthermore, unless you actually need fuzzy matching (people don't realize they actually need "AND" in query terms..), then you can leave matching to rg or fd alone, similar to how telescope.builtin.live_grep works. Generally speaking, in the future, we also want to leverage rust to increase overall performance without compromising integration, refactor previewers, entry makers, enable ubiquitous multi selections, etc. However, that takes time :)
-
Checkout https://github.com/neovim/nvim-lspconfig
-
packer.nvim
A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config
I think packer is great but vim-plug was simpler to deal with. I think once this PR gets completed, packer.nvim will become as easy to deal with.
-
AstroNvim
AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins
Project mention: Please tell how the hell do I get completions for code in vim/neovim | reddit.com/r/neovim | 2022-05-15You can try AstroNvim. Pretty easy to install and gives you pretty similar experience to VSCode.
-
I use Neorg, it it possible to use your plugin with the *.norg extension or I would have to chance the extension of my files?
-
SonarLint
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
-
Project mention: Why I’ve spent my Easter break customizing Neovim | news.ycombinator.com | 2022-05-06
I'm also a college student who went down the same rabbit hole recently. I found this github repo and video series super helpful for understanding how to create your own neovim config. https://github.com/LunarVim/Neovim-from-scratch https://www.youtube.com/watch?v=ctH-a-1eUME
One project that seems super cool I hope continues on is helix. https://helix-editor.com/. I just started messing around with it but the selection -> action philosophy behind text manipulation feels much more intuitive to me even though I'm proficient with vim at this point.
-
nvim-lsp-installer
Neovim plugin that allows you to seamlessly manage LSP servers with :LspInstall. With full Windows support!
Project mention: Which lsp-server tool, coc or ale, or both, or another option. | reddit.com/r/neovim | 2022-05-19From there you can (optionally) get nvim-lsp-installer https://github.com/williamboman/nvim-lsp-installer
-
FYI gitsign does trigger the event upon hunk operations; this would be fixed soon -- see GH-507.
-
Can we write clickable tabline in lua?
-
Project mention: Would it make sense to load my configuration as a lua plugin? | reddit.com/r/neovim | 2021-05-27
-
Comment.nvim
:brain: :muscle: // Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more
9 - comment.nvim
-
Project mention: nvim-autopairs VS autoclose.nvim - a user suggested alternative | libhunt.com/r/nvim-autopairs | 2022-05-05
-
nightfox.nvim
🦊A highly customizable theme for vim and neovim with support for lsp, treesitter and a variety of plugins.
Nightfox
-
-
Project mention: Lua config with installer and a way to update config! | reddit.com/r/neovim | 2021-10-30
Link to project repo: https://github.com/artart222/CodeArt
-
awesome-dotfiles
Dotfiles for awesome people using the awesomewm linux environment (by WillPower3309)
In case you didn't know these kinds of files are often called dotfiles (just because they're often named as something like .config) You can find people's personal dotfiles all over github or by just googling awesomewm dotfiles. I personally like Derek Taylor's (DistroTube) dotfiles, but I also found these right away by googling.
-
Catppuccin.
-
Project mention: PSA: feline.nvim has switched from famiu/feline.nvim to feline-nvim/feline.nvim | reddit.com/r/neovim | 2022-05-06
Packer failed to update feline.nvim, and I saw that it's been moved to https://github.com/feline-nvim/feline.nvim.
-
Project mention: What is your preferred way to look for LSP Code References in Neovim? | reddit.com/r/neovim | 2022-04-15
Personally I prefer nvim-bqf. It's a perfect plugin for me and has many highlights include:
-
mini.nvim
Neovim plugin with collection of minimal, independent, and fast Lua modules dedicated to improve Neovim (version 0.5 and higher) experience
mini.nvim counts as just one plugin, right?
-
Project mention: Anyone have autocomplete working with rust-tools, nvm-cmp, etc.? | reddit.com/r/neovim | 2022-04-14
-- Provide some indication that rust-analyzer is busy! local lsp_status = require('lsp-status') lsp_status.register_progress() -- Basic rust/lsp/cmp settings from https://sharksforarms.dev/posts/neovim-rust/ local nvim_lsp = require('lspconfig') local opts = { tools = { -- rust-tools options autoSetHints = true, hover_with_actions = true, inlay_hints = { show_parameter_hints = false, parameter_hints_prefix = "", other_hints_prefix = "=> ", }, }, -- all the opts to send to nvim-lspconfig -- these override the defaults set by rust-tools.nvim -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer server = { -- on_attach is a callback called when the language server attachs to the buffer on_attach = lsp_status.on_attach, capabilities = lsp_status.capabilities, settings = { -- to enable rust-analyzer settings visit: -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc -- and more: https://github.com/simrat39/rust-tools.nvim/wiki/Server-Configuration-Schema ["rust-analyzer"] = { -- enable clippy on save checkOnSave = { command = "clippy" }, } } }, } require('rust-tools').setup(opts) -- Setup Completion -- See https://github.com/hrsh7th/nvim-cmp#basic-configuration -- Used for super-tab functionality local has_words_before = function() local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil end local feedkey = function(key, mode) vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) end local lspkind = require('lspkind') local cmp = require'cmp' cmp.setup({ completion = { autocomplete = true }, -- Enable LSP snippets snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = { [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true, }), -- Add tab support [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif vim.fn["vsnip#available"](1) == 1 then feedkey("(vsnip-expand-or-jump)", "") elseif has_words_before() then cmp.complete() else fallback() -- The fallback function sends a already mapped key. In this case, it's probably ``. end end, { "i", "s" }), [""] = cmp.mapping(function() if cmp.visible() then cmp.select_prev_item() elseif vim.fn["vsnip#jumpable"](-1) == 1 then feedkey("(vsnip-jump-prev)", "") end end, { "i", "s" }), }, -- Installed sources sources = { { name = 'nvim_lsp' }, --, trigger_characters={'.', ":"} }, { name = 'vsnip' }, { name = 'path' }, { name = 'buffer' }, { name = 'nvim_lsp_signature_help' }, { name = 'nvim_lsp_document_symbol' }, }, -- Fancy symbols formatting = { format = lspkind.cmp_format({ mode = 'symbol_text', -- show both symbol & text for now maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) --before = function (entry, vim_item) --... --return vim_item --end }) }, completion = { autocomplete = true }, })
Lua Nvim related posts
Index
What are some of the best open-source Nvim projects in Lua? This list will help you:
Project | Stars | |
---|---|---|
1 | NvChad | 9,564 |
2 | LunarVim | 8,731 |
3 | telescope.nvim | 5,745 |
4 | nvim-lspconfig | 4,524 |
5 | packer.nvim | 2,839 |
6 | AstroNvim | 2,783 |
7 | neorg | 2,292 |
8 | Neovim-from-scratch | 2,166 |
9 | nvim-lsp-installer | 1,584 |
10 | gitsigns.nvim | 1,509 |
11 | bufferline.nvim | 1,188 |
12 | awesome-streamerrc | 979 |
13 | Comment.nvim | 963 |
14 | nvim-autopairs | 929 |
15 | nightfox.nvim | 846 |
16 | rust-tools.nvim | 825 |
17 | CodeArt | 737 |
18 | awesome-dotfiles | 731 |
19 | nvim | 690 |
20 | feline.nvim | 685 |
21 | nvim-bqf | 649 |
22 | mini.nvim | 554 |
23 | lspkind.nvim | 517 |
Are you hiring? Post a new remote job listing for free.