mirror of https://github.com/folke/lazy.nvim.git
52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
# 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
|
|
- [x] clear errors
|
|
- [ ] add support for versions `git tag --sort v:refname`
|
|
- [ ] rename requires to deps
|
|
- [ ] move tasks etc to Plugin.state
|
|
- loaded
|
|
- installed
|
|
- updated
|
|
- changed: just installed or updated (dirty)
|
|
- is_local
|
|
https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/
|
|
|
|
## 🖥️ 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`
|