💤 A modern plugin manager for Neovim
Go to file
github-actions[bot] b7713856e0 chore(build): auto-generate vimdoc 2022-12-13 09:30:42 +00:00
.github ci: changed name of release-please package 2022-11-29 15:55:46 +01:00
doc chore(build): auto-generate vimdoc 2022-12-13 09:30:42 +00:00
lua/lazy fix: replace ~ by HOME for Plugin.dir 2022-12-13 10:29:40 +01:00
tests test: fixed tests 2022-12-13 10:29:48 +01:00
.gitignore build: added plenary test runner 2022-11-28 07:31:13 +01:00
.neoconf.json feat: added full semver and range parsing 2022-11-28 07:31:43 +01:00
CHANGELOG.md chore(main): release 2.2.0 (#7) 2022-12-05 14:49:34 +01:00
README.md docs: updated todo 2022-12-13 10:10:17 +01:00
selene.toml build: added selene 2022-12-01 11:23:39 +01:00
stylua.toml style: formatting 2022-11-20 22:34:59 +01:00
vim.toml build: added selene 2022-12-01 11:23:39 +01:00

README.md

lazy.nvim

Features

TODO

  • fancy UI to manage all your Neovim plugins
  • auto lazy-loading of lua modules
  • lazy-loading on events, commands, filetypes and key mappings
  • Partial clones instead of shallow clones
  • waits till missing deps are installed (bootstrap Neovim and start using it right away)
  • Async
  • No need to manually compile
  • Fast. Automatically caches and compiles byte code of all lua modules needed during startup
  • Correct sequencing of dependencies (deps should always be opt. Maybe make everything opt?)
  • Config in multiple files
  • dev option and patterns for local packages
  • Profiling
  • lockfile lazy-lock.json
  • upvalues in config & init
  • check for updates
  • commit, branch, tag, version support
  • semver https://devhints.io/semver
  • auto-loading on completion for lazy-loaded commands
  • bootstrap code
  • Background update checker
  • statusline component to see number of pending updates
  • health checks: check merge conflicts async
    • unsupported props or props from other managers
    • other packages still in site?
    • other package manager artifacts still present? compiled etc
  • status page showing running handlers and cache stats
  • temp colorscheme used during startup when installing missing plugins
  • automatically reloads when config changes are detected
  • handlers imply opt
  • dependencies imply opt for deps
  • show spec errors in health
  • fix plugin details
  • show disabled plugins (strikethrough?)
  • log file
  • git tests
  • Import specs from other plugin managers
  • packspec
    • add support to specify engines, os and cpu like in package.json
    • semver merging. Should check if two or more semver ranges are compatible and calculate the union range
      • default semver merging strategy: if no version matches all, then use highest version?
    • package meta index (package.lua cache for all packages)

📦 Differences with Packer

  • Plugin Spec:

    • setup => init
    • requires => dependencies
    • as => name
    • opt => lazy
    • run => build
    • lock => pin
    • module is auto-loaded. No need to specify

📦 Other Neovim Plugin Managers in Lua