
Forked and fixed an array of issues with the popular LazyGit plugin for NeoVim (NOT VibeCoded)
Hey all,
I recently re-wrote the popular LazyGit plugin that is often recommended here for integrating LazyGit into NeoVim. I was using it for some time but since I only started using NeoVim, I was not very experienced in configuring it but overtime I noticed many issues the plugin has
I raised an MR with a fix for one of the issues but while fixing it, I realized the codebase is very bloated and was suffering from the burden of legacy support, so, I have forked and overhauled the codebase and added a few meaningful QoL improvements, namely:
- Instead of using
vim.g.*for configuration, it now uses the conventionalsetup({})function - Plenary-based windows no longer spawn new
lazygitprocesses, while leaking older ones (this was the issue my MR focused on). - You can now use
*wildcards to specify custom lazygit configurations (in case you divide them into multiple files or whatever). - Plenary based buffers, as with regular buffers, now get custom buffer and window properties. This was not done in the older code for some reason.
- Replaced legacy VimScript FFI calls (such as through
vim.fn.*methods) withvim.api.*wherever possible.
The only major trade offs are:
- No more Vim support (I removed all VimScript code)
- Needs NeoVim 0.10 >=
Link to my fork: https://github.com/103sbavert/lazygit.nvim
Also, AI was used, but for adding LuaCATS doc comments for type hints and completions, to re-arrange already finished code into different files (without changing its internals or logic), and to understand the previous code structure but every line of code is hand crafted and well understood by me. If you find any issues, please report them. This was a major re-write so some things may have fucked up, let me know if that's the case.
Also, I hate vibe coding, so rest assured, this is not one of those shitty AI-slop plugins.