💤 A modern plugin manager for Neovim
Go to file
Andre Toerien 72c0dc9462
fix(git): local plugin fixes (#1624)
## Description

As I described in
https://github.com/folke/lazy.nvim/pull/1512#issuecomment-2212474372,
this makes it so that local plugins will only show as needing updates if
the local branch is behind the upstream branch. This is done by checking
the output of the `git log` command, and only setting `plugin._.updates`
if the output is not empty.

This seems to solve my issue where local plugins with unpushed changes
always show as needing updates, but if there's a easier/better way of
doing it then please feel free to edit/close this. Or if you don't agree
that the current behaviour is a bug, then that's also fine - it's not a
big deal and I can easily just ignore the "updates available" notice.

I also came across a minor issue where the plugin diff view (press `d`)
compares the wrong commits for local plugins, because
[lua/lazy/view/init.lua](c771cf4928/lua/lazy/view/init.lua (L268))
always uses `get_target`. I fixed this by moving `get_local_target` into
`get_target` - I think this is simpler and more straightforward than the
alternative of adding a ternary everywhere `get_target` is called.

This second bugfix is a very small change, so I've just included it
here, but I'm happy to make a second PR if you'd like.

## Related Issue(s)

Related PR: #1512
2024-07-07 17:13:49 +02:00
.github chore(main): release 11.10.2 (#1621) 2024-07-07 08:44:37 +02:00
doc chore(build): auto-generate docs 2024-07-07 06:46:59 +00:00
lua/lazy fix(git): local plugin fixes (#1624) 2024-07-07 17:13:49 +02:00
scripts ci: update 2024-07-05 16:03:09 +02:00
tests ci: update 2024-07-05 16:03:09 +02:00
.busted test: buse busted for running tasks 2024-06-26 14:30:55 +02:00
.gitignore ci: update 2024-07-06 23:45:30 +02:00
.markdownlint.yaml build: added markdownlint config 2022-12-19 19:09:54 +01:00
.neoconf.json perf: more cache optims 2023-02-14 11:00:56 +01:00
.styluaignore ci: add generated files to .styluaignore 2024-07-05 16:03:09 +02:00
CHANGELOG.md chore(main): release 11.10.2 (#1621) 2024-07-07 08:44:37 +02:00
LICENSE docs: added lincense 2022-12-20 17:56:21 +01:00
README.md chore(build): auto-generate docs 2024-06-24 15:42:27 +00:00
TODO.md style: fix some typo (#1496) 2024-06-03 09:18:43 +02:00
bootstrap.lua ci: use main for bootstrap 2024-07-04 18:05:36 +02:00
manifest ci: auto-get rockspec mappings for rock name => github short url or url 2024-06-25 17:41:16 +02:00
selene.toml fix(pkg): correctly pre-load package specs and remove them when needed during resolve 2024-06-24 17:15:10 +02:00
stylua.toml style: sort requires 2023-10-09 11:25:42 +02:00
vim.toml refactor: async processes 2024-06-28 16:08:26 +02:00

README.md

Install · Configure · Docs

lazy.nvim is a modern plugin manager for Neovim.

image

Features

  • 📦 Manage all your Neovim plugins with a powerful UI
  • 🚀 Fast startup times thanks to automatic caching and bytecode compilation of Lua modules
  • 💾 Partial clones instead of shallow clones
  • 🔌 Automatic lazy-loading of Lua modules and lazy-loading on events, commands, filetypes, and key mappings
  • Automatically install missing plugins before starting up Neovim, allowing you to start using it right away
  • 💪 Async execution for improved performance
  • 🛠️ No need to manually compile plugins
  • 🧪 Correct sequencing of dependencies
  • 📁 Configurable in multiple files
  • 📚 Generates helptags of the headings in README.md files for plugins that don't have vimdocs
  • 💻 Dev options and patterns for using local plugins
  • 📊 Profiling tools to optimize performance
  • 🔒 Lockfile lazy-lock.json to keep track of installed plugins
  • 🔎 Automatically check for updates
  • 📋 Commit, branch, tag, version, and full Semver support
  • 📈 Statusline component to see the number of pending updates
  • 🎨 Automatically lazy-loads colorschemes

Requirements

  • Neovim >= 0.8.0 (needs to be built with LuaJIT)
  • Git >= 2.19.0 (for partial clones support)
  • a Nerd Font (optional)
  • luarocks to install rockspecs. You can remove rockspec from opts.pkg.sources to disable this feature.

🚀 Getting Started

Check the documentation website for more information.