lazy.nvim/README.md

89 lines
3.1 KiB
Markdown
Raw Normal View History

2022-11-26 21:31:29 +08:00
# lazy.nvim
2022-11-28 14:36:46 +08:00
## ✨ Features
2022-11-29 07:15:13 +08:00
- [x] Partial clones instead of shallow clones
- [x] waits till missing deps are installed (bootstrap Neovim and start using it right away)
- [x] Async
- [x] No need for compile
- [x] Fast
- [x] Correct sequencing of dependencies (deps should always be opt. Maybe make everything opt?)
- [x] Config in multiple files
- [x] Patterns for local packages
- [x] Profiling
- [x] lockfile
2022-11-29 19:16:09 +08:00
- [x] upvalues in `config` & `init`
- [x] check for updates
2022-12-01 06:15:14 +08:00
- [x] lazy-lock.lua
2022-11-29 07:15:13 +08:00
- [x] tag/version support `git tag --sort version:refname`
- [x] auto-loading on completion for lazy-loaded commands
2022-11-29 19:49:15 +08:00
- [x] bootstrap code
2022-11-29 07:15:13 +08:00
- [x] semver https://devhints.io/semver
2022-11-28 14:36:46 +08:00
https://semver.npmjs.com/
2022-11-26 21:31:29 +08:00
## ✅ TODO
- [ ] health checks: check merge conflicts async
- [ ] unsupported props or props from other managers
2022-12-02 16:25:25 +08:00
- [ ] other packages still in site?
- [ ] other package manager artifacts still present? compiled etc
- [ ] fix plugin details
- [ ] show disabled plugins (strikethrough?)
2022-12-01 06:15:14 +08:00
- [ ] log file
- [ ] git tests
2022-12-02 16:25:25 +08:00
- [ ] Import specs from other plugin managers
2022-12-06 04:05:20 +08:00
- [x] Background update checker
2022-12-01 06:15:14 +08:00
- [ ] [packspec](https://github.com/nvim-lua/nvim-package-specification)
- [ ] 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?
2022-12-02 16:25:25 +08:00
- [ ] package meta index (package.lua cache for all packages)
2022-12-05 21:47:18 +08:00
- [x] status page showing running handlers and cache stats
- [x] delete lazy keymaps when a plugin loads. Reset handlers for a plugin?
- [x] deal with re-sourcing init.lua. Check a global?
- [x] rename `run` to `build`
- [x] temp colorscheme
- [x] allow setting up plugins through config **fooo**
- [x] task timeout
- [x] incorrect when switching TN from opt to start
- [x] max concurrency
- [x] ui border
- [x] make sure we can reload specs while keeping state
- [x] use uv file watcher (or stat) to check for config changes
- [x] support for Plugin.lock
2022-11-29 22:25:09 +08:00
- [x] defaults for git log
2022-11-29 19:02:25 +08:00
- [x] view keybindings for update/clean/...
- [x] add profiler to view
- [x] add buttons for actions
2022-11-29 07:15:13 +08:00
- [x] show time taken for op in view
2022-12-02 16:25:25 +08:00
- [x] auto lazy-loading of lua modules
2022-11-26 21:31:29 +08:00
- [x] clear errors
2022-11-29 07:15:13 +08:00
- [x] add support for versions `git tag --sort v:refname`
2022-11-29 22:25:09 +08:00
- [x] rename requires to dependencies
2022-11-29 07:15:13 +08:00
- [x] move tasks etc to Plugin.state
2022-11-30 02:58:23 +08:00
- [x] handlers imply opt
- [x] dependencies imply opt for deps
2022-11-29 22:25:09 +08:00
- [x] fix local plugin spec
2022-12-02 16:25:25 +08:00
- [x] investigate all opt=true. Simplifies logic (easily switch between opt/start afterwards)
2022-11-29 22:25:09 +08:00
## 📦 Differences with Packer
- **Plugin Spec**:
- `setup` => `init`
- `requires` => `dependencies`
- `as` => `name`
2022-12-01 18:32:52 +08:00
- `opt` => `lazy`
- `run` => `build`
2022-12-02 16:25:25 +08:00
- `lock` => `pin`
- `module` is auto-loaded. No need to specify
2022-12-01 06:15:14 +08:00
## 📦 Other Neovim Plugin Managers in Lua
- [packer.nvim](https://github.com/wbthomason/packer.nvim)
- [paq-nvim](https://github.com/savq/paq-nvim)
- [neopm](https://github.com/ii14/neopm)
- [dep](https://github.com/chiyadev/dep)
- [optpack.nvim](https://github.com/notomo/optpack.nvim)
2022-12-04 00:46:10 +08:00
- [pact.nvim](https://github.com/rktjmp/pact.nvim)