*lazy.nvim.txt*          For NVIM v0.5.0         Last change: 2022 December 02

==============================================================================
Table of Contents                                *lazy.nvim-table-of-contents*

1. lazy.nvim                                             |lazy.nvim-lazy.nvim|
  - Features                                              |lazy.nvim-features|
  - TODO                                                      |lazy.nvim-todo|
  - Differences with Packer                |lazy.nvim-differences-with-packer|
  - Other Neovim Plugin Managers in Lua|lazy.nvim-other-neovim-plugin-managers-in-lua|

==============================================================================
1. lazy.nvim                                             *lazy.nvim-lazy.nvim*

FEATURES                                                  *lazy.nvim-features*


- Partial clones instead of shallow clones
- waits till missing deps are installed (bootstrap Neovim and start using it right away)
- Async
- No need for compile
- Fast
- Correct sequencing of dependencies (deps should always be opt. Maybe make everything opt?)
- Config in multiple files
- Patterns for local packages
- Profiling
- lockfile
- upvalues in `config` & `init`
- check for updates
- lazy-lock.lua
- tag/version support `git tag --sort version:refname`
- auto-loading on completion for lazy-loaded commands
- bootstrap code
- semver https://devhints.io/semver
    https://semver.npmjs.com/


TODO                                                          *lazy.nvim-todo*


- 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
- rename `run` to `build`
- delete lazy keymaps when a plugin loads
- temp colorscheme
- allow setting up plugins through config
- task timeout
- log file
- deal with re-sourcing init.lua. Check a global?
- incorrect when switching TN from opt to start
- git tests
- max concurrency
- ui border
- make sure we can reload specs while keeping state
- show disabled plugins (strikethrough?)
- Import specs from other plugin managers
- use uv file watcher (or stat) to check for config changes
- 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?
    - package meta index (package.lua cache for all packages)
- support for Plugin.lock
- defaults for git log
- view keybindings for update/clean/…
- add profiler to view
- add buttons for actions
- show time taken for op in view
- auto lazy-loading of lua modules
- clear errors
- add support for versions `git tag --sort v:refname`
- rename requires to dependencies
- move tasks etc to Plugin.state
- handlers imply opt
- dependencies imply opt for deps
- fix local plugin spec
- investigate all opt=true. Simplifies logic (easily switch between opt/start afterwards)


DIFFERENCES WITH PACKER                    *lazy.nvim-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*lazy.nvim-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>


Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>

vim:tw=78:ts=8:noet:ft=help:norl:
