mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-06 10:21:31 +00:00
37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# Custom Plugins {#ch-custom-plugins}
|
|
|
|
**nvf** exposes a very wide variety of plugins by default, which are consumed by
|
|
module options. This is done for your convenience, and to bundle all necessary
|
|
dependencies into **nvf**'s runtime with full control of versioning, testing and
|
|
dependencies. In the case a plugin you need is _not_ available, you may consider
|
|
making a pull request to add the package you're looking for, or you may add it
|
|
to your configuration locally. The below section describes how new plugins may
|
|
be added to the user's configuration.
|
|
|
|
## Adding Plugins {#ch-adding-plugins}
|
|
|
|
Per **nvf**'s design choices, there are several ways of adding custom plugins to
|
|
your configuration as you need them. As we aim for extensive configuration, it
|
|
is possible to add custom plugins (from nixpkgs, pinning tools, flake inputs,
|
|
etc.) to your Neovim configuration before they are even implemented in **nvf**
|
|
as a module.
|
|
|
|
:::{.info}
|
|
|
|
To add a plugin to your runtime, you will need to add it to
|
|
[](#opt-vim.startPlugins) list in your configuration. This is akin to cloning a
|
|
plugin to `~/.config/nvim`, but they are only ever placed in the Nix store and
|
|
never exposed to the outside world for purity and full isolation.
|
|
|
|
:::
|
|
|
|
As you would configure a cloned plugin, you must configure the new plugins that
|
|
you've added to `startPlugins.` **nvf** provides multiple ways of configuring
|
|
any custom plugins that you might have added to your configuration.
|
|
|
|
```{=include=} sections
|
|
custom-plugins/configuring.md
|
|
custom-plugins/lazy-method.md
|
|
custom-plugins/non-lazy-method.md
|
|
custom-plugins/legacy-method.md
|
|
```
|