💤 A modern plugin manager for Neovim
Go to file
Folke Lemaitre 2abdc681fa
feat: new git module to work with branches, tags & versions
2022-11-28 11:36:12 +01:00
lua/lazy feat: new git module to work with branches, tags & versions 2022-11-28 11:36:12 +01:00
tests test: added tests for runner 2022-11-28 11:04:44 +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
README.md docs: todo 2022-11-28 07:36:46 +01:00
stylua.toml style: formatting 2022-11-20 22:34:59 +01:00

README.md

lazy.nvim

Features

  • Partial clones instead of shallow clones
  • Async
  • No need for compile
  • Fast
  • Correct sequencing of dependencies (deps should always be opt. Maybe make everything opt?)
  • Import specs from Packer
  • Config in multiple files
  • Patterns for local packages
  • lockfile
  • package.lua
  • package-lock.lua
  • tag/version support git tag --sort version:refname
  • auto-loading on completion for lazy-loaded commands
  • semver https://devhints.io/semver https://semver.npmjs.com/

TODO

  • package meta index (package.lua cache for all packages)
  • migrate from Packer
  • auto lazy-loading of lua modules
  • use uv file watcher to check for config changes
  • clear errors
  • add support for versions git tag --sort v:refname
  • rename requires to deps
  • move tasks etc to Plugin.state

🖥️ Git Operations

  1. install:

    • run git clone with given branch,--single-branch, filter=blob:none and --no-checkout
    • run git checkout with correct branch, tag or commit
  2. update:

    • if branch is missing git remote set-branches --add origin MISSING_BRANCH
      • git switch MISSING_BRANCH
    • run git fetch
    • run git checkout with correct branch, tag or commit