mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 12:42:21 +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
 | 
						|
```
 |