mirror of https://github.com/folke/lazy.nvim.git
43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
---
|
|
sidebar_position: 4
|
|
---
|
|
# 📦 Packages
|
|
|
|
**lazy.nvim** supports three ways for plugins to define their dependencies and configuration.
|
|
|
|
- **Lazy**: `lazy.lua` file
|
|
- **Rockspec**: [luarocks](https://luarocks.org/) `*-scm-1.rockspec` [file](https://github.com/luarocks/luarocks/wiki/Rockspec-format)
|
|
- **Packspec**: `pkg.json` (experimental, since the [format](https://github.com/neovim/packspec/issues/41) is not quite there yet)
|
|
|
|
You can enable/disable package sources with [`config.pkg.sources`](/configuration).
|
|
The order of sources is important, as the first source that finds a package will be used.
|
|
|
|
:::info
|
|
|
|
Package specs are always loaded in the scope of the plugin (using [specs](/spec#advanced)),
|
|
so that when the plugin is disabled, none of the specs are loaded.
|
|
|
|
:::
|
|
|
|
## Lazy
|
|
|
|
Using a `lazy.lua` file is the recommended way to define your plugin dependencies and configuration.
|
|
Syntax is the same as any plugin spec.
|
|
|
|
## Rockspec
|
|
|
|
When a plugin contains a `*-1.rockspec` file, **lazy.nvim** will automatically build the rock and its dependencies.
|
|
|
|
A **rockspec** will only be used if one of the following is true:
|
|
|
|
- the package does not have a `/lua` directory
|
|
- the package has a complex build step
|
|
- the package has dependencies (excluding `lua`)
|
|
|
|
## Packspec
|
|
|
|
Supports the [pkg.json](https://github.com/nvim-lua/nvim-package-specification/issues/41) format,
|
|
with a lazy extension in `lazy`.
|
|
`lazy` can contain any valid lazy spec fields. They will be added to the plugin's spec.
|
|
|