diff --git a/index.xhtml b/index.xhtml index 4e84f4ae..28f7fa3f 100644 --- a/index.xhtml +++ b/index.xhtml @@ -6,10 +6,10 @@
Table of Contents
If you noticed a bug caused by nvf then please consider reporting it over -the issue tracker.
Bugfixes, feature additions and upstreamed changes from your local configurations -are always welcome in the the pull requests tab.
-Table of Contents
Thanks to the portability of Nix, you can try out nvf without actually installing it to your machine. -Below are the commands you may run to try out different configurations provided by this flake. As of v0.5, three -configurations are provided:
Nix
Maximal
You may try out any of the provided configurations using the nix run command on a system where Nix is installed.
$ cachix use nvf # Optional: it'll save you CPU resources and time
+ Table of Contents
+ Preface
Table of Contents
What is nvf
nvf is a highly modular, configurable, extensible and easy to use Neovim
+configuration in Nix. Designed for flexibility and ease of use, nvf allows you
+to easily configure your fully featured Neovim instance with a few lines of Nix.
+ Bugs & Suggestions
If you notice any issues with nvf, or this documentation, then please consider
+reporting them over at the issue tracker. Issues tab, in addition to the
+discussions tab is a good place as any to request new features.
You may also consider submitting bugfixes, feature additions and upstreamed
+changes that you think are critical over at the pull requests tab.
+
+
+ Try it out
Table of Contents
Thanks to the portability of Nix, you can try out nvf without actually
+installing it to your machine. Below are the commands you may run to try out
+different configurations provided by this flake. As of v0.5, two specialized
+configurations are provided:
Nix - Nix language server + simple utility plugins
Maximal - Variable language servers + utility and decorative plugins
You may try out any of the provided configurations using the nix run command
+on a system where Nix is installed.
$ cachix use nvf # Optional: it'll save you CPU resources and time
$ nix run github:notashelf/nvf#nix # will run the default minimal configuration
-
Do keep in mind that this is susceptible to garbage collection meaning it will be removed from your Nix store
-once you garbage collect.
Using Prebuilt Configs
$ nix run github:notashelf/nvf#nix
+
Do keep in mind that this is susceptible to garbage collection meaning it
+will be removed from your Nix store once you garbage collect.
Using Prebuilt Configs
$ nix run github:notashelf/nvf#nix
$ nix run github:notashelf/nvf#maximal
-
Available Configs
Nix
Nix configuration by default provides LSP/diagnostic support for Nix alongisde a set of visual and functional plugins.
-By running nix run .#, which is the default package, you will build Neovim with this config.
- Maximal
Maximal is the ultimate configuration that will enable support for more commonly used language as well as additional
-complementary plugins. Keep in mind, however, that this will pull a lot of dependencies.
You are strongly recommended to use the binary cache if you would like to try the Maximal configuration.
+ Available Configs
Nix
Nix configuration by default provides LSP/diagnostic support for Nix alongside
+a set of visual and functional plugins. By running nix run .#, which is the
+default package, you will build Neovim with this config.
+ Maximal
Maximal is the ultimate configuration that will enable support for more
+commonly used language as well as additional complementary plugins. Keep in
+mind, however, that this will pull a lot of dependencies.
Tip
You are strongly recommended to use the binary cache if you would like to try
+the Maximal configuration.
- Default Configs
While you can configure nvf yourself using the builder, you can also use the pre-built configs that are available.
-Here are a few default configurations you can use.
Maximal
$ nix shell github:notashelf/nvf#maximal test.nix
+
Default Configs
While you can configure nvf yourself using the builder, you can also use the
+pre-built configs that are available. Here are a few default configurations you
+can use.
Maximal
$ nix shell github:notashelf/nvf#maximal test.nix
It is the same fully configured Neovim as with the Nix
-configuration, but with every supported language enabled.
Note
Running the maximal config will download a lot of packages as it is
-downloading language servers, formatters, and more.
+configuration, but with every supported language enabled.::: {.note} Running the maximal config will download a lot of packages as it
+is downloading language servers, formatters, and more. :::
Nix
$ nix run github:notashelf/nvf#nix test.nix
Enables all the of Neovim plugins, with language support for specifically Nix.
This lets you see what a fully configured neovim setup looks like without
downloading a whole bunch of language servers and associated tools.
Installing nvf
There are multiple ways of installing nvf on your system. You may either choose
-the standalone installation method, which does not depend on a module system and may
-be done on any system that has the Nix package manager or the appropriate modules
-for NixOS and home-manager as described in the module installation section
Standalone Installation
Table of Contents
It is possible to install nvf without depending on NixOS or home-manager as the parent
-module system, using the neovimConfiguration function exposed by nvf extended library.
-It takes in the configuration as a module, and returns an attribute set as a result.
{
+the standalone installation method, which does not depend on a module system and
+may be done on any system that has the Nix package manager or the appropriate
+modules for NixOS and home-manager as described in the
+module installation section.
Standalone Installation
Table of Contents
It is possible to install nvf without depending on NixOS or Home-Manager as the
+parent module system, using the neovimConfiguration function exposed in the
+extended library. This function will take modules and extraSpecialArgs as
+arguments, and return the following schema as a result.
{
options = "The options that were available to configure";
config = "The outputted configuration";
pkgs = "The package set used to evaluate the module";
neovim = "The built neovim package";
}
-
Standalone Installation on NixOS
Your built Neovim configuration can be exposed as a flake output to make it
+
An example flake that exposes your custom Neovim configuration might look like
{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ nvf.url = "github:notashelf/nvf";
+ };
+
+ outputs = {
+ self,
+ nixpkgs,
+ ...
+ } @ inputs: {
+ packages."x86_64-linux" = let
+ neovimConfigured = (inputs.nvf.lib.neovimConfiguration {
+ inherit (nixpkgs.legacyPackages."x86_64-linux") pkgs;
+ modules = [{
+ config.vim = {
+ # Enable custom theming options
+ theme.enable = true;
+
+ # Enable Treesitter
+ tree-sitter.enable = true;
+
+ # Other options will go here. Refer to the config
+ # reference in Appendix B of the nvf manual.
+ # ...
+ };
+ }];
+ });
+ in {
+ # Set the default package to the wrapped instance of Neovim.
+ # This will allow running your Neovim configuration with
+ # `nix run` and in addition, sharing your configuration with
+ # other users in case your repository is public.
+ default = neovimConfigured.neovim;
+ };
+ };
+}
+
The above setup will allow to set up nvf as a standalone flake, which you can
+build independently from your system configuration while also possibly sharing
+it with others. The next two chapters will detail specific usage of such a setup
+for a package output in the context of NixOS or Home-Manager installation.
Standalone Installation on NixOS
Your built Neovim configuration can be exposed as a flake output to make it
easier to share across machines, repositories and so on. Or it can be added to
your system packages to make it available across your system.
The following is an example installation of nvf as a standalone package with
the default theme enabled. You may use other options inside config.vim in
-configModule, but this example will not cover that.
{
+configModule, but this example will not cover that extensively.{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
@@ -100,21 +154,19 @@ the default theme enabled. You may use other options inside The following is an example installation of nvf as a standalone package with
the default theme enabled. You may use other options inside config.vim in
-configModule, but this example will not cover that.
{
+configModule, but this example will not cover that extensively.{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
@@ -148,23 +200,22 @@ the default theme enabled. You may use other options inside
- Module Installation
Table of Contents
NixOS Module
Table of Contents
The NixOS module allows us to customize the different vim options from inside
+
Module Installation
Table of Contents
The below chapters will describe installing nvf as NixOS and Home-Manager
+modules. Note that those methods are mutually exclusive, and will likely cause
+path collisions if used simultaneously.
NixOS Module
Table of Contents
The NixOS module allows us to customize the different vim options from inside
the NixOS configuration without having to call for the wrapper yourself. It is
the recommended way to use nvf alongside the home-manager module depending
on your needs.
To use it, we first add the input flake.
{
@@ -227,8 +280,8 @@ configure nvf.
Note
nvf exposes a lot of options, most of which are not referenced in the
-installation sections of the manual. You may find all avaliable options
-in the appendix
+installation sections of the manual. You may find all available options in the
+appendix
Home-Manager Module
Table of Contents
The home-manager module allows us to customize the different vim options from
@@ -286,13 +339,13 @@ configure nvf.
Note
nvf exposes a lot of options, most of which are not referenced in the
-installation sections of the manual. You may find all avaliable options
-in the appendix
+installation sections of the manual. You may find all available options in the
+appendix
- Configuring nvf
Custom Neovim Package
As of v0.5, you may now specify the Neovim package that will be wrapped with
+
Configuring nvf
Custom Neovim Package
As of v0.5, you may now specify the Neovim package that will be wrapped with
your configuration. This is done with the vim.package option.
{inputs, pkgs, ...}: {
# using the neovim-nightly overlay
vim.package = inputs.neovim-overlay.packages.${pkgs.system}.neovim;
@@ -304,22 +357,37 @@ the neovim package, similar to neovim-unwrapped in
vim.package = pkgs.neovim-unwrapped;
}
- Custom Plugins
Table of Contents
nvf, by default, exposes a wide variety of plugins as module options
-for your convenience and bundles necessary dependencies into nvf’s runtime.
-In case a plugin is not available in nvf, you may consider making a pull
+
Custom Plugins
Table of Contents
nvf, by default, exposes a wide variety of plugins as module options for
+your convenience and bundles necessary dependencies into nvf’s runtime. In
+case a plugin is not available in nvf, you may consider making a pull
request to nvf to include it as a module or you may add it to your
-configuration locally.
Adding Plugins
There are multiple ways of adding custom plugins to your nvf configuration.
You can use custom plugins, before they are implemented in the flake. To add a
-plugin to the runtime, you need to add it to the vim.startPlugins list in
-your configuration.
Adding a plugin to startPlugins will not allow you to configure the plugin
-that you have adeed, but nvf provides multiple way of configuring any
-custom plugins that you might have added to your configuration.
Configuring
Just making the plugin to your Neovim configuration available might not always
+configuration locally.
Adding Plugins
There are multiple ways of adding custom plugins to your nvf configuration.
You can use custom plugins, before they are implemented in the flake. To add a
+plugin to the runtime, you need to add it to the vim.startPlugins list
+in your configuration.
Adding a plugin to startPlugins will not allow you to configure the plugin
+that you have added, but nvf provides multiple way of configuring any custom
+plugins that you might have added to your configuration.
Configuring
Just making the plugin to your Neovim configuration available might not always
be enough. In that case, you can write custom lua config using either
-config.vim.extraPlugins (which has the setup field) or
-config.vim.luaConfigRC. The first option uses an attribute set, which maps DAG
-section names to a custom type, which has the fields package, after,
-setup. They allow you to set the package of the plugin, the sections its setup
-code should be after (note that the extraPlugins option has its own DAG
-scope), and the its setup code respectively. For example:
config.vim.extraPlugins = with pkgs.vimPlugins; {
+config.vim.lazy.plugins.*.setupOpts config.vim.extraPlugins.*.setup or
+config.vim.luaConfigRC.The first option uses an extended version of lz.n’s PluginSpec. setupModule
+and setupOpt can be used if the plugin uses a require('module').setup(...)
+pattern. Otherwise, the before and after hooks should do what you need.
{
+ config.vim.lazy.plugins = {
+ aerial.nvim = {
+ # ^^^^^^^^^ this name should match the package.pname or package.name
+ package = aerial-nvim;
+
+ setupModule = "aerial";
+ setupOpts = {option_name = false;};
+
+ after = "print('aerial loaded')";
+ };
+ };
+}
+
The second option uses an attribute set, which maps DAG section names to a
+custom type, which has the fields package, after, setup. They allow you to
+set the package of the plugin, the sections its setup code should be after (note
+that the extraPlugins option has its own DAG scope), and the its setup code
+respectively. For example:
config.vim.extraPlugins = with pkgs.vimPlugins; {
aerial = {
package = aerial-nvim;
setup = "require('aerial').setup {}";
@@ -331,20 +399,55 @@ scope), and the its setup code respectively. For example:{
# this will create an "aquarium" section in your init.lua with the contents of your custom config
# which will be *appended* to the rest of your configuration, inside your init.vim
config.vim.luaConfigRC.aquarium = "vim.cmd('colorscheme aquiarum')";
}
-
Note
If your configuration needs to be put in a specific place in the config, you
-can use functions from inputs.nvf.lib.nvim.dag to order it. Refer to
-https://github.com/nix-community/home-manager/blob/master/modules/lib/dag.nix
-to find out more about the DAG system.
If you successfully made your plugin work, please feel free to create a PR to
-add it to nvf or open an issue with your findings so that we can make it
-available for everyone easily.
-
New Method
As of version 0.5, we have a more extensive API for configuring plugins,
+
Note
One of the greatest strengths of nvf is the ability to order
+snippets of configuration via the DAG system. It will allow specifying positions
+of individual sections of configuration as needed. nvf provides helper functions
+in the extended library, usually under inputs.nvf.lib.nvim.dag that you may
+use.
Please refer to the DAG section in the nvf manual
+to find out more about the DAG system.
+ Lazy Method
As of version 0.7, we exposed an API for configuring lazy-loaded plugins via
+lz.n and lzn-auto-require.
{
+ config.vim.lazy.plugins = {
+ "aerial.nvim" = {
+ package = pkgs.vimPlugins.aerial-nvim;
+ setupModule = "aerial";
+ setupOpts = {
+ option_name = true;
+ };
+ after = ''
+ -- custom lua code to run after plugin is loaded
+ print('aerial loaded')
+ '';
+
+ # Explicitly mark plugin as lazy. You don't need this if you define one of
+ # the trigger "events" below
+ lazy = true;
+
+ # load on command
+ cmd = ["AerialOpen"];
+
+ # load on event
+ event = ["BufEnter"];
+
+ # load on keymap
+ keys = [
+ {
+ key = "<leader>a";
+ action = ":AerialToggle<CR>";
+ }
+ ];
+ };
+ };
+}
+
+ Non-lazy Method
As of version 0.5, we have a more extensive API for configuring plugins,
under vim.extraPlugins. Instead of using DAGs exposed by the library, you may
use the extra plugin module as follows:
{
config.vim.extraPlugins = with pkgs.vimPlugins; {
@@ -365,18 +468,21 @@ use the extra plugin module as follows:
-
Old Method
Prior to version 0.5, the method of adding new plugins was adding the plugin
+
Legacy Method
Prior to version v0.5, the method of adding new plugins was adding the plugin
package to vim.startPlugins and add its configuration as a DAG under one of
vim.configRC or vim.luaConfigRC. Users who have not yet updated to 0.5, or
prefer a more hands-on approach may use the old method where the load order of
-the plugins is determined by DAGs.
Adding plugins
To add a plugin to nvf’s runtime, you may add it
{pkgs, ...}: {
- # add a package from nixpkgs to startPlugins
- vim.startPlugins = [
- pkgs.vimPlugins.aerial-nvim ];
+the plugins is determined by DAGs. Adding plugins
To add a plugin not available in nvf as a module to your configuration, you may
+add it to vim.startPlugins in order to make it available to Neovim at
+runtime.
{pkgs, ...}: {
+ # Add a Neovim plugin from Nixpkgs to the runtime.
+ vim.startPlugins = [pkgs.vimPlugins.aerial-nvim];
}
And to configure the added plugin, you can use the luaConfigRC option to
provide configuration as a DAG using the nvf extended library.
{inputs, ...}: let
- # assuming you have an input called nvf pointing at the nvf repository
+ # This assumes you have an input called 'nvf' in your flake inputs
+ # and 'inputs' in your specialArgs. In the case you have passed 'nvf'
+ # to specialArgs, the 'inputs' prefix may be omitted.
inherit (inputs.nvf.lib.nvim.dag) entryAnywhere;
in {
vim.luaConfigRC.aerial-nvim= entryAnywhere ''
@@ -391,14 +497,52 @@ in {
+ Custom Inputs
One of the greatest strengths of nvf is its ability to get plugins from
+flake inputs and build them locally from any given source. For plugins that do
+not require any kind of additional building step, this is a powerful method of
+adding plugins to your configuration that are not packaged in nixpkgs, or those
+you want to track from source without relying on nixpkgs.
The additional plugins section details the addition
+of new plugins to nvf under regular circumstances, i.e. while making a pull
+request to the project. You may override those plugin inputs in your own
+flake.nix to change source versions, e.g., to use newer versions of plugins
+that are not yet updated in nvf.
{
+
+ inputs = {
+ # ...
+
+ # The name here is arbitrary, you can name it whatever.
+ # This will add a plugin input called "your-neodev-input"
+ # that you can reference in a `follows` line.
+ your-neodev-input = {
+ url = "github:folke/neodev.nvim";
+ flake = false;
+ };
+
+ nvf = {
+ url = "github:notashelf/nvf";
+
+ # The name of the input must match for the follows line
+ # plugin-neodev-nvim is what the input is called inside nvf
+ # so you must match the exact name here.
+ inputs.plugin-neodev-nvim.follows = "your-neodev-input";
+ };
+ # ...
+ };
+}
+
This will override the source for the neodev.nvim plugin that is used in nvf
+with your own input. You can update your new input via nix flake update or
+more specifically nix flake update <name of your input> to keep it up to date.
Warning
While updating plugin inputs, make sure that any configuration that has been
+deprecated in newer versions is changed in the plugin’s setupOpts. If you
+depend on a new version, requesting a version bump in the issues section is a
+more reliable option.
Language Support
Table of Contents
Language specific support means there is a combination of language specific
plugins, treesitter support, nvim-lspconfig language servers, and null-ls
-integration. This gets you capabilities ranging from autocompletion to formatting
-to diagnostics. The following languages have sections under the vim.languages
-attribute.
C/C++: vim.languages.clang.enable
Typescript/Javascript: vim.languages.ts.enable
Python: vim.languages.python.enable:
Markdown: vim.languages.markdown.enable
Adding support for more languages, and improving support for existing ones are great places
-where you can contribute with a PR.
LSP Custom Packages/Command
In any of the opt.languages.<language>.lsp.package options you can provide
-your own LSP package, or provide the command to launch the language server, as
-a list of strings. You can use this to skip automatic installation of a language
+integration. This gets you capabilities ranging from autocompletion to
+formatting to diagnostics. The following languages have sections under the
+vim.languages attribute.
C/C++: vim.languages.clang.enable
Typescript/Javascript: vim.languages.ts.enable
Python: vim.languages.python.enable:
Markdown: vim.languages.markdown.enable
Adding support for more languages, and improving support for existing ones are
+great places where you can contribute with a PR.
LSP Custom Packages/Command
In any of the opt.languages.<language>.lsp.package options you can provide
+your own LSP package, or provide the command to launch the language server, as a
+list of strings. You can use this to skip automatic installation of a language
server, and instead use the one found in your $PATH during runtime, for
example:
vim.languages.java = {
lsp = {
@@ -411,57 +555,54 @@ example:vim.languages.java = {
Using DAGs
Table of Contents
We conform to the NixOS options types for the most part, however, a noteworthy
-addition for certain options is the DAG
-(Directed acyclic graph)
+addition for certain options is the
+DAG (Directed acyclic graph)
type which is borrowed from home-manager’s extended library. This type is most
used for topologically sorting strings. The DAG type allows the attribute set
-entries to express dependency relations among themselves. This can, for
-example, be used to control the order of configuration sections in your
-luaConfigRC.
The below section, mostly taken from the home-manager
-manual
-explains in more detail the overall usage logic of the DAG type.
entryAnywhere
lib.dag.entryAnywhere (value: T) : DagEntry<T>
Indicates that value can be placed anywhere within the DAG.
-This is also the default for plain attribute set entries, that
-is
foo.bar = {
+entries to express dependency relations among themselves. This can, for example,
+be used to control the order of configuration sections in your luaConfigRC.The below section, mostly taken from the
+home-manager manual
+explains in more detail the overall usage logic of the DAG type.
entryAnywhere
lib.dag.entryAnywhere (value: T) : DagEntry<T>
Indicates that value can be placed anywhere within the DAG. This is also the
+default for plain attribute set entries, that is
foo.bar = {
a = lib.dag.entryAnywhere 0;
}
and
foo.bar = {
a = 0;
}
are equivalent.
- entryAfter
lib.dag.entryAfter (afters: list string) (value: T) : DagEntry<T>
Indicates that value must be placed after each of the
-attribute names in the given list. For example
foo.bar = {
+
entryAfter
lib.dag.entryAfter (afters: list string) (value: T) : DagEntry<T>
Indicates that value must be placed after each of the attribute names in the
+given list. For example
foo.bar = {
a = 0;
b = lib.dag.entryAfter [ "a" ] 1;
}
would place b after a in the graph.
- entryBefore
lib.dag.entryBefore (befores: list string) (value: T) : DagEntry<T>
Indicates that value must be placed before each of the
-attribute names in the given list. For example
foo.bar = {
+
entryBefore
lib.dag.entryBefore (befores: list string) (value: T) : DagEntry<T>
Indicates that value must be placed before each of the attribute names in
+the given list. For example
foo.bar = {
b = lib.dag.entryBefore [ "a" ] 1;
a = 0;
}
would place b before a in the graph.
- entryBetween
lib.dag.entryBetween (befores: list string) (afters: list string) (value: T) : DagEntry<T>
Indicates that value must be placed before the attribute
-names in the first list and after the attribute names in the
-second list. For example
foo.bar = {
+
entryBetween
lib.dag.entryBetween (befores: list string) (afters: list string) (value: T) : DagEntry<T>
Indicates that value must be placed before the attribute names in the first
+list and after the attribute names in the second list. For example
foo.bar = {
a = 0;
c = lib.dag.entryBetween [ "b" ] [ "a" ] 2;
b = 1;
}
-
would place c before b and after a in the graph.
There are also a set of functions that generate a DAG from a list.
-These are convenient when you just want to have a linear list of DAG
-entries, without having to manually enter the relationship between
-each entry. Each of these functions take a tag as argument and the
-DAG entries will be named ${tag}-${index}.
- entriesAnywhere
lib.dag.entriesAnywhere (tag: string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled
-using the given tag. For example
foo.bar = lib.dag.entriesAnywhere "a" [ 0 1 ];
+
would place c before b and after a in the graph.
There are also a set of functions that generate a DAG from a list. These are
+convenient when you just want to have a linear list of DAG entries, without
+having to manually enter the relationship between each entry. Each of these
+functions take a tag as argument and the DAG entries will be named
+${tag}-${index}.
+ entriesAnywhere
lib.dag.entriesAnywhere (tag: string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled using the given tag.
+For example
foo.bar = lib.dag.entriesAnywhere "a" [ 0 1 ];
is equivalent to
foo.bar = {
a-0 = 0;
a-1 = lib.dag.entryAfter [ "a-0" ] 1;
}
- entriesAfter
lib.dag.entriesAfter (tag: string) (afters: list string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled
-using the given tag. The list of values are placed are placed
-after each of the attribute names in afters. For example
foo.bar =
+
entriesAfter
lib.dag.entriesAfter (tag: string) (afters: list string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled using the given tag.
+The list of values are placed are placed after each of the attribute names in
+afters. For example
foo.bar =
{ b = 0; } // lib.dag.entriesAfter "a" [ "b" ] [ 1 2 ];
is equivalent to
foo.bar = {
b = 0;
@@ -469,20 +610,19 @@ using the given tag. The list of values are placed are placed
a-1 = lib.dag.entryAfter [ "a-0" ] 2;
}
- entriesBefore
lib.dag.entriesBefore (tag: string) (befores: list string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled
-using the given tag. The list of values are placed before each
-of the attribute names in befores. For example
foo.bar =
- { b = 0; } // lib.dag.entriesBefore "a" [ "b" ] [ 1 2 ];
+
entriesBefore
lib.dag.entriesBefore (tag: string) (befores: list string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled using the given tag.
+The list of values are placed before each of the attribute names in befores.
+For example
foo.bar =
+ { b = 0; } // lib.dag.entriesBefore "a" [ "b" ] [ 1 2 ];
is equivalent to
foo.bar = {
b = 0;
a-0 = 1;
a-1 = lib.dag.entryBetween [ "b" ] [ "a-0" ] 2;
}
- entriesBetween
lib.dag.entriesBetween (tag: string) (befores: list string) (afters: list string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled
-using the given tag. The list of values are placed before each
-of the attribute names in befores and after each of the
-attribute names in afters. For example
foo.bar =
+
entriesBetween
lib.dag.entriesBetween (tag: string) (befores: list string) (afters: list string) (values: [T]) : Dag<T>
Creates a DAG with the given values with each entry labeled using the given tag.
+The list of values are placed before each of the attribute names in befores
+and after each of the attribute names in afters. For example
foo.bar =
{ b = 0; c = 3; } // lib.dag.entriesBetween "a" [ "b" ] [ "c" ] [ 1 2 ];
is equivalent to
foo.bar = {
b = 0;
@@ -497,66 +637,73 @@ attribute names in afters. For example vim.luaConfigRC (top-level DAG)
(luaConfigPre) - not a part of the actual DAG, instead, it’s simply
-inserted before the rest of the DAG
globalsScript - used to set globals defined in vim.globals
basic - used to set basic configuration options
optionsScript - used to set options defined in vim.o
theme (this is simply placed before pluginConfigs, meaning that
-surrounding entries don’t depend on it) - used to set up the theme, which has
-to be done before other plugins
pluginConfigs - the result of the nested vim.pluginRC (internal option,
+inserted before the rest of the DAG
globalsScript - used to set globals defined in vim.globals
basic - used to set basic configuration options
optionsScript - used to set options defined in vim.o
theme (this is simply placed before pluginConfigs and lazyConfigs,
+meaning that surrounding entries don’t depend on it) - used to set up the
+theme, which has to be done before other plugins
lazyConfigs - lz.n and lzn-auto-require configs. If vim.lazy.enable
+is false, this will contain each plugin’s config instead.
pluginConfigs - the result of the nested vim.pluginRC (internal option,
see the Custom Plugins page for adding your
own plugins) DAG, used to set up internal plugins
extraPluginConfigs - the result of vim.extraPlugins, which is not a
direct DAG, but is converted to, and resolved as one internally
mappings - the result of vim.maps
-
Hacking nvf
Table of Contents
nvf is designed for developers as much as it is for the end user. I would like any potential contributor
-to be able to propagate their desired changes into the repository without the extra effort. As such, below are guides
-(and guidelines) to streamline the contribution process and ensure that your valuable input seamlessly integrates
-into nvf’s development without leaving question marks in your head.
This section is mainly directed towards those who wish to contribute code into nvf. If you wish to instead
-report a bug or discuss a potential feature implementation, first look among the
-already open issues and if no matching issue exists you may open
-a new issue and describe your problem/request. While creating an
-issue, please try to include as much information as you can, ideally also include relevant context in which an issue
-occurs or a feature should be implemented.
Getting Started
You, naturally, would like to start by forking the repository to get started. If
-you are new to Git and GitHub, do have a look at GitHub’s Fork a repo guide
-for instructions on how you can do this. Once you have a fork of nvf, you
-should create a separate branch based on the msot recent main branch. Give
-your branch a reasonably descriptive name (e.g. feature/debugger or
+
Hacking nvf
Table of Contents
nvf is designed for the developer as much as it is designed for the end-user. We
+would like for any contributor to be able to propagate their changes, or add new
+features to the project with minimum possible friction. As such, below are the
+guides and guidelines written to streamline the contribution process and to
+ensure that your valuable input integrates into nvf’s development as seamlessly
+as possible without leaving any question marks in your head.
This section is directed mainly towards those who wish to contribute code into
+the project. If you instead wish to report a bug, or discuss a potential new
+feature implementation (which you do not wish to implement yourself) first look
+among the already open issues and if no matching issue exists you may open a
+new issue and describe your problem/request.
While creating an issue, please try to include as much information as you can,
+ideally also include relevant context in which an issue occurs or a feature
+should be implemented. If you wish to make a contribution, but feel stuck -
+please do not be afraid to submit a pull request, we will help you get it in.
Getting Started
You, naturally, would like to start by forking the repository to get started. If
+you are new to Git and GitHub, do have a look at GitHub’s
+Fork a repo guide for
+instructions on how you can do this. Once you have a fork of nvf, you should
+create a separate branch based on the most recent main branch. Give your
+branch a reasonably descriptive name (e.g. feature/debugger or
fix/pesky-bug) and you are ready to work on your changes
Implement your changes and commit them to the newly created branch and when you
-are happy with the result, and positive that it fullfills our Contributing
-Guidelines, push the branch to GitHub and create a pull
-request. The default
-pull request template available on the nvf repository will guide you through
-the rest of the process, and we’ll gently nudge you in the correct direction if
-there are any mistakes.
+are happy with the result, and positive that it fulfills our
+Contributing Guidelines, push the branch to GitHub and
+create a pull request.
+The default pull request template available on the nvf repository will guide
+you through the rest of the process, and we’ll gently nudge you in the correct
+direction if there are any mistakes.
Guidelines
If your contribution tightly follows the guidelines, then there is a good chance
it will be merged without too much trouble. Some of the guidelines will be
strictly enforced, others will remain as gentle nudges towards the correct
-direction. As we have no automated system enforcing those guidelines, please
-try to double check your changes before making your pull request in order to
-avoid “faulty” code slipping by.
If you are uncertain how these rules affect the change you would like to make
-then feel free to start a discussion in the discussions tab
-ideally (but not necessarily) before you start developing.
Adding Documentation
Most, if not all, changes warrant changes to the documentation. Module options
-should be documented with Nixpkgs-flavoured Markdown,
-albeit with exceptions.
Note
As of v0.5, nvf is itself documented using full markdown in both module
-options and the manual. With v0.6, this manual has also been converted to
-markdown in full.
The HTML version of this manual containing both the module option descriptions
-and the documentation of nvf (such as this page) can be generated and
-opened by typing the following in a shell within a clone of the nvf Git
-repository:
$ nix build .#docs-html
+direction. As we have no automated system enforcing those guidelines, please try
+to double check your changes before making your pull request in order to avoid
+“faulty” code slipping by.If you are uncertain how these rules affect the change you would like to make
+then feel free to start a discussion in the
+discussions tab ideally (but not
+necessarily) before you start developing.
Adding Documentation
Most, if not all, changes warrant changes to the documentation. Module options
+should be documented with
+Nixpkgs-flavoured Markdown,
+albeit with exceptions.
::: {.note} As of v0.5, nvf is itself documented using full markdown in
+both module options and the manual. With v0.6, this manual has also been
+converted to markdown in full. :::
The HTML version of this manual containing both the module option descriptions
+and the documentation of nvf (such as this page) can be generated and opened
+by typing the following in a shell within a clone of the nvf Git repository:
$ nix build .#docs-html
$ xdg-open $PWD/result/share/doc/nvf/index.html
- Formatting Code
Make sure your code is formatted as described in code-style
-section. To maintain consistency throughout the
-project you are encouraged to browse through existing code and adopt its style
-also in new code.
+ Formatting Code
Make sure your code is formatted as described in
+code-style section. To maintain consistency
+throughout the project you are encouraged to browse through existing code and
+adopt its style also in new code.
Formatting Commits
Similar to code style guidelines we encourage a
-consistent commit message format as described in commit style
-guidelines.
+consistent commit message format as described in
+commit style guidelines.
Commit Style
The commits in your pull request should be reasonably self-contained. Which
-means each and every commit in a pull request should make sense both on its
-own and in general context. That is, a second commit should not resolve an
-issue that is introduced in an earlier commit. In particular, you will be
-asked to amend any commit that introduces syntax errors or similar problems
-even if they are fixed in a later commit.
The commit messages should follow the seven
-rules, except for
+means each and every commit in a pull request should make sense both on its own
+and in general context. That is, a second commit should not resolve an issue
+that is introduced in an earlier commit. In particular, you will be asked to
+amend any commit that introduces syntax errors or similar problems even if they
+are fixed in a later commit.
The commit messages should follow the
+seven rules, except for
“Capitalize the subject line”. We also ask you to include the affected code
component or module in the first line. A commit message ideally, but not
necessarily, follow the given template from home-manager’s own documentation
{component}: {description}
@@ -564,12 +711,13 @@ necessarily, follow the given template from home-manager’s own documentation
{long description}
where {component} refers to the code component (or module) your change
affects, {description} is a very brief description of your change, and
-{long description} is an optional clarifying description. As a rare
-exception, if there is no clear component, or your change affects many
-components, then the {component} part is optional. See example commit
-message for a commit message that
-fulfills these requirements.
- Example Commit
The commit 69f8e47e9e74c8d3d060ca22e18246b7f7d988ef
+{long description} is an optional clarifying description. As a rare exception,
+if there is no clear component, or your change affects many components, then the
+{component} part is optional. See
+example commit message for a commit message
+that fulfills these requirements.
+ Example Commit
The commit
+69f8e47e9e74c8d3d060ca22e18246b7f7d988ef
in home-manager contains the following commit message.
starship: allow running in Emacs if vterm is used
The vterm buffer is backed by libvterm and can handle Starship prompts
@@ -577,22 +725,23 @@ without issues.
Similarly, if you are contributing to nvf, you would include the scope of
the commit followed by the description:
languages/ruby: init module
-Adds a language module for Ruby, adds appropriate formatters and Treesitter grammers
-
Long description can be ommitted if the change is too simple to warrant it. A
+Adds a language module for Ruby, adds appropriate formatters and Treesitter grammars
+
Long description can be omitted if the change is too simple to warrant it. A
minor fix in spelling or a formatting change does not warrant long description,
however, a module addition or removal does as you would like to provide the
relevant context, i.e. the reasoning behind it, for your commit.
Finally, when adding a new module, say modules/foo.nix, we use the fixed
commit format foo: add module. You can, of course, still include a long
description if you wish.
In case of nested modules, i.e modules/languages/java.nix you are recommended
to contain the parent as well - for example languages/java: some major change.
- Code Style
Treewide
Keep lines at a reasonable width, ideally 80 characters or less. This also applies
-to string literals and module descriptions and documentation.
- Nix
nvf is formatted by the alejandra
-tool and the formatting is checked in the pull request and push workflows. Run the
-nix fmt command inside the project repository before submitting your pull request.
While Alejandra is mostly opinionated on how code looks after formatting,
-certain changes are done at the user’s discretion based on how the original
-code was structured.
Please use one line code for attribute sets that contain only one subset.
-For example:
# parent modules should always be unfolded
+
Code Style
Treewide
Keep lines at a reasonable width, ideally 80 characters or less. This also
+applies to string literals and module descriptions and documentation.
+ Nix
nvf is formatted by the
+alejandra tool and the formatting is
+checked in the pull request and push workflows. Run the nix fmt command inside
+the project repository before submitting your pull request.
While Alejandra is mostly opinionated on how code looks after formatting,
+certain changes are done at the user’s discretion based on how the original code
+was structured.
Please use one line code for attribute sets that contain only one subset. For
+example:
# parent modules should always be unfolded
# which means module = { value = ... } instead of module.value = { ... }
module = {
value = mkEnableOption "some description" // { default = true; }; # merges can be done inline where possible
@@ -614,8 +763,8 @@ unfold the whole merged attrset for you, which we d
}; # ...
}
For lists, it is mostly up to your own discretion how you want to format them,
-but please try to unfold lists if they contain multiple items and especially
-if they are to include comments.
# this is ok
+but please try to unfold lists if they contain multiple items and especially if
+they are to include comments.# this is ok
acceptableList = [
item1 # comment
item2
@@ -640,136 +789,87 @@ acceptableList= [
- Testing Changes
Once you have made your changes, you will need to test them throughly. If it is
+
Testing Changes
Once you have made your changes, you will need to test them thoroughly. If it is
a module, add your module option to configuration.nix (located in the root of
this project) inside neovimConfiguration. Enable it, and then run the maximal
configuration with nix run .#maximal -Lv to check for build errors. If neovim
opens in the current directory without any error messages (you can check the
output of :messages inside neovim to see if there are any errors), then your
changes are good to go. Open your pull request, and it will be reviewed as soon
-as posssible.
If it is not a new module, but a change to an existing one, then make sure the
+as possible.
If it is not a new module, but a change to an existing one, then make sure the
module you have changed is enabled in the maximal configuration by editing
-configuration.nix, and then run it with nix run .#maximal -Lv. Same procedure
-as adding a new module will apply here.
+configuration.nix, and then run it with nix run .#maximal -Lv. Same
+procedure as adding a new module will apply here.
Keybinds
As of 0.4, there exists an API for writing your own keybinds and a couple of
-useful utility functions are available in the extended standard
-library. The following
-section contains a general overview to how you may utilize said functions.
Custom Key Mappings Support for a Plugin
To set a mapping, you should define it in vim.maps.<<mode>>.
-The available modes are:
normal
insert
select
visual
terminal
normalVisualOp
visualOnly
operator
insertCommand
lang
command
An example, simple keybinding, can look like this:
{
- vim.maps.normal = {
- "<leader>wq" = {
+useful utility functions are available in the
+extended standard library. The
+following section contains a general overview to how you may utilize said
+functions. Custom Key Mappings Support for a Plugin
To set a mapping, you should define it in vim.keymaps.
An example, simple keybinding, can look like this:
{
+ vim.keymaps = [
+ {
+ key = "<leader>wq";
+ mode = ["n"];
action = ":wq<CR>";
silent = true;
desc = "Save file and quit";
- };
- };
+ }
+ ];
}
There are many settings available in the options. Please refer to the
-documentation
-to see a list of them.
nvf provides a list of helper commands, so that you don’t have to write the
-mapping attribute sets every time:
mkBinding = key: action: desc: - makes a basic binding, with silent set
-to true.
mkExprBinding = key: action: desc: - makes an expression binding, with
-lua, silent, and expr set to true.
mkLuaBinding = key: action: desc: - makes an expression binding, with
-lua, and silent set to true.
Do note that the Lua in these bindings is actual Lua, and not pasted into a
-:lua command. Therefore, you should either pass in a function like
-require('someplugin').some_function, without actually calling it, or you
-should define your own functions, for example
function()
- require('someplugin').some_function()
-end
-
Additionally, to not have to repeat the descriptions, there’s another utility
-function with its own set of functions: Utility function that takes two
-attribute sets:
{ someKey = "some_value" }
{ someKey = { description = "Some Description"; }; }
and merges them into { someKey = { value = "some_value"; description = "Some Description"; }; }
addDescriptionsToMappings = actualMappings: mappingDefinitions:
-
This function can be used in combination with the same mkBinding functions as
-above, except they only take two arguments - binding and action, and have
-different names:
mkSetBinding = binding: action: - makes a basic binding, with silent
-set to true.
mkSetExprBinding = binding: action: - makes an expression binding, with
-lua, silent, and expr set to true.
mkSetLuaBinding = binding: action: - makes an expression binding, with
-lua, and silent set to true.
You can read the source code of some modules to see them in action, but their
+documentation to
+see a list of them.
nvf provides a helper function, so that you don’t have to write the
+mapping attribute sets every time:
mkKeymap, which mimics neovim’s vim.keymap.set function
You can read the source code of some modules to see them in action, but the
usage should look something like this:
# plugindefinition.nix
-{lib, ...}: with lib; {
+{lib, ...}: let
+ inherit (lib.options) mkEnableOption;
+ inherit (lib.nvim.binds) mkMappingOption;
+in {
options.vim.plugin = {
enable = mkEnableOption "Enable plugin";
# Mappings should always be inside an attrset called mappings
mappings = {
- # mkMappingOption is a helper function from lib,
- # that takes a description (which will also appear in which-key),
- # and a default mapping (which can be null)
- toggleCurrentLine = mkMappingOption "Toggle current line comment" "gcc";
- toggleCurrentBlock = mkMappingOption "Toggle current block comment" "gbc";
-
- toggleOpLeaderLine = mkMappingOption "Toggle line comment" "gc";
- toggleOpLeaderBlock = mkMappingOption "Toggle block comment" "gb";
-
- toggleSelectedLine = mkMappingOption "Toggle selected comment" "gc";
- toggleSelectedBlock = mkMappingOption "Toggle selected block" "gb";
+ workspaceDiagnostics = mkMappingOption "Workspace diagnostics [trouble]" "<leader>lwd";
+ documentDiagnostics = mkMappingOption "Document diagnostics [trouble]" "<leader>ld";
+ lspReferences = mkMappingOption "LSP References [trouble]" "<leader>lr";
+ quickfix = mkMappingOption "QuickFix [trouble]" "<leader>xq";
+ locList = mkMappingOption "LOCList [trouble]" "<leader>xl";
+ symbols = mkMappingOption "Symbols [trouble]" "<leader>xs";
};
-
- };
}
# config.nix
{
config,
- pkgs,
lib,
+ options,
...
-}:
- with lib;
- with builtins; let
- cfg = config.vim.plugin;
- self = import ./plugindefinition.nix {inherit lib;};
- mappingDefinitions = self.options.vim.plugin;
+}: let
+ inherit (lib.modules) mkIf;
+ inherit (lib.nvim.binds) mkKeymap;
- # addDescriptionsToMappings is a helper function from lib,
- # that merges mapping values and their descriptions
- # into one nice attribute set
- mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
+ cfg = config.vim.plugin;
+
+ keys = cfg.mappings;
+ inherit (options.vim.lsp.trouble) mappings;
in {
- config = mkIf (cfg.enable) {
- # ...
- vim.maps.normal = mkMerge [
- # mkSetBinding is another helper function from lib,
- # that actually adds the mapping with a description.
- (mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
- (mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
- (mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>")
- (mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
- (mkSetBinding mappings.open "<cmd> Telescope<CR>")
-
- (mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
- (mkSetBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
- (mkSetBinding mappings.gitBranches "<cmd> Telescope git_branches<CR>")
- (mkSetBinding mappings.gitStatus "<cmd> Telescope git_status<CR>")
- (mkSetBinding mappings.gitStash "<cmd> Telescope git_stash<CR>")
-
- (mkIf config.vim.lsp.enable (mkMerge [
- (mkSetBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
- (mkSetBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
-
- (mkSetBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
- (mkSetBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
- (mkSetBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
- (mkSetBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
- (mkSetBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
- ]))
-
- (
- mkIf config.vim.treesitter.enable
- (mkSetBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
- )
+ config = mkIf cfg.enable {
+ vim.keymaps = [
+ (mkKeymap "n" keys.workspaceDiagnostics "<cmd>Trouble toggle diagnostics<CR>" {desc = mappings.workspaceDiagnostics.description;})
+ (mkKeymap "n" keys.documentDiagnostics "<cmd>Trouble toggle diagnostics filter.buf=0<CR>" {desc = mappings.documentDiagnostics.description;})
+ (mkKeymap "n" keys.lspReferences "<cmd>Trouble toggle lsp_references<CR>" {desc = mappings.lspReferences.description;})
+ (mkKeymap "n" keys.quickfix "<cmd>Trouble toggle quickfix<CR>" {desc = mappings.quickfix.description;})
+ (mkKeymap "n" keys.locList "<cmd>Trouble toggle loclist<CR>" {desc = mappings.locList.description;})
+ (mkKeymap "n" keys.symbols "<cmd>Trouble toggle symbols<CR>" {desc = mappings.symbols.description;})
];
- # ...
};
}
-
Note
If you have come across a plugin that has an API that doesn’t seem to easily
allow custom keybindings, don’t be scared to implement a draft PR. We’ll help
you get it done.
-
Adding Plugins
To add a new Neovim plugin, first add the source url in the inputs section of flake.nix
-with the prefix plugin-
-{
+
Adding Plugins
To add a new Neovim plugin, first add the source url in the inputs section of
+flake.nix with the prefix plugin-
{
inputs = {
# ...
plugin-neodev-nvim = {
@@ -779,14 +879,17 @@ with the prefix plugin-plugin- prefix will allow nvf to autodiscover the
+
Prepending plugin- to the name of the input will allow nvf to automatically
+discover inputs that are marked as plugins, and make them available in
+vim.startPlugins or other areas that require a very specific plugin type as it
+is defined in https://github.com/notashelf/nvf/blob/v0.7/lib/types/plugins.nix
The addition of the plugin- prefix will allow nvf to autodiscover the
input from the flake inputs automatically, allowing you to refer to it in areas
that require a very specific plugin type as defined in lib/types/plugins.nix
You can now reference this plugin using its string name, the plugin will be
-built with the name and source URL from the flake input, allowing you to
-refer to it as a string.
config.vim.startPlugins = ["neodev-nvim"];
-
Modular setup options
Most plugins is initialized with a call to require('plugin').setup({...}).
We use a special function that lets you easily add support for such setup options in a modular way:
-mkPluginSetupOption.
Once you have added the source of the plugin as shown above, you can define the setup options like
-this:
# in modules/.../your-plugin/your-plugin.nix
+built with the name and source URL from the flake input, allowing you to refer
+to it as a string.config.vim.startPlugins = ["neodev-nvim"];
+
Modular setup options
Most plugins is initialized with a call to require('plugin').setup({...}).
We use a special function that lets you easily add support for such setup
+options in a modular way: mkPluginSetupOption.
Once you have added the source of the plugin as shown above, you can define the
+setup options like this:
# in modules/.../your-plugin/your-plugin.nix
{lib, ...}:
let
@@ -822,7 +925,8 @@ in {
enable_feature_a = false,
number_option = 3,
})
-
Now users can set any of the pre-defined option field, and can also add their own fields!
# in user's config
+
Now users can set any of the pre-defined option field, and can also add their
+own fields!
# in user's config
{
vim.your-plugin.setupOpts = {
enable_feature_a = true;
@@ -835,8 +939,8 @@ in {
}
Details of toLuaObject
As you’ve seen above, toLuaObject is used to convert our nix attrSet
-cfg.setupOpts, into a lua table. Here are some rules of the conversion:
nix null converts to lua nil
number and strings convert to their lua counterparts
nix attrSet/list convert into lua tables
you can write raw lua code using lib.generators.mkLuaInline. This
-function is part of nixpkgs.
Example:
vim.your-plugin.setupOpts = {
+cfg.setupOpts, into a lua table. Here are some rules of the conversion:nix null converts to lua nil
number and strings convert to their lua counterparts
nix attrSet/list convert into lua tables
you can write raw lua code using lib.generators.mkLuaInline. This function
+is part of nixpkgs.
Example:
vim.your-plugin.setupOpts = {
on_init = lib.generators.mkLuaInline ''
function()
print('we can write lua!')
@@ -844,6 +948,52 @@ function is part of nixpkgs.
Example:
+
Lazy plugins
If the plugin can be lazy-loaded, vim.lazy.plugins should be used to add it.
+Lazy plugins are managed by lz.n.
# in modules/.../your-plugin/config.nix
+{lib, config, ...}:
+let
+ cfg = config.vim.your-plugin;
+in {
+ vim.lazy.plugins.your-plugin = {
+ # instead of vim.startPlugins, use this:
+ package = "your-plugin";
+
+ # if your plugin uses the `require('your-plugin').setup{...}` pattern
+ setupModule = "your-plugin";
+ inherit (cfg) setupOpts;
+
+ # events that trigger this plugin to be loaded
+ event = ["DirChanged"];
+ cmd = ["YourPluginCommand"];
+
+ # keymaps
+ keys = [
+ # we'll cover this in detail in the keymaps section
+ {
+ key = "<leader>d";
+ mode = "n";
+ action = ":YourPluginCommand";
+ }
+ ];
+ };
+;
+}
+
This results in the following lua code:
require('lz.n').load({
+ {
+ "name-of-your-plugin",
+ after = function()
+ require('your-plugin').setup({--[[ your setupOpts ]]})
+ end,
+
+ event = {"DirChanged"},
+ cmd = {"YourPluginCommand"},
+ keys = {
+ {"<leader>d", ":YourPluginCommand", mode = {"n"}},
+ },
+ }
+})
+
A full list of options can be found
+[here](https://notashelf.github.io/nvf/options.html#opt-vim.lazy.plugins
@@ -855,12 +1005,12 @@ function is part of nixpkgs.Example:
- Next
+ Next
- Appendix A. Plugin specific quirks
+ Appendix A. Known Issues and Quirks
diff --git a/options.html b/options.html
index 4ac7d683..5c59aee9 100644
--- a/options.html
+++ b/options.html
@@ -6,10 +6,10 @@
Appendix B. Neovim Flake Configuration Options
-
+
-
+
Appendix B. Neovim Flake Configuration Options
Below are the options provided by nvf provided in no particular order.
-They may include useful comments and warnings, or examples on how a module option
-is meant to be used.
+ Appendix B. Neovim Flake Configuration Options
Below are the module options provided by nvf, in no particular order. Most
+options will include useful comments, warnings or setup tips on how a module
+option is meant to be used as well as examples in complex cases.
-
@@ -103,9 +103,8 @@ boolean
-
-
Whether to enable the experimental Lua module loader to speed up the start up process
If true, this will enable the experimental Lua module loader which:
overrides loadfile
adds the lua loader using the byte-compilation cache
adds the libs loader
removes the default Neovim loader
This is disabled by default. Before setting this option, please
-take a look at the official documentation.
-.
+Whether to enable [official documentation]: https://neovim.io/doc/user/lua.html#vim.loader.enable()
the experimental Lua module loader to speed up the start up process
If true, this will enable the experimental Lua module loader which:
overrides loadfile
adds the lua loader using the byte-compilation cache
adds the libs loader
removes the default Neovim loader
Note
This is disabled by default. Before setting this option, please
+take a look at the [official documentation].
.
Type:
boolean
@@ -142,7 +141,7 @@ package here may yield undesirable results.
package
Default:
-<derivation neovim-unwrapped-0.10.1>
+<derivation neovim-unwrapped-0.10.2>
Declared by:
@@ -1037,36 +1036,12 @@ boolean
- vim.autoIndent
+ vim.autocomplete.nvim-cmp.enable
-Enable auto indent
-
-Type:
-boolean
-
-Default:
-true
-
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
-
-
-
- vim.autocomplete.enable
-
-
-
-
-Whether to enable autocomplete.
+Whether to enable nvim-cmp.
Type:
boolean
@@ -1088,45 +1063,20 @@ boolean
- vim.autocomplete.alwaysComplete
+ vim.autocomplete.nvim-cmp.format
-Automatically show completion.
+The function used to customize the completion menu entries. This is
+outside of setupOpts to allow for an easier integration with
+lspkind.nvim.
See :help cmp-config.formatting.format.
Type:
-boolean
+null or (luaInline)
-Default:
-true
-
-Declared by:
-
-
-
-<nvf/modules/plugins/completion/nvim-cmp/nvim-cmp.nix>
-
-
-
-
-
-
- vim.autocomplete.formatting.format
-
-
-
-
-The function used to customize the appearance of the completion menu.
If vim.lsp.lspkind.enable is true, then the function
-will be called before modifications from lspkind.
Default is to call the menu mapping function.
-
-Type:
-string
-
-Default:
-"nvim_cmp_menu_map"
-
-Example:
function(entry, vim_item)
+Default:
function(entry, vim_item)
+ vim_item.menu = (${toLuaObject config.vim.autocomplete.nvim-cmp.sources})[entry.source.name]
return vim_item
end
@@ -1142,7 +1092,7 @@ end
- vim.autocomplete.mappings.close
+ vim.autocomplete.nvim-cmp.mappings.close
@@ -1166,7 +1116,7 @@ null or string
- vim.autocomplete.mappings.complete
+ vim.autocomplete.nvim-cmp.mappings.complete
@@ -1190,7 +1140,7 @@ null or string
- vim.autocomplete.mappings.confirm
+ vim.autocomplete.nvim-cmp.mappings.confirm
@@ -1214,7 +1164,7 @@ null or string
- vim.autocomplete.mappings.next
+ vim.autocomplete.nvim-cmp.mappings.next
@@ -1238,7 +1188,7 @@ null or string
- vim.autocomplete.mappings.previous
+ vim.autocomplete.nvim-cmp.mappings.previous
@@ -1262,7 +1212,7 @@ null or string
- vim.autocomplete.mappings.scrollDocsDown
+ vim.autocomplete.nvim-cmp.mappings.scrollDocsDown
@@ -1286,7 +1236,7 @@ null or string
- vim.autocomplete.mappings.scrollDocsUp
+ vim.autocomplete.nvim-cmp.mappings.scrollDocsUp
@@ -1310,24 +1260,88 @@ null or string
- vim.autocomplete.sources
+ vim.autocomplete.nvim-cmp.setupOpts
-Attribute set of source names for nvim-cmp.
If an attribute set is provided, then the menu value of
-vim_item in the format will be set to the value (if
-utilizing the nvim_cmp_menu_map function).
Note: only use a single attribute name per attribute set
+Option table to pass into the setup function of the autocomplete plugin
You can pass in any additional options even if they’re
+not listed in the docs
Type:
-attribute set of (null or string)
+anything
Default:
{ }
-Example:
''
- {nvim-cmp = null; buffer = "[Buffer]";}
-''
+Declared by:
+
+
+
+<nvf/modules/plugins/completion/nvim-cmp/nvim-cmp.nix>
+
+
+
+
+
+
+ vim.autocomplete.nvim-cmp.setupOpts.completion.completeopt
+
+
+
+
+A comma-separated list of options for completion.
See :help completeopt for the complete list.
+
+Type:
+string
+
+Default:
+"menu,menuone,noinsert"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/completion/nvim-cmp/nvim-cmp.nix>
+
+
+
+
+
+
+ vim.autocomplete.nvim-cmp.setupOpts.sorting.comparators
+
+
+
+
+The comparator functions used for sorting completions.
You can either pass a valid inline lua function
+(see :help cmp-config.sorting.comparators),
+or a string, in which case the builtin comparator with that name will
+be used.
A deprio function and a kinds
+(require("cmp.types").lsp.CompletionItemKind) variable is provided
+above setupOpts. By passing a type to the function, the returned
+function will be a comparator that always ranks the specified kind the
+lowest.
+
+Type:
+mergeless list of (string or (luaInline))
+
+Default:
[
+ {
+ _type = "lua-inline";
+ expr = "deprio(kinds.Text)";
+ }
+ {
+ _type = "lua-inline";
+ expr = "deprio(kinds.Snippet)";
+ }
+ "offset"
+ "exact"
+ "score"
+ "kind"
+ "length"
+ "sort_text"
+]
Declared by:
@@ -1341,18 +1355,18 @@ attribute set of (null or string)
- vim.autocomplete.type
+ vim.autocomplete.nvim-cmp.sourcePlugins
-Set the autocomplete plugin. Options: [nvim-cmp]
+List of source plugins used by nvim-cmp.
Type:
-value “nvim-cmp” (singular enum)
+list of (null or package or one of “alpha-nvim”, “base16”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-luasnip”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “csharpls-extended”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “friendly-snippets”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lua-utils-nvim”, “lualine”, “luasnip”, “lz-n”, “lzn-auto-require”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “neorg”, “neorg-telescope”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-metals”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-scrollbar”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “omnisharp-extended”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “pathlib-nvim”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rtp-nvim”, “run-nvim”, “rustaceanvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “tiny-devicons-auto-colors”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”)
Default:
-"nvim-cmp"
+[ ]
Declared by:
@@ -1365,7 +1379,38 @@ value “nvim-cmp” (singular enum)
- vim.autopairs.enable
+ vim.autocomplete.nvim-cmp.sources
+
+
+
+
+The list of sources used by nvim-cmp
+
+Type:
+attribute set of (null or string)
+
+Default:
+{ }
+
+Example:
{
+ nvim-cmp = null;
+ buffer = "[Buffer]";
+}
+
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/completion/nvim-cmp/nvim-cmp.nix>
+
+
+
+
+
+
+ vim.autopairs.nvim-autopairs.enable
@@ -1392,18 +1437,19 @@ boolean
- vim.autopairs.type
+ vim.autopairs.nvim-autopairs.setupOpts
-Set the autopairs type. Options: nvim-autopairs [nvim-autopairs]
+Option table to pass into the setup function of nvim-autopairs
You can pass in any additional options even if they’re
+not listed in the docs
Type:
-value “nvim-autopairs” (singular enum)
+anything
Default:
-"nvim-autopairs"
+{ }
Declared by:
+
+
+ vim.languages.julia.enable
+
+
+
+
+Whether to enable Julia language support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/julia.nix>
+
+
+
+
+
+
+ vim.languages.julia.lsp.enable
+
+
+
+
+Whether to enable Julia LSP support.
Note
The entirety of Julia is bundled with nvf, if you enable this
+option, since there is no way to provide only the LSP server.
If you want to avoid that, you have to change
+vim.languages.julia.lsp.package to use the Julia binary
+in PATH (set it to null), and add the LanguageServer package to
+Julia in your devshells.
+
+Type:
+boolean
+
+Default:
+false
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/julia.nix>
+
+
+
+
+
+
+ vim.languages.julia.lsp.package
+
+
+
+
+Julia LSP server package, null to use the Julia binary in PATH, or
+the command to run as a list of strings.
+
+Type:
+null or package or list of string
+
+Default:
+<derivation julia-1.11.1-env>
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/julia.nix>
+
+
+
+
+
+
+ vim.languages.julia.lsp.server
+
+
+
+
+Julia LSP server to use
+
+Type:
+value “julials” (singular enum)
+
+Default:
+"julials"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/julia.nix>
+
+
+
+
+
+
+ vim.languages.julia.treesitter.enable
+
+
+
+
+Whether to enable Julia treesitter.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/julia.nix>
+
+
+
+
+
+
+ vim.languages.julia.treesitter.package
+
+
+
+
+The julia treesitter package to use.
+
+Type:
+package
+
+Default:
+pkgs.vimPlugins.nvim-treesitter.builtGrammars.julia
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/julia.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.enable
+
+
+
+
+Whether to enable Kotlin/HCL support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.extraDiagnostics.enable
+
+
+
+
+Whether to enable extra Kotlin diagnostics.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.extraDiagnostics.types
+
+
+
+
+List of Kotlin diagnostics to enable
+
+Type:
+list of (value “ktlint” (singular enum) or (submodule))
+
+Default:
[
+ "ktlint"
+]
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.lsp.enable
+
+
+
+
+Whether to enable Kotlin LSP support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.lsp.package
+
+
+
+
+kotlin_language_server package with Kotlin runtime
+
+Type:
+package or list of string
+
+Default:
+<derivation kotlin-language-server-1.3.12>
+
+Example:
pkgs.symlinkJoin {
+ name = "kotlin-language-server-wrapped";
+ paths = [pkgs.kotlin-language-server];
+ nativeBuildInputs = [pkgs.makeBinaryWrapper];
+ postBuild = ''
+ wrapProgram $out/bin/kotlin-language-server \
+ --prefix PATH : ${pkgs.kotlin}/bin
+ '';
+};
+
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.treesitter.enable
+
+
+
+
+Whether to enable Kotlin treesitter.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
+
+
+ vim.languages.kotlin.treesitter.package
+
+
+
+
+The kotlin treesitter package to use.
+
+Type:
+package
+
+Default:
+pkgs.vimPlugins.nvim-treesitter.builtGrammars.kotlin
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/kotlin.nix>
+
+
+
+
vim.languages.lua.enable
@@ -10021,7 +11833,7 @@ boolean
package or list of string
Default:
-<derivation lua-language-server-3.10.6>
+<derivation lua-language-server-3.13.2>
Declared by:
@@ -10177,7 +11989,7 @@ boolean
package
Default:
-<derivation deno-1.46.2>
+<derivation deno-2.1.1>
Declared by:
@@ -10276,7 +12088,7 @@ boolean
package or list of string
Default:
-<derivation marksman-2023-12-09>
+<derivation marksman-2024-11-20>
Example:
"[lib.getExe pkgs.jdt-language-server \" - data \" \" ~/.cache/jdtls/workspace \"]"
@@ -10453,7 +12265,7 @@ boolean
package
Default:
-<derivation x86_64-unknown-linux-gnu-nim-wrapper-2.0.8>
+<derivation x86_64-unknown-linux-gnu-nim-wrapper-2.2.0>
Declared by:
@@ -10738,7 +12550,7 @@ boolean
package
Default:
-<derivation alejandra-3.0.0>
+<derivation alejandra-3.1.0>
Declared by:
@@ -10759,7 +12571,7 @@ package
Nix formatter to use
Type:
-one of “alejandra”, “nixpkgs-fmt”
+one of “alejandra”, “nixfmt”, “nixpkgs-fmt”
Default:
"alejandra"
@@ -10837,7 +12649,7 @@ package or list of string
Nix LSP server to use
Type:
-string
+one of “nil”, “rnix”
Default:
"nil"
@@ -10902,6 +12714,162 @@ package
+
+
+ vim.languages.nu.enable
+
+
+
+
+Whether to enable Nu language support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/nu.nix>
+
+
+
+
+
+
+ vim.languages.nu.lsp.enable
+
+
+
+
+Whether to enable Nu LSP support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/nu.nix>
+
+
+
+
+
+
+ vim.languages.nu.lsp.package
+
+
+
+
+Nu LSP server package, or the command to run as a list of strings
+
+Type:
+package or list of string
+
+Default:
+<derivation nushell-0.100.0>
+
+Example:
+"[(lib.getExe pkgs.nushell) \"--lsp\"]"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/nu.nix>
+
+
+
+
+
+
+ vim.languages.nu.lsp.server
+
+
+
+
+Nu LSP server to use
+
+Type:
+string
+
+Default:
+"nushell"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/nu.nix>
+
+
+
+
+
+
+ vim.languages.nu.treesitter.enable
+
+
+
+
+Whether to enable Nu treesitter.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/nu.nix>
+
+
+
+
+
+
+ vim.languages.nu.treesitter.package
+
+
+
+
+The nu treesitter package to use.
+
+Type:
+package
+
+Default:
+pkgs.vimPlugins.nvim-treesitter.builtGrammars.nu
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/nu.nix>
+
+
+
+
vim.languages.ocaml.enable
@@ -10969,7 +12937,7 @@ boolean
package
Default:
-<derivation ocaml5.1.1-ocamlformat-0.26.2>
+<derivation ocaml5.2.0-ocamlformat-0.26.2>
Declared by:
@@ -11044,7 +13012,7 @@ boolean
package or list of string
Default:
-<derivation ocaml5.1.1-ocaml-lsp-server-1.18.0>
+<derivation ocaml5.2.0-ocaml-lsp-server-1.19.0>
Declared by:
@@ -11197,7 +13165,7 @@ boolean
package or list of string
Default:
-<derivation phpactor-2024.06.30.0>
+<derivation phpactor-2024.11.28.0>
Example:
"[lib.getExe pkgs.jdt-language-server \" - data \" \" ~/.cache/jdtls/workspace \"]"
@@ -11351,7 +13319,7 @@ This is a python package with debugpy installed, see https://nixos.wiki/wiki/Pyt
package
Default:
-<derivation python3-3.12.5-env>
+<derivation python3-3.12.7-env>
Example:
with pkgs; python39.withPackages (ps: with ps; [debugpy])
@@ -11429,7 +13397,7 @@ boolean
package
Default:
-<derivation black-24.4.2>
+<derivation black-24.8.0>
Declared by:
@@ -11504,7 +13472,7 @@ boolean
package or list of string
Default:
-<derivation basedpyright-1.17.5>
+<derivation basedpyright-1.22.0>
Example:
"[lib.getExe pkgs.jdt-language-server \"-data\" \"~/.cache/jdtls/workspace\"]"
@@ -11582,7 +13550,7 @@ boolean
package
Default:
-<derivation python-grammar-0.0.0+rev=8c65e25>
+<derivation python-grammar-0.0.0+rev=6d14e44>
Declared by:
@@ -11611,6 +13579,81 @@ boolean
Example:
true
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/r.nix>
+
+
+
+
+
+
+ vim.languages.r.format.enable
+
+
+
+
+Whether to enable R formatting.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/r.nix>
+
+
+
+
+
+
+ vim.languages.r.format.package
+
+
+
+
+R formatter package
+
+Type:
+package
+
+Default:
+<derivation R-4.4.1-wrapper>
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/r.nix>
+
+
+
+
+
+
+ vim.languages.r.format.type
+
+
+
+
+R formatter to use
+
+Type:
+one of “format_r”, “styler”
+
+Default:
+"format_r"
+
Declared by:
@@ -11858,7 +13901,7 @@ boolean
-lldb pacakge
+lldb package
Type:
package
@@ -11915,7 +13958,7 @@ boolean
package
Default:
-<derivation rustfmt-1.80.1>
+<derivation rustfmt-1.82.0>
Declared by:
@@ -11990,7 +14033,7 @@ boolean
package or list of string
Default:
-<derivation rust-analyzer-2024-09-02>
+<derivation rust-analyzer-2024-11-11>
Example:
"[lib.getExe pkgs.jdt-language-server \"-data\" \"~/.cache/jdtls/workspace\"]"
@@ -12079,6 +14122,289 @@ package
+
+
+ vim.languages.scala.enable
+
+
+
+
+Whether to enable Scala language support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.dap.enable
+
+
+
+
+Whether to enable Scala Debug Adapter support (metals).
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.dap.config
+
+
+
+
+Lua configuration for dap
+
+Type:
+luaInline
+
+Default:
{
+ _type = "lua-inline";
+ expr = ''
+ dap.configurations.scala = {
+ {
+ type = "scala",
+ request = "launch",
+ name = "RunOrTest",
+ metals = {
+ runType = "runOrTestFile",
+ --args = { "firstArg", "secondArg", "thirdArg" }, -- here just as an example
+ },
+ },
+ {
+ type = "scala",
+ request = "launch",
+ name = "Test Target",
+ metals = {
+ runType = "testTarget",
+ },
+ },
+ }
+ '';
+}
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.fixShortmess
+
+
+
+
+Remove the ‘F’ flag from shortmess to allow messages to be shown. Without doing this, autocommands that deal with filetypes prohibit messages from being shown
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.lsp.enable
+
+
+
+
+Whether to enable Scala LSP support (metals).
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.lsp.package
+
+
+
+
+The metals package to use.
+
+Type:
+package
+
+Default:
+pkgs.metals
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.lsp.extraMappings.listCommands
+
+
+
+
+List Metals commands
+
+Type:
+null or string
+
+Default:
+"<leader>lc"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.lsp.extraSettings
+
+
+
+
+Extra settings passed to the metals config. Check nvim-metals docs for available options
+
+Type:
+attribute set of anything
+
+Default:
{
+ excludedPackages = [
+ "akka.actor.typed.javadsl"
+ "com.github.swagger.akka.javadsl"
+ ];
+ showImplicitArguments = true;
+ showImplicitConversionsAndClasses = true;
+ showInferredType = true;
+}
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.treesitter.enable
+
+
+
+
+Whether to enable Scala treesitter.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
+
+
+ vim.languages.scala.treesitter.package
+
+
+
+
+The scala treesitter package to use.
+
+Type:
+package
+
+Default:
+pkgs.vimPlugins.nvim-treesitter.builtGrammars.scala
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/scala.nix>
+
+
+
+
vim.languages.sql.enable
@@ -12223,7 +14549,7 @@ boolean
package
Default:
-<derivation sqlfluff-3.2.0>
+<derivation sqlfluff-3.2.5>
Declared by:
@@ -12376,7 +14702,7 @@ boolean
package
Default:
-<derivation sql-grammar-0.0.0+rev=b817500>
+<derivation sql-grammar-0.0.0+rev=3d516e6>
Declared by:
@@ -12528,7 +14854,7 @@ package
Svelte formatter to use
Type:
-value “prettier” (singular enum)
+one of “biome”, “prettier”
Default:
"prettier"
@@ -12582,7 +14908,7 @@ boolean
package or list of string
Default:
-<derivation svelte-language-server-0.17.0>
+<derivation svelte-language-server-0.17.7>
Example:
"[lib.getExe pkgs.jdt-language-server \"-data\" \"~/.cache/jdtls/workspace\"]"
@@ -12939,9 +15265,7 @@ boolean
-Whether to enable Typescript error translation with
-ts-error-translator.nvim
-.
+Whether to enable [ts-error-translator.nvim]: https://github.com/dmmulroy/ts-error-translator.nvim
Typescript error translation with [ts-error-translator.nvim]
.
Type:
boolean
@@ -13124,7 +15448,7 @@ package
Typescript/Javascript formatter to use
Type:
-one of “prettier”, “prettierd”
+one of “biome”, “prettier”, “prettierd”
Default:
"prettier"
@@ -13433,11 +15757,35 @@ boolean
package or list of string
Default:
-<derivation typst-lsp-0.13.0>
+<derivation tinymist-0.12.4>
Example:
"[lib.getExe pkgs.jdt-language-server \"-data\" \"~/.cache/jdtls/workspace\"]"
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/typst.nix>
+
+
+
+
+
+
+ vim.languages.typst.lsp.server
+
+
+
+
+Typst LSP server to use
+
+Type:
+one of “tinymist”, “typst-lsp”
+
+Default:
+"tinymist"
+
Declared by:
@@ -13498,6 +15846,159 @@ package
+
+
+ vim.languages.vala.enable
+
+
+
+
+Whether to enable Vala language support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/vala.nix>
+
+
+
+
+
+
+ vim.languages.vala.lsp.enable
+
+
+
+
+Whether to enable Vala LSP support.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/vala.nix>
+
+
+
+
+
+
+ vim.languages.vala.lsp.package
+
+
+
+
+Vala LSP server package, or the command to run as a list of strings
+
+Type:
+package or list of string
+
+Default:
+<derivation vala-language-server-wrapper>
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/vala.nix>
+
+
+
+
+
+
+ vim.languages.vala.lsp.server
+
+
+
+
+Vala LSP server to use
+
+Type:
+value “vala_ls” (singular enum)
+
+Default:
+"vala_ls"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/vala.nix>
+
+
+
+
+
+
+ vim.languages.vala.treesitter.enable
+
+
+
+
+Whether to enable Vala treesitter.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/vala.nix>
+
+
+
+
+
+
+ vim.languages.vala.treesitter.package
+
+
+
+
+The vala treesitter package to use.
+
+Type:
+package
+
+Default:
+pkgs.vimPlugins.nvim-treesitter.builtGrammars.vala
+
+Declared by:
+
+
+
+<nvf/modules/plugins/languages/vala.nix>
+
+
+
+
vim.languages.zig.enable
@@ -13532,7 +16033,7 @@ boolean
-Whether to enable Zig LSP support (zls).
+Whether to enable Zig LSP support.
Type:
boolean
@@ -13567,9 +16068,6 @@ package or list of string
Default:
<derivation zls-0.13.0>
-Example:
-"[lib.getExe pkgs.jdt-language-server \"-data\" \"~/.cache/jdtls/workspace\"]"
-
Declared by:
@@ -13581,18 +16079,18 @@ package or list of string
- vim.languages.zig.lsp.zigPackage
+ vim.languages.zig.lsp.server
-Zig package used by ZLS
+Zig LSP server to use
Type:
-package
+value “zls” (singular enum)
Default:
-<derivation zig-0.13.0>
+"zls"
Declared by:
@@ -13656,24 +16154,496 @@ package
- vim.leaderKey
+ vim.lazy.enable
-The leader key used for <leader> mappings
+Whether to enable plugin lazy-loading via lz.n and lzn-auto-require.
Type:
-string
+boolean
Default:
-" "
+true
+
+Example:
+true
Declared by:
-
-<nvf/modules/neovim/init/basic.nix>
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.enableLznAutoRequire
+
+
+
+
+Enable lzn-auto-require. Since builtin plugins rely on this, only turn
+off for debugging.
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.loader
+
+
+
+
+Lazy loader to use
+
+Type:
+value “lz.n” (singular enum)
+
+Default:
+"lz.n"
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins
+
+
+
+
+Plugins to lazy load.
The attribute key is used as the plugin name: for the default vim.g.lz_n.load
+function this should be either the package.pname or package.name.
+
+Type:
+attribute set of (submodule)
+
+Default:
+{ }
+
+Example:
''
+ {
+ toggleterm-nvim = {
+ package = "toggleterm-nvim";
+ setupModule = "toggleterm";
+ setupOpts = cfg.setupOpts;
+
+ after = "require('toggleterm').do_something()";
+ cmd = ["ToggleTerm"];
+ };
+
+ $''${pkgs.vimPlugins.vim-bbye.pname} = {
+ package = pkgs.vimPlugins.vim-bbye;
+ cmd = ["Bdelete" "Bwipeout"];
+ };
+ }
+''
+
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.enabled
+
+
+
+
+When false, or if the lua function returns false, this plugin will not be included in the spec
+
+Type:
+null or boolean or string
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.package
+
+
+
+
+Plugin package.
If null, a custom load function must be provided
+
+Type:
+null or null or package or one of “alpha-nvim”, “base16”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-luasnip”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “csharpls-extended”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “friendly-snippets”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lua-utils-nvim”, “lualine”, “luasnip”, “lz-n”, “lzn-auto-require”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “neorg”, “neorg-telescope”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-metals”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-scrollbar”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “omnisharp-extended”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “pathlib-nvim”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rtp-nvim”, “run-nvim”, “rustaceanvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “tiny-devicons-auto-colors”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.after
+
+
+
+
+Lua code to run after plugin is loaded. This will be wrapped in a function.
If vim.lazy.plugins.<name>.setupModule is provided, the setup will be ran before after.
+
+Type:
+null or strings concatenated with “\n”
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.before
+
+
+
+
+Lua code to run before plugin is loaded. This will be wrapped in a function.
+
+Type:
+null or strings concatenated with “\n”
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.beforeAll
+
+
+
+
+Lua code to run before any plugins are loaded. This will be wrapped in a function.
+
+Type:
+null or strings concatenated with “\n”
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.cmd
+
+
+
+
+Lazy-load on command
+
+Type:
+null or string or list of string
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.colorscheme
+
+
+
+
+Lazy-load on colorscheme.
+
+Type:
+null or string or list of string
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.event
+
+
+
+
+Lazy-load on event
+
+Type:
+null or string or list of string or (submodule)
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.ft
+
+
+
+
+Lazy-load on filetype
+
+Type:
+null or string or list of string
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.keys
+
+
+
+
+Lazy-load on key mapping
+
+Type:
+null or string or list of (submodule) or list of string
+
+Default:
+null
+
+Example:
''
+ keys = [
+ {
+ mode = "n";
+ key = "<leader>s";
+ action = ":DapStepOver<cr>";
+ desc = "DAP Step Over";
+ }
+ {
+ mode = ["n", "x"];
+ key = "<leader>dc";
+ action = "function() require('dap').continue() end";
+ lua = true;
+ desc = "DAP Continue";
+ }
+ ]
+''
+
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.lazy
+
+
+
+
+Lazy-load manually, e.g. using trigger_load.
+
+Type:
+boolean
+
+Default:
+false
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.load
+
+
+
+
+Lua code to override the vim.g.lz_n.load() function for a single plugin.
This will be wrapped in a function(name) ... end.
+
+Type:
+null or strings concatenated with “\n”
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.priority
+
+
+
+
+Only useful for stat plugins (not lazy-loaded) to force loading certain plugins first.
+
+Type:
+null or signed integer
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.setupModule
+
+
+
+
+Lua module to run setup function on.
+
+Type:
+null or string
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
+
+
+
+
+
+
+ vim.lazy.plugins.<name>.setupOpts
+
+
+
+
+Options to pass to the setup function
+
+Type:
+attribute set of anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/lazy/lazy.nix>
@@ -13694,7 +16664,7 @@ one of “relative”, “number”, “relNumber”, “none”
"relNumber"
Example:
-none
+"none"
Declared by:
@@ -13918,7 +16888,56 @@ boolean
- vim.lsp.lspkind.mode
+ vim.lsp.lspkind.setupOpts
+
+
+
+
+Option table to pass into the setup function of lspkind.nvim
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/lsp/lspkind/lspkind.nix>
+
+
+
+
+
+
+ vim.lsp.lspkind.setupOpts.before
+
+
+
+
+The function that will be called before lspkind’s modifications are applied
+
+Type:
+null or (luaInline)
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/plugins/lsp/lspkind/lspkind.nix>
+
+
+
+
+
+
+ vim.lsp.lspkind.setupOpts.mode
@@ -14848,7 +17867,7 @@ boolean
-Default timeout value, in miliseconds
+Default timeout value, in milliseconds
Type:
signed integer
@@ -15195,7 +18214,7 @@ anything
if set to true, the filetype of the otterbuffers will be set. Other wide only
the autocommand of lspconfig that attaches the language server will be
-executed without stting the filetype
+executed without setting the filetype
Type:
boolean
@@ -15442,18 +18461,18 @@ null or string
- vim.lsp.trouble.mappings.toggle
+ vim.lsp.trouble.mappings.symbols
-Toggle trouble [trouble]
+Symbols [trouble]
Type:
null or string
Default:
-"<leader>xx"
+"<leader>xs"
Declared by:
@@ -15479,6 +18498,31 @@ null or string
Default:
"<leader>lwd"
+Declared by:
+
+
+
+<nvf/modules/plugins/lsp/trouble/trouble.nix>
+
+
+
+
+
+
+ vim.lsp.trouble.setupOpts
+
+
+
+
+Option table to pass into the setup function of Trouble
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
Declared by:
@@ -15614,64 +18658,6 @@ list of string
-
-
- vim.mapTimeout
-
-
-
-
-Timeout in ms that neovim will wait for mapped action to complete
-
-Type:
-signed integer
-
-Default:
-500
-
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
-
-
-
- vim.maps
-
-
-
-
-Custom keybindings for any mode.
For plain maps (e.g. just ‘map’ or ‘remap’) use maps.normalVisualOp.
-
-Type:
-submodule
-
-Default:
-{ }
-
-Example:
''
- maps = {
- normal."<leader>m" = {
- silent = true;
- action = "<cmd>make<CR>";
- }; # Same as nnoremap <leader>m <silent> <cmd>make<CR>
- };
-''
-
-
-Declared by:
-
-
-
-<nvf/modules/neovim/mappings/options.nix>
-
-
-
-
vim.maps.command
@@ -15703,7 +18689,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -15875,7 +18861,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -15941,7 +18927,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -16113,7 +19099,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -16179,7 +19165,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -16351,7 +19337,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -16417,7 +19403,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -16589,7 +19575,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -16655,7 +19641,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -16827,7 +19813,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -16893,7 +19879,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -17065,7 +20051,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -17131,7 +20117,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -17303,7 +20289,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -17369,7 +20355,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -17541,7 +20527,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -17607,7 +20593,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -17779,7 +20765,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -17845,7 +20831,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -18017,7 +21003,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -18083,7 +21069,7 @@ attribute set of (submodule)
-The action to execute.
+The command to execute.
Type:
string
@@ -18255,7 +21241,7 @@ boolean
boolean
Default:
-false
+true
Declared by:
@@ -18440,30 +21426,6 @@ boolean
-
-
- vim.mouseSupport
-
-
-
-
-Set modes for mouse support.
a - all
n - normal
v - visual
i - insert
c - command
-
-Type:
-one of “a”, “n”, “v”, “i”, “c”
-
-Default:
-"a"
-
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
-
vim.notes.mind-nvim.enable
@@ -18491,6 +21453,192 @@ boolean
+
+
+ vim.notes.neorg.enable
+
+
+
+
+Whether to enable Neorg: An intuitive note-taking and organization tool with a structured nested syntax.
+.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
+
+
+ vim.notes.neorg.setupOpts
+
+
+
+
+Option table to pass into the setup function of Neorg
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
+
+
+ vim.notes.neorg.setupOpts.load."core.defaults"
+
+
+
+
+all of the most important modules that any user would want to have a “just works” experience
+
+Type:
+submodule
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
+
+
+ vim.notes.neorg.setupOpts.load."core.defaults".enable
+
+
+
+
+Whether to enable all of the most important modules that any user would want to have a “just works” experience
+.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
+
+
+ vim.notes.neorg.setupOpts.load."core.defaults".config.disable
+
+
+
+
+list of modules from to be disabled from core.defaults
+
+Type:
+list of string
+
+Default:
+[ ]
+
+Example:
[
+ "core.autocommands"
+ "core.itero"
+]
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
+
+
+ vim.notes.neorg.treesitter.enable
+
+
+
+
+Whether to enable Neorg treesitter.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
+
+
+ vim.notes.neorg.treesitter.norgPackage
+
+
+
+
+The norg treesitter package to use.
+
+Type:
+package
+
+Default:
+pkgs.vimPlugins.nvim-treesitter.builtGrammars.norg
+
+Declared by:
+
+
+
+<nvf/modules/plugins/notes/neorg/neorg.nix>
+
+
+
+
vim.notes.obsidian.enable
@@ -18556,7 +21704,7 @@ anything
boolean
Default:
-true
+false
Declared by:
@@ -19234,7 +22382,7 @@ the wrapper during the build process.To avoid overriding packages and dep
are recommended to use this option or vim.extraPlugins option.
Type:
-list of (null or package or one of “alpha-nvim”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “cmp-vsnip”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lualine”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rustaceanvim”, “scrollbar-nvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “vim-vsnip”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”)
+list of (null or package or one of “alpha-nvim”, “base16”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-luasnip”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “csharpls-extended”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “friendly-snippets”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lua-utils-nvim”, “lualine”, “luasnip”, “lz-n”, “lzn-auto-require”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “neorg”, “neorg-telescope”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-metals”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-scrollbar”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “omnisharp-extended”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “pathlib-nvim”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rtp-nvim”, “run-nvim”, “rustaceanvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “tiny-devicons-auto-colors”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”)
Default:
[ ]
@@ -19269,7 +22417,7 @@ inferred from the type of the value in the{name = value;}<
pair passed to the option.
Type:
-attribute set
+attribute set of anything
Default:
{ }
@@ -19279,6 +22427,246 @@ attribute set
}
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.autoindent
+
+
+
+
+Enable auto indent
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.cmdheight
+
+
+
+
+Height of the command pane
+
+Type:
+signed integer
+
+Default:
+1
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.cursorlineopt
+
+
+
+
+Highlight the text line of the cursor with CursorLine hl-CursorLine
+
+Type:
+one of “line”, “screenline”, “number”, “both”
+
+Default:
+"line"
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.mouse
+
+
+
+
+Set modes for mouse support.
a - all
n - normal
v - visual
i - insert
c - command
+
+Type:
+one of “a”, “n”, “v”, “i”, “c”
+
+Default:
+"a"
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.splitbelow
+
+
+
+
+New splits will open below instead of on top
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.splitright
+
+
+
+
+New splits will open to the right
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.termguicolors
+
+
+
+
+Set terminal up for 256 colours
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.tm
+
+
+
+
+Timeout in ms that Neovim will wait for mapped action to complete
+
+Type:
+signed integer
+
+Default:
+500
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.updatetime
+
+
+
+
+The number of milliseconds till Cursor Hold event is fired
+
+Type:
+signed integer
+
+Default:
+300
+
+Declared by:
+
+
+
+<nvf/modules/wrapper/rc/options.nix>
+
+
+
+
+
+
+ vim.options.wrap
+
+
+
+
+Enable word wrapping.
+
+Type:
+boolean
+
+Default:
+true
+
Declared by:
@@ -20107,6 +23495,130 @@ list of string
+
+
+ vim.runner.run-nvim.enable
+
+
+
+
+Whether to enable run.nvim.
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/runner/run-nvim/run-nvim.nix>
+
+
+
+
+
+
+ vim.runner.run-nvim.mappings.run
+
+
+
+
+Run cached
+
+Type:
+null or string
+
+Default:
+"<leader>ri"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/runner/run-nvim/run-nvim.nix>
+
+
+
+
+
+
+ vim.runner.run-nvim.mappings.runCommand
+
+
+
+
+Run prompt
+
+Type:
+null or string
+
+Default:
+"<leader>rc"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/runner/run-nvim/run-nvim.nix>
+
+
+
+
+
+
+ vim.runner.run-nvim.mappings.runOverride
+
+
+
+
+Run and override
+
+Type:
+null or string
+
+Default:
+"<leader>ro"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/runner/run-nvim/run-nvim.nix>
+
+
+
+
+
+
+ vim.runner.run-nvim.setupOpts
+
+
+
+
+Option table to pass into the setup function of run.nvim
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/runner/run-nvim/run-nvim.nix>
+
+
+
+
vim.scrollOffset
@@ -20309,7 +23821,7 @@ one of “Disabled”, “CurrentDir”, “LastSession”
-All buffers of these bufer types will be closed before the session is saved
+All buffers of these buffer types will be closed before the session is saved
Type:
list of string
@@ -20570,12 +24082,12 @@ boolean
- vim.snippets.vsnip.enable
+ vim.snippets.luasnip.enable
-Whether to enable vim-vsnip: snippet LSP/VSCode’s format.
+Whether to enable luasnip.
Type:
boolean
@@ -20589,8 +24101,64 @@ boolean
Declared by:
-
-<nvf/modules/plugins/snippets/vsnip/vsnip.nix>
+
+<nvf/modules/plugins/snippets/luasnip/luasnip.nix>
+
+
+
+
+
+
+ vim.snippets.luasnip.loaders
+
+
+
+
+Lua code used to load snippet providers.
+
+Type:
+strings concatenated with “\n”
+
+Default:
require('luasnip.loaders.from_vscode').lazy_load()
+
+
+Example:
require("luasnip.loaders.from_snipmate").lazy_load()
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/snippets/luasnip/luasnip.nix>
+
+
+
+
+
+
+ vim.snippets.luasnip.providers
+
+
+
+
+The snippet provider packages.
Note
These are simply appended to {option} vim.startPlugins.
+
+Type:
+list of (null or package or one of “alpha-nvim”, “base16”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-luasnip”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “csharpls-extended”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “friendly-snippets”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lua-utils-nvim”, “lualine”, “luasnip”, “lz-n”, “lzn-auto-require”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “neorg”, “neorg-telescope”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-metals”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-scrollbar”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “omnisharp-extended”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “pathlib-nvim”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rtp-nvim”, “run-nvim”, “rustaceanvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “tiny-devicons-auto-colors”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”)
+
+Default:
[
+ "friendly-snippets"
+]
+
+
+Example:
+["vimPlugins.vim-snippets"]
+
+Declared by:
+
+
+
+<nvf/modules/plugins/snippets/luasnip/luasnip.nix>
@@ -20613,6 +24181,47 @@ boolean
Example:
true
+Declared by:
+
+
+
+<nvf/modules/neovim/init/spellcheck.nix>
+
+
+
+
+
+
+ vim.spellcheck.extraSpellWords
+
+
+
+
+Additional words to be used for spellchecking. The names of each key will be
+used as the language code for the spell file. For example
"en.utf-8" = [ ... ];
+
will result in en.utf-8.add.spl being added to Neovim’s runtime in the
+spell directory.
Warning
The attribute keys must be in "<name>.<encoding>" format for Neovim to
+compile your spellfiles without mangling the resulting file names. Please
+make sure that you enter the correct value, as nvf does not do any kind of
+internal checking. Please see :help mkspell for more details.
Example:
# "en" is the name, and "utf-8" is the encoding. For most use cases, utf-8
+# will be enough, however, you may change it to any encoding format Neovim
+# accepts, e.g., utf-16.
+"en.utf-8" = ["nvf" "word_you_want_to_add"];
+=> $out/spell/en-utf-8.add.spl
+
Note that while adding a new language, you will still need to add the name of
+the language (e.g. “en”) to the vim.spellcheck.languages list by name
+in order to enable spellchecking for the language. By default only "en" is in
+the list.
+
+Type:
+attribute set of list of string
+
+Default:
+{ }
+
+Example:
+{"en.utf-8" = ["nvf" "word_you_want_to_add"];}
+
Declared by:
@@ -20629,8 +24238,8 @@ boolean
-A list of filetypes for which spellchecking will be disabled.
You may use echo &filetype in Neovim to find out the
-filetype for a specific buffer.
+A list of filetypes for which spellchecking will be disabled.
Tip
You may use :echo &filetype in Neovim to find out the
+filetype for a specific buffer.
Type:
list of string
@@ -20659,10 +24268,9 @@ list of string
-A list of languages that should be used for spellchecking.
To add your own language files, you may place your spell
-directory in either ~/.config/nvim or the
-additionalRuntimePaths
-directory provided by nvf.
+A list of languages that should be used for spellchecking.
To add your own language files, you may place your spell directory in either
+$XDG_CONFIG_HOME/nvf or in a path that is included in the
+additionalRuntimePaths list provided by nvf.
Type:
list of string
@@ -20686,48 +24294,30 @@ list of string
- vim.splitBelow
+ vim.spellcheck.programmingWordlist.enable
-New splits will open below instead of on top
+Whether to enable vim-dirtytalk, a wordlist for programmers containing
+common programming terms.
Note
Enabling this option will unconditionally set
+vim.spellcheck.enable to true as vim-dirtytalk
+depends on spellchecking having been set up.
.
Type:
boolean
Default:
+false
+
+Example:
true
Declared by:
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
-
-
-
- vim.splitRight
-
-
-
-
-New splits will open to the right
-
-Type:
-boolean
-
-Default:
-true
-
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
+
+<nvf/modules/neovim/init/spellcheck.nix>
@@ -20745,7 +24335,7 @@ using the
Type:
-list of (null or package or one of “alpha-nvim”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “cmp-vsnip”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lualine”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rustaceanvim”, “scrollbar-nvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “vim-vsnip”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”)
+list of (null or package or one of “alpha-nvim”, “base16”, “bufdelete-nvim”, “catppuccin”, “ccc”, “cellular-automaton”, “chatgpt”, “cheatsheet-nvim”, “cinnamon-nvim”, “cmp-buffer”, “cmp-luasnip”, “cmp-nvim-lsp”, “cmp-path”, “cmp-treesitter”, “codewindow-nvim”, “comment-nvim”, “copilot-cmp”, “copilot-lua”, “crates-nvim”, “csharpls-extended”, “dashboard-nvim”, “diffview-nvim”, “dracula”, “dressing-nvim”, “elixir-tools”, “fastaction-nvim”, “fidget-nvim”, “flutter-tools”, “friendly-snippets”, “gesture-nvim”, “gitsigns-nvim”, “glow-nvim”, “gruvbox”, “highlight-undo”, “hop-nvim”, “icon-picker-nvim”, “image-nvim”, “indent-blankline”, “leap-nvim”, “lsp-lines”, “lsp-signature”, “lspkind”, “lspsaga”, “lua-utils-nvim”, “lualine”, “luasnip”, “lz-n”, “lzn-auto-require”, “mind-nvim”, “minimap-vim”, “modes-nvim”, “neo-tree-nvim”, “neocord”, “neodev-nvim”, “neorg”, “neorg-telescope”, “new-file-template-nvim”, “noice-nvim”, “none-ls”, “nui-nvim”, “nvim-autopairs”, “nvim-bufferline-lua”, “nvim-cmp”, “nvim-colorizer-lua”, “nvim-cursorline”, “nvim-dap”, “nvim-dap-go”, “nvim-dap-ui”, “nvim-docs-view”, “nvim-lightbulb”, “nvim-lspconfig”, “nvim-metals”, “nvim-navbuddy”, “nvim-navic”, “nvim-neoclip”, “nvim-nio”, “nvim-notify”, “nvim-scrollbar”, “nvim-session-manager”, “nvim-surround”, “nvim-tree-lua”, “nvim-treesitter-context”, “nvim-ts-autotag”, “nvim-web-devicons”, “obsidian-nvim”, “omnisharp-extended”, “onedark”, “orgmode-nvim”, “otter-nvim”, “oxocarbon”, “pathlib-nvim”, “plenary-nvim”, “precognition-nvim”, “project-nvim”, “registers”, “rose-pine”, “rtp-nvim”, “run-nvim”, “rustaceanvim”, “smartcolumn”, “sqls-nvim”, “tabular”, “telescope”, “tiny-devicons-auto-colors”, “todo-comments”, “toggleterm-nvim”, “tokyonight”, “trouble”, “ts-error-translator”, “vim-dirtytalk”, “vim-fugitive”, “vim-illuminate”, “vim-markdown”, “vim-repeat”, “vim-startify”, “which-key”, “nvim-treesitter”, “flutter-tools-patched”, “vim-repeat”)
Default:
[
"plenary-nvim"
@@ -21894,30 +25484,6 @@ boolean
Default:
false
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
-
-
-
- vim.tabWidth
-
-
-
-
-Set the width of tabs
-
-Type:
-signed integer
-
-Default:
-4
-
Declared by:
@@ -22670,7 +26236,7 @@ list of string
-The indicatotor icon to use for the current buffer.
Warning
This must be ommitted while style is not icon
+The indicatotor icon to use for the current buffer.
Warning
This must be omitted while style is not icon
Type:
null or string
@@ -23079,34 +26645,6 @@ null or one of “slant”, “padded_slant”, “slope”, “padded_slope”,
Default:
"thin"
-Declared by:
-
-
-
-<nvf/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix>
-
-
-
-
-
-
- vim.tabline.nvimBufferline.setupOpts.options.seperator_style
-
-
-
-
-Style of the buffer separator.
Can be either one of the suspported values, or a list containing
-at most two elements for focused and unfocused respectively.
-
-Type:
-one of “thick”, “thin”, “slope”, “slant” or list of string
-
-Default:
[
- " "
- " "
-]
-
-
Declared by:
@@ -23315,7 +26853,7 @@ signed integer
-Whether or not to allow highlight groups to be overriden.
While false, bufferline.nvim sets highlights as default.
+Whether or not to allow highlight groups to be overridden.
While false, bufferline.nvim sets highlights as default.
Type:
boolean
@@ -24326,7 +27864,7 @@ one of “reset”, “follow”, “row”, “closest”, “none”
-Set an envrionment for term_previewer
+Set an environment for term_previewer
Type:
attribute set of string
@@ -24756,6 +28294,342 @@ luaInline
Type:
boolean
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base00
+
+
+
+
+The base00 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base01
+
+
+
+
+The base01 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base02
+
+
+
+
+The base02 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base03
+
+
+
+
+The base03 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base04
+
+
+
+
+The base04 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base05
+
+
+
+
+The base05 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base06
+
+
+
+
+The base06 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base07
+
+
+
+
+The base07 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base08
+
+
+
+
+The base08 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base09
+
+
+
+
+The base09 color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base0A
+
+
+
+
+The base0A color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base0B
+
+
+
+
+The base0B color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base0C
+
+
+
+
+The base0C color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base0D
+
+
+
+
+The base0D color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base0E
+
+
+
+
+The base0E color to use
+
+Type:
+RGB color in hex format
+
+Declared by:
+
+
+
+<nvf/modules/plugins/theme/theme.nix>
+
+
+
+
+
+
+ vim.theme.base16-colors.base0F
+
+
+
+
+The base0F color to use
+
+Type:
+RGB color in hex format
+
Declared by:
@@ -24793,10 +28667,12 @@ strings concatenated with “\n”
-Supported themes can be found in supportedThemes.nix
+Supported themes can be found in supportedThemes.nix.
+Setting the theme to “base16” enables base16 theming and
+requires all of the colors in vim.theme.base16-colors to be set.
Type:
-one of “catppuccin”, “dracula”, “gruvbox”, “onedark”, “oxocarbon”, “rose-pine”, “tokyonight”
+one of “base16”, “catppuccin”, “dracula”, “gruvbox”, “onedark”, “oxocarbon”, “rose-pine”, “tokyonight”
Declared by:
@@ -28867,7 +32743,7 @@ null or anything
boolean
Default:
-true
+false
Declared by:
@@ -29350,30 +33226,6 @@ string or (luaInline)
Example:
mkLuaInline "os.getenv('XDG_DATA_HOME') .. '/nvf/undo'"
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
-
-
-
- vim.updateTime
-
-
-
-
-The number of milliseconds till Cursor Hold event is fired
-
-Type:
-signed integer
-
-Default:
-300
-
Declared by:
@@ -29524,6 +33376,31 @@ boolean
Example:
true
+Declared by:
+
+
+
+<nvf/modules/plugins/utility/diffview/diffview.nix>
+
+
+
+
+
+
+ vim.utility.diffview-nvim.setupOpts
+
+
+
+
+Option table to pass into the setup function of Fidget
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
Declared by:
@@ -30156,7 +34033,7 @@ boolean
-Jump to occurences [hop.nvim]
+Jump to occurrences [hop.nvim]
Type:
null or string
@@ -30213,7 +34090,7 @@ boolean
null or string
Default:
-"X"
+"<leader>sX"
Declared by:
@@ -30237,7 +34114,7 @@ null or string
null or string
Default:
-"S"
+"<leader>sS"
Declared by:
@@ -30261,7 +34138,7 @@ null or string
null or string
Default:
-"x"
+"<leader>sx"
Declared by:
@@ -30285,7 +34162,7 @@ null or string
null or string
Default:
-"s"
+"<leader>ss"
Declared by:
@@ -31077,7 +34954,9 @@ boolean
-nvim-surround: add/change/delete surrounding delimiter pairs with ease. Note that the default mappings deviate from upstreeam to avoid conflicts with nvim-leap.
+nvim-surround: add/change/delete surrounding delimiter pairs with ease.
+Note that the default mappings deviate from upstreeam to avoid conflicts
+with nvim-leap.
Type:
boolean
@@ -31096,15 +34975,40 @@ boolean
- vim.utility.surround.mappings.change
+ vim.utility.surround.setupOpts
-Change surrounding character
+Option table to pass into the setup function of nvim-surround
You can pass in any additional options even if they’re
+not listed in the docs
Type:
-null or string
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/utility/surround/surround.nix>
+
+
+
+
+
+
+ vim.utility.surround.setupOpts.keymaps.change
+
+
+
+
+keymap for change
+
+Type:
+string
Default:
"gzr"
@@ -31120,15 +35024,39 @@ null or string
- vim.utility.surround.mappings.delete
+ vim.utility.surround.setupOpts.keymaps.change_line
-Delete surrounding character
+keymap for change_line
Type:
-null or string
+string
+
+Default:
+"gZR"
+
+Declared by:
+
+
+
+<nvf/modules/plugins/utility/surround/surround.nix>
+
+
+
+
+
+
+ vim.utility.surround.setupOpts.keymaps.delete
+
+
+
+
+keymap for delete
+
+Type:
+string
Default:
"gzd"
@@ -31144,15 +35072,15 @@ null or string
- vim.utility.surround.mappings.insert
+ vim.utility.surround.setupOpts.keymaps.insert
-Add surround character around the cursor
+keymap for insert
Type:
-null or string
+string
Default:
"<C-g>z"
@@ -31168,15 +35096,15 @@ null or string
- vim.utility.surround.mappings.insertLine
+ vim.utility.surround.setupOpts.keymaps.insert_line
-Add surround character around the cursor on new lines
+keymap for insert_line
Type:
-null or string
+string
Default:
"<C-g>Z"
@@ -31192,15 +35120,15 @@ null or string
- vim.utility.surround.mappings.normal
+ vim.utility.surround.setupOpts.keymaps.normal
-Surround motion with character
+keymap for normal
Type:
-null or string
+string
Default:
"gz"
@@ -31216,15 +35144,15 @@ null or string
- vim.utility.surround.mappings.normalCur
+ vim.utility.surround.setupOpts.keymaps.normal_cur
-Surround motion with character on new lines
+keymap for normal_cur
Type:
-null or string
+string
Default:
"gZ"
@@ -31240,15 +35168,15 @@ null or string
- vim.utility.surround.mappings.normalCurLine
+ vim.utility.surround.setupOpts.keymaps.normal_cur_line
-Surround line with character on new lines
+keymap for normal_cur_line
Type:
-null or string
+string
Default:
"gZZ"
@@ -31264,15 +35192,15 @@ null or string
- vim.utility.surround.mappings.normalLine
+ vim.utility.surround.setupOpts.keymaps.normal_line
-Surround line with character
+keymap for normal_line
Type:
-null or string
+string
Default:
"gzz"
@@ -31288,15 +35216,15 @@ null or string
- vim.utility.surround.mappings.visual
+ vim.utility.surround.setupOpts.keymaps.visual
-Surround selection with character
+keymap for visual
Type:
-null or string
+string
Default:
"gz"
@@ -31312,15 +35240,15 @@ null or string
- vim.utility.surround.mappings.visualLine
+ vim.utility.surround.setupOpts.keymaps.visual_line
-Surround selection with character on new lines
+keymap for visual_line
Type:
-null or string
+string
Default:
"gZ"
@@ -31398,7 +35326,7 @@ boolean
null or package
Default:
-<derivation wakatime-cli-1.98.5>
+<derivation wakatime-cli-1.102.3>
Declared by:
@@ -31459,12 +35387,12 @@ boolean
- vim.visuals.enable
+ vim.visuals.cellular-automaton.enable
-Whether to enable Visual enhancements…
+Whether to enable cellular-automaton to help you cope with stubborn code [cellular-automaton].
Type:
boolean
@@ -31478,26 +35406,26 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/cellular-automaton/cellular-automaton.nix>
- vim.visuals.cellularAutomaton.enable
+ vim.visuals.cellular-automaton.animation.register
-Whether to enable cellular automaton [cellular-automaton].
+Whether to enable registering configured animation(s) automatically.
Type:
boolean
Default:
-false
+true
Example:
true
@@ -31505,15 +35433,66 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/cellular-automaton/cellular-automaton.nix>
- vim.visuals.cellularAutomaton.mappings.makeItRain
+ vim.visuals.cellular-automaton.animation.setup
+
+
+
+
+Configuration used to generate an animation to be registered.
The final value for ca_config will be used to register a new
+animation using require("cellular-automaton").register_animation(ca_config)
Warning
ca_config must eval to a valid Lua table. nvf does not and cannot
+perform any kind of validation on your Lua code, so bogus values will
+result in errors when the animation is registered.
+
+Type:
+luaInline
+
+Default:
{
+ _type = "lua-inline";
+ expr = ''
+ local ca_config = {
+ fps = 50,
+ name = 'slide',
+ }
+
+ -- init function is invoked only once at the start
+ -- config.init = function (grid)
+ --
+ -- end
+
+ -- update function
+ ca_config.update = function (grid)
+ for i = 1, #grid do
+ local prev = grid[i][#(grid[i])]
+ for j = 1, #(grid[i]) do
+ grid[i][j], prev = prev, grid[i][j]
+ end
+ end
+ return true
+ end
+ '';
+}
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/cellular-automaton/cellular-automaton.nix>
+
+
+
+
+
+
+ vim.visuals.cellular-automaton.mappings.makeItRain
@@ -31529,20 +35508,20 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/cellular-automaton/cellular-automaton.nix>
- vim.visuals.cursorline.enable
+ vim.visuals.cinnamon-nvim.enable
-Whether to enable line hightlighting on the cursor [nvim-cursorline].
+Whether to enable smooth scrolling for ANY command [cinnamon-nvim].
Type:
boolean
@@ -31556,56 +35535,114 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/cinnamon-nvim/cinnamon-nvim.nix>
- vim.visuals.cursorline.lineNumbersOnly
+ vim.visuals.cinnamon-nvim.setupOpts
-Hightlight only in the presence of line numbers
+Option table to pass into the setup function of cinnamon.nvim
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/cinnamon-nvim/cinnamon-nvim.nix>
+
+
+
+
+
+
+ vim.visuals.cinnamon-nvim.setupOpts.keymaps.basic
+
+
+
+
+Whether to enable basic animation keymaps.
Type:
boolean
Default:
+false
+
+Example:
true
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/cinnamon-nvim/cinnamon-nvim.nix>
- vim.visuals.cursorline.lineTimeout
+ vim.visuals.cinnamon-nvim.setupOpts.keymaps.extra
-Time in milliseconds for cursorline to appear
+Whether to enable extra animation keymaps.
Type:
-signed integer
+boolean
Default:
-0
+false
+
+Example:
+true
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/cinnamon-nvim/cinnamon-nvim.nix>
+
+
+
+
+
+
+ vim.visuals.cinnamon-nvim.setupOpts.options
+
+
+
+
+Scroll options
+
+Type:
+attribute set
+
+Default:
{
+ count_only = false;
+ mode = "cursor";
+}
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/cinnamon-nvim/cinnamon-nvim.nix>
@@ -31631,8 +35668,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31656,8 +35693,8 @@ anything
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31680,8 +35717,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31704,8 +35741,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31728,8 +35765,8 @@ floating point number
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31752,8 +35789,8 @@ one of “debug”, “error”, “info”, “trace”, “warn”, “off”<
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31776,8 +35813,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31805,8 +35842,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31834,8 +35871,8 @@ attribute set of (luaInline)
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31858,8 +35895,8 @@ one of “debug”, “info”, “warn”, “error”
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31882,8 +35919,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31906,8 +35943,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31930,8 +35967,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31963,8 +36000,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -31987,8 +36024,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32011,8 +36048,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32035,8 +36072,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32066,8 +36103,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32090,8 +36127,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32114,8 +36151,8 @@ one of “top”, “bottom”
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32138,8 +36175,8 @@ one of “none”, “single”, “double”, “rounded”, “solid”, “sh
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32162,8 +36199,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32186,8 +36223,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32210,8 +36247,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32234,8 +36271,8 @@ one of “editor”, “win”
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32258,8 +36295,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32282,8 +36319,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32306,8 +36343,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32330,8 +36367,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32354,8 +36391,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32378,8 +36415,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32402,8 +36439,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32431,8 +36468,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32460,8 +36497,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32489,8 +36526,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32513,8 +36550,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32537,8 +36574,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32590,8 +36627,8 @@ attribute set of (submodule)
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32614,8 +36651,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32638,8 +36675,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32662,8 +36699,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32686,8 +36723,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32710,8 +36747,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32734,8 +36771,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32758,8 +36795,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32786,8 +36823,8 @@ null or string or (luaInline)
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32810,8 +36847,8 @@ null or boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32834,8 +36871,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32858,8 +36895,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32882,8 +36919,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32910,8 +36947,8 @@ null or string or (luaInline)
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32934,8 +36971,8 @@ null or signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32958,8 +36995,8 @@ null or signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -32982,8 +37019,8 @@ null or boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33006,8 +37043,8 @@ null or signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33033,8 +37070,8 @@ null or boolean or (luaInline)
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33057,8 +37094,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33081,8 +37118,8 @@ null or string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33105,8 +37142,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33129,8 +37166,8 @@ one of “dots”, “dots_negative”, “dots_snake”, “dots_footsteps”,
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33153,8 +37190,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33177,8 +37214,8 @@ string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33201,8 +37238,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33225,8 +37262,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33249,8 +37286,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33273,8 +37310,8 @@ list of string
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33297,8 +37334,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33321,8 +37358,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33345,8 +37382,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33369,8 +37406,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33400,8 +37437,8 @@ luaInline
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33424,8 +37461,8 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33448,8 +37485,8 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/fidget/fidget.nix>
+
+<nvf/modules/plugins/visuals/fidget-nvim/fidget.nix>
@@ -33475,20 +37512,45 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/highlight-undo/highlight-undo.nix>
- vim.visuals.highlight-undo.duration
+ vim.visuals.highlight-undo.setupOpts
-Duration of highlight
+Option table to pass into the setup function of highlight-undo
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/highlight-undo/highlight-undo.nix>
+
+
+
+
+
+
+ vim.visuals.highlight-undo.setupOpts.duration
+
+
+
+
+Duration of the highlight
Type:
signed integer
@@ -33499,88 +37561,15 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/highlight-undo/highlight-undo.nix>
- vim.visuals.highlight-undo.highlightForCount
-
-
-
-
-Enable support for highlighting when a <count> is provided before the key
-If set to false it will only highlight when the mapping is not prefixed with a <count>
-
-Type:
-boolean
-
-Default:
-true
-
-Declared by:
-
-
-
-<nvf/modules/plugins/visuals/visuals.nix>
-
-
-
-
-
-
- vim.visuals.highlight-undo.redo.hlGroup
-
-
-
-
-Highlight group for redo
-
-Type:
-string
-
-Default:
-"HighlightUndo"
-
-Declared by:
-
-
-
-<nvf/modules/plugins/visuals/visuals.nix>
-
-
-
-
-
-
- vim.visuals.highlight-undo.undo.hlGroup
-
-
-
-
-Highlight group for undo
-
-Type:
-string
-
-Default:
-"HighlightUndo"
-
-Declared by:
-
-
-
-<nvf/modules/plugins/visuals/visuals.nix>
-
-
-
-
-
-
- vim.visuals.indentBlankline.enable
+ vim.visuals.indent-blankline.enable
@@ -33599,15 +37588,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.debounce
+ vim.visuals.indent-blankline.setupOpts.debounce
@@ -33623,15 +37612,15 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.indent.char
+ vim.visuals.indent-blankline.setupOpts.indent.char
@@ -33647,15 +37636,15 @@ string or list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.indent.highlight
+ vim.visuals.indent-blankline.setupOpts.indent.highlight
@@ -33671,15 +37660,15 @@ null or string or list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.indent.priority
+ vim.visuals.indent-blankline.setupOpts.indent.priority
@@ -33695,15 +37684,15 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.indent.repeat_linebreak
+ vim.visuals.indent-blankline.setupOpts.indent.repeat_linebreak
@@ -33719,15 +37708,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.indent.smart_indent_cap
+ vim.visuals.indent-blankline.setupOpts.indent.smart_indent_cap
@@ -33743,15 +37732,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.indent.tab_char
+ vim.visuals.indent-blankline.setupOpts.indent.tab_char
@@ -33767,15 +37756,15 @@ null or string or list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.enabled
+ vim.visuals.indent-blankline.setupOpts.scope.enabled
@@ -33791,15 +37780,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.char
+ vim.visuals.indent-blankline.setupOpts.scope.char
@@ -33810,20 +37799,20 @@ boolean
string or list of string
Default:
-config.vim.visuals.indentBlankline.setuopOpts.indent.char
+config.vim.visuals.indent-blankline.setupOpts.indent.char
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.exclude.language
+ vim.visuals.indent-blankline.setupOpts.scope.exclude.language
@@ -33839,15 +37828,15 @@ list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.exclude.node_type
+ vim.visuals.indent-blankline.setupOpts.scope.exclude.node_type
@@ -33874,15 +37863,15 @@ attribute set of list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.highlight
+ vim.visuals.indent-blankline.setupOpts.scope.highlight
@@ -33898,15 +37887,15 @@ null or string or list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.include.node_type
+ vim.visuals.indent-blankline.setupOpts.scope.include.node_type
@@ -33922,15 +37911,15 @@ attribute set of list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.injected_languages
+ vim.visuals.indent-blankline.setupOpts.scope.injected_languages
@@ -33946,15 +37935,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.priority
+ vim.visuals.indent-blankline.setupOpts.scope.priority
@@ -33970,15 +37959,15 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.show_end
+ vim.visuals.indent-blankline.setupOpts.scope.show_end
@@ -33994,15 +37983,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.show_exact_scope
+ vim.visuals.indent-blankline.setupOpts.scope.show_exact_scope
@@ -34018,15 +38007,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.scope.show_start
+ vim.visuals.indent-blankline.setupOpts.scope.show_start
@@ -34042,15 +38031,15 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.viewport_buffer.max
+ vim.visuals.indent-blankline.setupOpts.viewport_buffer.max
@@ -34067,15 +38056,15 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.viewport_buffer.min
+ vim.visuals.indent-blankline.setupOpts.viewport_buffer.min
@@ -34092,15 +38081,15 @@ signed integer
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.whitespace.highlight
+ vim.visuals.indent-blankline.setupOpts.whitespace.highlight
@@ -34116,15 +38105,15 @@ null or string or list of string
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.indentBlankline.setupOpts.whitespace.remove_blankline_trail
+ vim.visuals.indent-blankline.setupOpts.whitespace.remove_blankline_trail
@@ -34140,20 +38129,20 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/indent-blankline/indent-blankline.nix>
- vim.visuals.nvimWebDevicons.enable
+ vim.visuals.nvim-cursorline.enable
-Whether to enable dev icons. Required for certain plugins [nvim-web-devicons]…
+Whether to enable cursor word and line highlighting [nvim-cursorline].
Type:
boolean
@@ -34167,20 +38156,45 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
- vim.visuals.scrollBar.enable
+ vim.visuals.nvim-cursorline.setupOpts
-Whether to enable scrollbar [scrollbar.nvim].
+Option table to pass into the setup function of nvim-cursorline
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-cursorline.setupOpts.cursorline.enable
+
+
+
+
+Whether to enable cursor line highlighting.
Type:
boolean
@@ -34194,20 +38208,69 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
- vim.visuals.smoothScroll.enable
+ vim.visuals.nvim-cursorline.setupOpts.cursorline.number
-Whether to enable smooth scrolling [cinnamon-nvim].
+If true, vim.wo.cursorlineopt will be set to “number”
+when the trigger conditions are met.
+
+Type:
+boolean
+
+Default:
+false
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-cursorline.setupOpts.cursorline.timeout
+
+
+
+
+Cursorline timeout
+
+Type:
+signed integer
+
+Default:
+1000
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-cursorline.setupOpts.cursorword.enable
+
+
+
+
+Whether to enable cursor word highlighting.
Type:
boolean
@@ -34221,8 +38284,485 @@ boolean
Declared by:
-
-<nvf/modules/plugins/visuals/visuals.nix>
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-cursorline.setupOpts.cursorword.hl.underline
+
+
+
+
+Whether to underline matching cursorword
+
+Type:
+boolean
+
+Default:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-cursorline.setupOpts.cursorword.min_length
+
+
+
+
+The min_length option defines the minimum number of characters
+a word must have to be highlighted as a “cursor word.” Any word
+shorter than this value will be ignored and not highlighted.
+
+Type:
+signed integer
+
+Default:
+3
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-cursorline.setupOpts.cursorword.timeout
+
+
+
+
+Cursorword timeout
+
+Type:
+signed integer
+
+Default:
+1000
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-cursorline/nvim-cursorline.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-scrollbar.enable
+
+
+
+
+Whether to enable extensible Neovim Scrollbar [nvim-scrollbar].
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-scrollbar/scrollbar-nvim.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-scrollbar.setupOpts
+
+
+
+
+Option table to pass into the setup function of scrollbar-nvim
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-scrollbar/scrollbar-nvim.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-scrollbar.setupOpts.excluded_filetypes
+
+
+
+
+Filetypes to hide the scrollbar on
+
+Type:
+list of string
+
+Default:
[
+ "prompt"
+ "TelescopePrompt"
+ "noice"
+ "noice"
+ "NvimTree"
+ "neo-tree"
+ "alpha"
+ "notify"
+ "Navbuddy"
+]
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-scrollbar/scrollbar-nvim.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-web-devicons.enable
+
+
+
+
+Whether to enable Neovim dev icons [nvim-web-devicons].
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-web-devicons.setupOpts
+
+
+
+
+Option table to pass into the setup function of nvim-web-devicons
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-web-devicons.setupOpts.color_icons
+
+
+
+
+Whether to enable different highlight colors per icon.
+
+Type:
+boolean
+
+Default:
+true
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-web-devicons.setupOpts.override
+
+
+
+
+Your personal icon overrides.
You can specify color or cterm_color instead of specifying
+both of them. DevIcon will be appended to name
+
+Type:
+attribute set of (attribute set)
+
+Default:
+{ }
+
+Example:
{
+ zsh = {
+ name = "Zsh";
+ icon = "";
+ color = "#428850";
+ cterm_color = "65";
+ };
+}
+
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix>
+
+
+
+
+
+
+ vim.visuals.nvim-web-devicons.setupOpts.variant
+
+
+
+
+Set the light or dark variant manually, instead of relying on background
+
+Type:
+null or one of “light”, “dark”
+
+Default:
+null
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.enable
+
+
+
+
+Whether to enable alternative nvim-web-devicons icon colors [tiny-devicons-auto-colors].
+
+Type:
+boolean
+
+Default:
+false
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.setupOpts
+
+
+
+
+Option table to pass into the setup function of tiny-devicons-auto-colors
You can pass in any additional options even if they’re
+not listed in the docs
+
+Type:
+anything
+
+Default:
+{ }
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.setupOpts.factors.cache.enabled
+
+
+
+
+Whether to enable caching of icon colors. This will greatly improve performance.
+
+Type:
+boolean
+
+Default:
+true
+
+Example:
+true
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.setupOpts.factors.cache.path
+
+
+
+
+Path to the cache file
+
+Type:
+luaInline
+
+Default:
{
+ _type = "lua-inline";
+ expr = "vim.fn.stdpath(\"cache\") .. \"/tiny-devicons-auto-colors-cache.json\"";
+}
+
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.setupOpts.factors.chroma
+
+
+
+
+Chroma factor of icons
+
+Type:
+signed integer
+
+Default:
+1
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.setupOpts.factors.hue
+
+
+
+
+Hue factor of icons
+
+Type:
+floating point number
+
+Default:
+1.25
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
+
+
+
+
+
+
+ vim.visuals.tiny-devicons-auto-colors.setupOpts.factors.lightness
+
+
+
+
+Lightness factor of icons
+
+Type:
+floating point number
+
+Default:
+1.76
+
+Declared by:
+
+
+
+<nvf/modules/plugins/visuals/tiny-devicons-auto-colors/tiny-devicons-auto-colors.nix>
@@ -34310,30 +38850,6 @@ boolean
-
-
-
- vim.wordWrap
-
-
-
-
-Enable word wrapping.
-
-Type:
-boolean
-
-Default:
-true
-
-Declared by:
-
-
-
-<nvf/modules/neovim/init/basic.nix>
-
-
-
@@ -34341,12 +38857,12 @@ boolean
- Prev
+ Prev
Next
- Appendix A. Plugin specific quirks
+ Appendix A. Known Issues and Quirks
Home
Appendix C. Release Notes
diff --git a/plugins.html b/plugins.html
deleted file mode 100644
index b360b678..00000000
--- a/plugins.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
- Appendix A. Plugin specific quirks
-
-
-
-
-
-
-
- Appendix A. Plugin specific quirks
Table of Contents
At times, certain plugins refuse to play nicely. Be it as a result of generating
-lua from Nix, or the state of packaging. This page shall list any plugins that
-are known to misbehave, and potential workarounds.
NodeJS
Table of Contents
eslint-plugin-prettier
When working with NodeJS, everything works as expected, but some projects have settings that can fool nvf.
If this plugin or similar is included, you might get a situation where your eslint configuration diagnoses your formatting according to its own config (usually .eslintrc.js).
The issue there is your formatting is made via prettierd.
This results in auto-formating relying on your prettier config, while your eslint config diagnoses formatting which it’s not supposed to)
In the end, you get discrepancies between what your editor does and what it wants.
Solutions are:
Don’t add a formatting config to eslint, and separate prettier and eslint.
PR this repo to add an ESLint formatter and configure nvf to use it.
-
-
-
-
-
-
-
- Prev
-
- Next
-
-
- nvf manual
- Home
- Appendix B. Neovim Flake Configuration Options
-
-
-
-
-
\ No newline at end of file
diff --git a/quirks.html b/quirks.html
new file mode 100644
index 00000000..5a52ce94
--- /dev/null
+++ b/quirks.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+ Appendix A. Known Issues and Quirks
+
+
+
+
+
+
+
+ Appendix A. Known Issues and Quirks
Table of Contents
At times, certain plugins and modules may refuse to play nicely with your setup,
+be it a result of generating Lua from Nix, or the state of packaging. This page,
+in turn, will list any known modules or plugins that are known to misbehave, and
+possible workarounds that you may apply.
NodeJS
Table of Contents
eslint-plugin-prettier
When working with NodeJS, everything works as expected, but some projects have
+settings that can fool nvf.
If this plugin or similar
+is included, you might get a situation where your eslint configuration diagnoses
+your formatting according to its own config (usually .eslintrc.js).
The issue there is your formatting is made via prettierd.
This results in auto-formatting relying on your prettier config, while your
+eslint config diagnoses formatting
+which it’s not supposed to)
In the end, you get discrepancies between what your editor does and what it
+wants.
Solutions are:
Don’t add a formatting config to eslint, and separate prettier and eslint.
PR this repo to add an ESLint formatter and configure nvf to use it.
+
+
+
+
+
+
+
+ Prev
+
+ Next
+
+
+ nvf manual
+ Home
+ Appendix B. Neovim Flake Configuration Options
+
+
+
+
+
\ No newline at end of file
diff --git a/release-notes.html b/release-notes.html
index 3bd448ab..a17e1321 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -6,7 +6,7 @@
Appendix C. Release Notes
-
+
@@ -24,77 +24,140 @@
- Appendix C. Release Notes
Table of Contents
This section lists the release notes for tagged version of nvf and
-the current main current main branch
Release 0.1
Table of Contents
This is the current master branch and information here is not final. These are changes from the v0.01 tag.
Special thanks to home-manager for this release.
-Docs/manual generation, the new module evaluation system, and DAG implementation are from them.
Changelog
Removed hare language support (lsp/tree-sitter/etc). vim.lsp.hare is no longer defined.
-If you use hare and would like it added back, please file an issue.
vim.stratPlugins & vim.optPlugins are now
-an enum of string for options sourced from the flake inputs. Users can still provide vim
-plugin packages.
If you are contributing and adding a new plugin, add the plugin name to availablePlugins in
-types-plugin.nix.
neovimBuilder has been removed for configuration. Using an overlay is no longer required.
-See the manual for the new way to configuration.
Treesitter grammars are now configurable with vim.treesitter.grammars.
-Utilizes the nixpkgs nvim-treesitter plugin rather than a custom input in order to take advantage of build support of pinned versions.
-See relevant discourse post
-for more information. Packages can be found under the vimPlugins.nvim-treesitter.builtGrammars namespace.
vim.configRC and vim.luaConfigRC are now of type DAG lines.
-This allows for ordering of the config. Usage is the same is in home-manager’s home.activation option.
vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here"
-
catppuccin theme is now available as a neovim theme vim.theme.style and lualine theme
-vim.statusline.lualine.theme.
+ Appendix C. Release Notes
Table of Contents
This section lists the release notes for tagged version of nvf and the
+current main current main branch
Release 0.1
Table of Contents
This is the current master branch and information here is not final. These are
+changes from the v0.1 tag.
Special thanks to home-manager
+for this release. Docs/manual generation, the new module evaluation system, and
+DAG implementation are from them.
Changelog
Removed hare language support (lsp/tree-sitter/etc). vim.lsp.hare is no
+longer defined. If you use hare and would like it added back, please file an
+issue.
vim.startPlugins & vim.optPlugins are now an enum of
+string for options sourced from the flake inputs. Users can still provide
+vim plugin packages.
If you are contributing and adding a new plugin, add the plugin name to
+availablePlugins in [types-plugin.nix].
neovimBuilder has been removed for configuration. Using an overlay is no
+longer required. See the manual for the new way to configuration.
Treesitter grammars are now configurable with
+vim.treesitter.grammars. Utilizes the nixpkgs nvim-treesitter
+plugin rather than a custom input in order to take advantage of build support
+of pinned versions. See the relevant discourse post for more information.
+Packages can be found under the vimPlugins.nvim-treesitter.builtGrammars
+namespace.
vim.configRC and vim.luaConfigRC are now of type DAG lines. This
+allows for ordering of the config. Usage is the same is in home-manager’s
+home.activation option.
vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here"
+
catppuccin theme is now available as a neovim theme vim.theme.style
+and Lualine theme vim.statusline.lualine.theme.
- Release 0.2
Table of Contents
Release notes for release 0.2
Changelog
Added two minimap plugins under vim.minimap. codewindow.nvim is enabled by default, while minimap.vim is
-available with its code-minimap dependency.
A complementary plugin, obsidian.nvim and the Neovim alternative for Emacs’ orgmode with orgmode.nvim have been
-added. Both will be disabled by default.
Smooth scrolling for ANY movement command is now available with cinnamon.nvim
You will now notice a dashboard on startup. This is provided by the alpha.nvim plugin. You can use any of the
-three available dashboard plugins, or disable them entirely.
There is now a scrollbar on active buffers, which can highlight errors by hooking to your LSPs. This is on by
-default, but can be toggled off under vim.visuals if seen necessary.
Discord Rich Presence has been added through presence.nvim for those who want to flex that they are using
-the superior text editor.
An icon picker is now available with telescope integration. You can use :IconPickerInsert or :IconPickerYank
-to add icons to your code.
A general-purpose cheatsheet has been added through cheatsheet.nvim. Forget no longer!
ccc.nvim has been added to the default plugins to allow picking colors with ease.
Most UI components of Neovim have been replaced through the help of noice.nvim. There are also notifications
-and custom UI elements available for Neovim messages and prompts.
A (floating by default) terminal has been added through toggleterm.nvim.
Harness the power of ethical (tabnine.nvim) and not-so-ethical (copilot.lua) AI by those new assistant plugins.
-Both are off by default, TabNine needs to be wrapped before it’s working.
Experimental mouse gestures have been added through gesture.nvim. See plugin page and the relevant module for
-more details on how to use.
Re-open last visited buffers via nvim-session-manager. Disabled by default as deleting buffers seems to be
-problematic at the moment.
Most of NvimTree’s configuration options have been changed with some options being toggled to off by default.
Lualine had its configuration simplified and style toned down. Less color, more info.
Modules where multiple plugin configurations were in the same directory have been simplified. Each plugin inside
-a single module gets its directory to be imported.
Separate config options with the same parent attribute have been merged into one for simplicity.
+ Release 0.2
Table of Contents
Release notes for release 0.2
Changelog
Added two minimap plugins under vim.minimap. codewindow.nvim is enabled by
+default, while minimap.vim is available with its code-minimap dependency.
A complementary plugin, obsidian.nvim and the Neovim alternative for Emacs’
+orgmode with orgmode.nvim have been added. Both will be disabled by default.
Smooth scrolling for ANY movement command is now available with
+cinnamon.nvim
You will now notice a dashboard on startup. This is provided by the
+alpha.nvim plugin. You can use any of the three available dashboard plugins,
+or disable them entirely.
There is now a scrollbar on active buffers, which can highlight errors by
+hooking to your LSPs. This is on by default, but can be toggled off under
+vim.visuals if seen necessary.
Discord Rich Presence has been added through presence.nvim for those who
+want to flex that they are using the superior text editor.
An icon picker is now available with telescope integration. You can use
+:IconPickerInsert or :IconPickerYank to add icons to your code.
A general-purpose cheatsheet has been added through cheatsheet.nvim. Forget
+no longer!
ccc.nvim has been added to the default plugins to allow picking colors with
+ease.
Most UI components of Neovim have been replaced through the help of
+noice.nvim. There are also notifications and custom UI elements available
+for Neovim messages and prompts.
A (floating by default) terminal has been added through toggleterm.nvim.
Harness the power of ethical (tabnine.nvim) and not-so-ethical
+(copilot.lua) AI by those new assistant plugins. Both are off by default,
+TabNine needs to be wrapped before it’s working.
Experimental mouse gestures have been added through gesture.nvim. See plugin
+page and the relevant module for more details on how to use.
Re-open last visited buffers via nvim-session-manager. Disabled by default
+as deleting buffers seems to be problematic at the moment.
Most of NvimTree’s configuration options have been changed with some options
+being toggled to off by default.
Lualine had its configuration simplified and style toned down. Less color,
+more info.
Modules where multiple plugin configurations were in the same directory have
+been simplified. Each plugin inside a single module gets its directory to be
+imported.
Separate config options with the same parent attribute have been merged into
+one for simplicity.
- Release 0.3
Table of Contents
Release 0.3 had to come out beore I wanted it to due to Neovim 0.9 dropping into nixpkgs-unstable.
-The treesitter changes have prompted a treesitter rework, which was followed by reworking the languages system.
-Most of the changes to those are downstreamed from the original repository. The feature requests that was originally
-planned for 0.3 have been moved to 0.4, which should come out soon.
Changelog
We have transitioned to flake-parts, from flake-utils to extend the flexibility of this flake. This means the flake structure
-is different than usual, but the functionality remains the same.
We now provide a home-manager module. Do note that it is still far from perfect, but it works.
nodejs_16 is now bundled with Copilot.lua if the user has enabled Copilot assistant.
which-key section titles have been fixed. This is to be changed once again in a possible keybind rewrite, but now it should
-display the correct titles instad of +prefix
Most of presence.nvim’s options have been made fully configurable through your configuration file.
Most of the modules have been refactored to separate config and options attributes.
Darwin has been deprecated as the zig package is marked as broken. We will attempt to use the zig overlay to return Darwin
-support.
Fidget.nvim has been added as a neat visual addition for LSP installations.
diffview.nvim has been added to provide a convenient diff utility.
Treesitter grammars are now configurable with vim.treesitter.grammars.
-Utilizes the nixpkgs nvim-treesitter plugin rather than a custom input in order to take advantage of build support of pinned versions.
-See discourse for more information.
-Packages can be found under the pkgs.vimPlugins.nvim-treesitter.builtGrammars attribute. Treesitter grammars for supported languages should be
-enabled within the module. By default no grammars are installed, thus the following grammars which do not have a language section are not included anymore:
-comment, toml, make, html, css, graphql, json.
A new section has been added for language support: vim.languages.<language>.
The options vim.languages.enableLSP, vim.languages.enableTreesitter, etc.
-will enable the respective section for all languages that have been enabled.
All LSP languages have been moved here
plantuml and markdown have been moved here
A new section has been added for html. The old vim.treesitter.autotagHtml can be found at <<opt-vim.languages.html.treesitter.autotagHtml>>.
vim.git.gitsigns.codeActions has been added allowing you to turn on gitsigns codeactions.
Removed the plugins document in the docs. Was too unwieldy to keep updated.
vim.visual.lspkind has been moved to vim.lsp.lspkind.enable
Improved handling of completion formatting. When setting vim.autocomplete.sources, can also include optional menu mapping.
-And can provide your own function with vim.autocomplete.formatting.format.
For vim.visuals.indentBlankline.fillChar and vim.visuals.indentBlankline.eolChar
-turning them off should use null rather than "" now.
Transparency has been made optional and has been disabled by default. vim.theme.transparent option can be used to enable or
-disable transparency for your configuration.
Fixed deprecated configuration method for Tokyonight, and added new style “moon”
Dart language support as well as extended flutter support has been added. Thanks to @FlafyDev for his contributions towards Dart
-language support.
Elixir language support has been added through elixir-tools.nvim.
hop.nvim and leap.nvim have been added for fast navigation.
modes.nvim has been added to the UI plugins as a minor error highlighter.
smartcollumn.nvim has been added to dynamically display a colorcolumn when the limit has been exceeded, providing
-per-buftype column position and more.
project.nvim has been added for better project management inside Neovim.
More configuration options have been added to nvim-session-manager.
Editorconfig support has been added to the core functionality, with an enable option.
venn-nvim has been dropped due to broken keybinds.
+ Release 0.3
Table of Contents
Release 0.3 had to come out before I wanted it to due to Neovim 0.9 dropping
+into nixpkgs-unstable. The Treesitter changes have prompted a Treesitter rework,
+which was followed by reworking the languages system. Most of the changes to
+those are downstreamed from the original repository. The feature requests that
+was originally planned for 0.3 have been moved to 0.4, which should come out
+soon.
Changelog
We have transitioned to flake-parts, from flake-utils to extend the
+flexibility of this flake. This means the flake structure is different than
+usual, but the functionality remains the same.
We now provide a home-manager module. Do note that it is still far from
+perfect, but it works.
nodejs_16 is now bundled with Copilot.lua if the user has enabled Copilot
+assistant.
which-key section titles have been fixed. This is to be changed once again in
+a possible keybind rewrite, but now it should display the correct titles
+instead of +prefix
Most of presence.nvim’s options have been made fully configurable through
+your configuration file.
Most of the modules have been refactored to separate config and options
+attributes.
Darwin has been deprecated as the Zig package is marked as broken. We will
+attempt to use the Zig overlay to return Darwin support.
Fidget.nvim has been added as a neat visual addition for LSP installations.
diffview.nvim has been added to provide a convenient diff utility.
Treesitter grammars are now configurable with
+vim.treesitter.grammars. Utilizes the nixpkgs nvim-treesitter
+plugin rather than a custom input in order to take advantage of build support
+of pinned versions. See discourse for more information. Packages can be
+found under the pkgs.vimPlugins.nvim-treesitter.builtGrammars attribute.
+Treesitter grammars for supported languages should be enabled within the
+module. By default no grammars are installed, thus the following grammars
+which do not have a language section are not included anymore: comment,
+toml, make, html, css, graphql, json.
A new section has been added for language support: vim.languages.<language>.
The options vim.languages.enableLSP,
+vim.languages.enableTreesitter, etc. will enable the respective
+section for all languages that have been enabled.
All LSP languages have been moved here
plantuml and markdown have been moved here
A new section has been added for html. The old
+vim.treesitter.autotagHtml can be found at
+vim.languages.html.treesitter.autotagHtml.
vim.git.gitsigns.codeActions has been added, allowing you to turn on
+Gitsigns’ code actions.
Removed the plugins document in the docs. Was too unwieldy to keep updated.
vim.visual.lspkind has been moved to vim.lsp.lspkind.enable
Improved handling of completion formatting. When setting
+vim.autocomplete.sources, can also include optional menu mapping. And can
+provide your own function with vim.autocomplete.formatting.format.
For vim.visuals.indentBlankline.fillChar and
+vim.visuals.indentBlankline.eolChar options, turning them off should be done
+by using null rather than "" now.
Transparency has been made optional and has been disabled by default.
+vim.theme.transparent option can be used to enable or disable
+transparency for your configuration.
Fixed deprecated configuration method for Tokyonight, and added new style
+“moon”
Dart language support as well as extended flutter support has been added.
+Thanks to @FlafyDev for his contributions towards Dart language support.
Elixir language support has been added through elixir-tools.nvim.
hop.nvim and leap.nvim have been added for fast navigation.
modes.nvim has been added to the UI plugins as a minor error highlighter.
smartcollumn.nvim has been added to dynamically display a colorcolumn when
+the limit has been exceeded, providing per-buftype column position and more.
project.nvim has been added for better project management inside Neovim.
More configuration options have been added to nvim-session-manager.
Editorconfig support has been added to the core functionality, with an enable
+option.
venn-nvim has been dropped due to broken keybinds.
- Release 0.4
Table of Contents
Following the release of v0.3, I have decided to release v0.4 with a massive new change: customizable keybinds.
-As of the 0.4 release, keybinds will no longer be hardcoded and instead provided by each module’s own keybinds section.
-The old keybind system (vim.keybinds = {}) is now considered deprecated and the new lib functions are recommended to be
-used for adding keybinds for new plugins, or adding keybinds to existing plugins.
Alongside customizable keybinds, there are a few quality of life updates, such as lazygit integration and the
-new experimental Lua loader of Neovim 0.9 thanks to our awesome contributors who made this update possible during my absence.
Changelog
Streamlined keybind adding process towards new functions in extended stdlib.
Moved default keybinds into keybinds section of each module
Simplified luaConfigRC and configRC setting - they can now just take strings
Refactored the resolveDag function - you can just provide a string now, which will default to dag.entryAnywhere
Fixed formatting sometimes removing parts of files
Made formatting synchronous
Gave null-ls priority over other formatters
Added clangd as alternative lsp for C/++.
Added toggleterm integration for lazygit.
Added new option enableluaLoader to enable neovim’s experimental module loader for faster startup time.
Fixed bug where flutter-tools can’t find dart LSP
Added Debug Adapter (DAP) support for clang, rust, go, python and dart.
Made Copilot’s Node package configurable. It is recommended to keep as default, but providing a different NodeJS version is now possible.
Added vim.cursorlineOpt for configuring Neovim’s cursorlineOpt.
Added filetree.nvimTreeLua.view.cursorline, default false, to enable cursorline in nvimtre.
Added Fidget.nvim support for the Catppuccin theme.
Updated bundled NodeJS version used by Copilot.lua. v16 is now marked as insecure on Nixpkgs, and we updated to v18
Enabled Catppuccin modules for plugins available by default.
Added experimental Svelte support under vim.languages.
Removed unnecessary scrollbar element from notifications and codeaction warning UI.
vim.utility.colorizer has been renamed to vim.utility.ccc after the plugin it uses
Color preview via nvim-colorizer.lua
Updated Lualine statusline UI
Added vim-illuminate for smart highlighting
Added a module for enabling Neovim’s spellchecker
Added prettierd as an alternative formatter to prettier - currently defaults to prettier
Fixed presence.nvim inheriting the wrong client id
Cleaned up documentation
+ Release 0.4
Table of Contents
Following the release of v0.3, I have decided to release v0.4 with a massive new
+change: customizable keybinds. As of the 0.4 release, keybinds will no longer be
+hardcoded and instead provided by each module’s own keybinds section. The old
+keybind system (vim.keybinds = {}) is now considered deprecated and the new
+lib functions are recommended to be used for adding keybinds for new plugins, or
+adding keybinds to existing plugins.
Alongside customizable keybinds, there are a few quality of life updates, such
+as lazygit integration and the new experimental Lua loader of Neovim 0.9
+thanks to our awesome contributors who made this update possible during my
+absence.
Changelog
Streamlined keybind adding process towards new functions in extended stdlib.
Moved default keybinds into keybinds section of each module
Simplified luaConfigRC and configRC setting - they can now just take strings
Refactored the resolveDag function - you can just provide a string now, which
+will default to dag.entryAnywhere
Fixed formatting sometimes removing parts of files
Made formatting synchronous
Gave null-ls priority over other formatters
Added clangd as alternative lsp for C/++.
Added toggleterm integration for lazygit.
Added new option enableluaLoader to enable neovim’s experimental module
+loader for faster startup time.
Fixed bug where flutter-tools can’t find dart LSP
Added Debug Adapter (DAP) support for clang, rust, go, python and dart.
Made Copilot’s Node package configurable. It is recommended to keep as
+default, but providing a different NodeJS version is now possible.
Added vim.cursorlineOpt for configuring Neovim’s vim.o.cursorlineopt.
Added filetree.nvimTreeLua.view.cursorline, default false, to enable
+cursorline in nvimtre.
Added Fidget.nvim support for the Catppuccin theme.
Updated bundled NodeJS version used by Copilot.lua. v16 is now marked as
+insecure on Nixpkgs, and we updated to v18
Enabled Catppuccin modules for plugins available by default.
Added experimental Svelte support under vim.languages.
Removed unnecessary scrollbar element from notifications and codeaction
+warning UI.
vim.utility.colorizer has been renamed to vim.utility.ccc after the plugin
+it uses
Color preview via nvim-colorizer.lua
Updated Lualine statusline UI
Added vim-illuminate for smart highlighting
Added a module for enabling Neovim’s spellchecker
Added prettierd as an alternative formatter to prettier - currently defaults
+to prettier
Fixed presence.nvim inheriting the wrong client id
Cleaned up documentation
- Release 0.5
Table of Contents
Release notes for release 0.5
Changelog
Added phan language server for PHP
Added phpactor language server for PHP
Added transparency support for tokyonight theme
Fixed a bug where cmp’s close and scrollDocs mappings wasn’t working
Streamlined and simplified extra plugin API with the addition of vim.extraPlugins
Allow using command names in place of LSP packages to avoid automatic installation
Add lua LSP and treesitter support, and neodev.nvim plugin support
Add vim.lsp.mappings.toggleFormatOnSave keybind
Added daily notes options for obsidian plugin
Added jdt-language-server for Java
Added Deno Language Server for javascript/typescript
Added support for multiple languages vim.spellChecking.languages, and added
-vim-dirtytalk through vim.spellChecking.enableProgrammingWordList
Renamed vim.visuals.cursorWordline to vim.visuals.cursorline.enable
Added vim.visuals.cursorline.lineNumbersOnly to display cursorline
-only in the presence of line numbers
Added Oxocarbon to the list of available themes.
Added GitHub Copilot to nvim-cmp completion sources.
Added vim.ui.borders.enable for global and individual plugin border configuration.
LSP integrated breadcrumbs with vim.ui.breadcrumbs.enable through nvim-navic
LSP navigation helper with nvim-navbuddy, depends on nvim-navic (automatically enabled if navic is enabled)
Addeed nvim-navic integration for catppuccin theme
Fixed mismatching zig language description
Added support for statix and deadnix through vim.languages.nix.extraDiagnostics.types
Added lsp_lines plugin for showing diagnostic messages
Added a configuration option for choosing the leader key
The package used for neovim is now customizable by the user, using vim.package.
-For best results, always use an unwrapped package
Added highlight-undo plugin for highlighting undo/redo targets
Added bash LSP and formatter support
Disabled Lualine LSP status indicator for toggleterm buffer
Added nvim-docs-view, a plugin to display lsp hover documentation in a side panel
Switched to nixosOptionsDoc in option documentation.
-To quote home-manager commit: “Output is mostly unchanged aside from some minor typographical and
-formatting changes, along with better source links.”
Updated indent-blankine.nvim to v3 - this comes with a few option changes, which will be migrated with renamedOptionModule
Fixed scrollOffset not being used
Updated clangd to 16
Disabled useSystemClipboard by default
Add support to change mappings to utility/surround
Add black-and-isort python formatter
Removed redundant “Enable …” in mkEnableOption descriptions
Add options to modify LSP key bindings and add proper whichkey descriptions
Changed type of statusline.lualine.activeSection and statusline.lualine.inactiveSection
-from attrsOf str to attrsOf (listOf str)
Added statusline.lualine.extraActiveSection and statusline.lualine.extraInactiveSection
+ Release 0.5
Table of Contents
Release notes for release 0.5
Changelog
Added phan language server for PHP
Added phpactor language server for PHP
Added transparency support for tokyonight theme
Fixed a bug where cmp’s close and scrollDocs mappings wasn’t working
Streamlined and simplified extra plugin API with the addition of
+vim.extraPlugins
Allow using command names in place of LSP packages to avoid automatic
+installation
Add lua LSP and Treesitter support, and neodev.nvim plugin support
Add vim.lsp.mappings.toggleFormatOnSave keybind
Added daily notes options for obsidian plugin
Added jdt-language-server for Java
Added Deno Language Server for Javascript/Typescript
Added support for multiple languages under vim.spellChecking.languages, and
+added vim-dirtytalk through vim.spellChecking.enableProgrammingWordList
Renamed vim.visuals.cursorWordline to vim.visuals.cursorline.enable
Added vim.visuals.cursorline.lineNumbersOnly to display cursorline only in
+the presence of line numbers
Added Oxocarbon to the list of available themes.
Added GitHub Copilot to nvim-cmp completion sources.
Added vim.ui.borders.enable for global and individual plugin border
+configuration.
LSP integrated breadcrumbs with vim.ui.breadcrumbs.enable through
+nvim-navic
LSP navigation helper with nvim-navbuddy, depends on nvim-navic (automatically
+enabled if navic is enabled)
Added nvim-navic integration for Catppuccin theme
Fixed mismatching Zig language description
Added support for statix and deadnix through
+vim.languages.nix.extraDiagnostics.types
Added lsp_lines plugin for showing diagnostic messages
Added a configuration option for choosing the leader key
The package used for neovim is now customizable by the user, using
+vim.package. For best results, always use an unwrapped package
Added highlight-undo plugin for highlighting undo/redo targets
Added bash LSP and formatter support
Disabled Lualine LSP status indicator for Toggleterm buffer
Added nvim-docs-view, a plugin to display LSP hover documentation in a side
+panel
Switched to nixosOptionsDoc in option documentation. To quote home-manager
+commit: “Output is mostly unchanged aside from some minor typographical and
+formatting changes, along with better source links.”
Updated indent-blankine.nvim to v3 - this comes with a few option changes,
+which will be migrated with renamedOptionModule
Fixed scrollOffset not being used
Updated clangd to 16
Disabled useSystemClipboard by default
Add support to change mappings to utility/surround
Add black-and-isort python formatter
Removed redundant “Enable …” in mkEnableOption descriptions
Add options to modify LSP key bindings and add proper which-key descriptions
Changed type of statusline.lualine.activeSection and
+statusline.lualine.inactiveSection from attrsOf str to
+attrsOf (listOf str)
Added statusline.lualine.extraActiveSection and
+statusline.lualine.extraInactiveSection
- Release 0.6
Table of Contents
Release notes for release 0.6
Breaking Changes and Migration Guide
In v0.6 we are introducing setupOpts: many plugin related options are moved into their respective setupOpts
-submodule, e.g. nvimTree.disableNetrw is renamed to nvimTree.setupOpts.disable_netrw.
Why? in short, you can now pass in anything to setupOpts and it will be passed to your require'plugin'.setup{...}.
-No need to wait for us to support every single plugin option.
The warnings when you rebuild your config should be enough to guide you through what you need to do, if there’s an
-option that was renamed but wasn’t listed in the warning, please file a bug report!
To make your migration process less annoying, here’s a keybind that will help you with renaming stuff from camelCase to
-snake_case (you’ll be doing that a lot):
-- paste this in a temp.lua file and load it in vim with :source /path/to/temp.lua
+
Release 0.6
Table of Contents
Release notes for release 0.6
Breaking Changes and Migration Guide
In v0.6 we are introducing setupOpts: many plugin related options are moved
+into their respective setupOpts submodule, e.g. nvimTree.disableNetrw is
+renamed to nvimTree.setupOpts.disable_netrw.
Why? in short, you can now pass in anything to setupOpts and it will be passed
+to your require'plugin'.setup{...}. No need to wait for us to support every
+single plugin option.
The warnings when you rebuild your config should be enough to guide you through
+what you need to do, if there’s an option that was renamed but wasn’t listed in
+the warning, please file a bug report!
To make your migration process less annoying, here’s a keybind that will help
+you with renaming stuff from camelCase to snake_case (you’ll be doing that a
+lot):
-- paste this in a temp.lua file and load it in vim with :source /path/to/temp.lua
function camelToSnake()
-- Get the current word under the cursor
local word = vim.fn.expand("<cword>")
@@ -113,35 +176,57 @@ end
vim.api.nvim_set_keymap('n', '<leader>a', ':lua camelToSnake()<CR>', { noremap = true, silent = true })
- Changelog
Added Terraform language support.
Added ChatGPT.nvim, which can be enabled with vim.assistant.chatgpt. Do
-keep in mind that this option requires OPENAI_API_KEY environment variable to be set.
Added Gruvbox theme.
Added marksman LSP for Markdown.
Fixed markdown preview with Glow not working and added an option for changing the preview keybind.
colorizer.nvim: switched to a maintained fork.
Added markdown-preview.nvim, moved glow.nvim to a brand new vim.utility.preview category.
Added rose-pine theme.
Added vim.autocomplete.alwaysComplete. Allows users to have the autocomplete window popup only when manually activated.
Fixed empty winbar when breadcrumbs are disabled.
Added custom setupOpts for various plugins.
Removed support for deprecated plugin “nvim-compe”.
Moved most plugins to setupOpts method.
Added option vim.luaPackages to wrap neovim with extra Lua packages.
Rewrote the entire fidget.nvim module to include extensive configuration options. Option vim.fidget-nvim.align.bottom has
-been removed in favor of vim.fidget-nvim.notification.window.align, which now supports
-top and bottom values. vim.fidget-nvim.align.right has no longer any equivalent and also has been removed.
which-key.nvim categories can now be customized through vim.binds.whichKey.register
Added magick to vim.luaPackages for image.nvim.
Added alejandra to the default devShell.
Migrated neovim-flake to makeNeovimUnstable wrapper.
Finished moving to nixosOptionsDoc in the documentation and changelog. All documentation options
-and files are fully free of Asciidoc, and will now use Nixpkgs flavored markdown.
Bumped plugin inputs to their latest versions.
Deprecated presence.nvim in favor of neocord. This means vim.rich-presence.presence-nvim is removed and will throw
-a warning if used. You are recommended to rewrite your neocord configuration from scratch based on the.
-official documentation
Removed Tabnine plugin due to the usage of imperative tarball downloads. If you’d like to see it back, please create an issue.
Added support for css and tailwindcss through vscode-language-servers-extracted & tailwind-language-server.
-Those can be enabled through vim.languages.css and vim.languages.tailwind.
Lualine module now allows customizing always_divide_middle, ignore_focus and disabled_filetypes through the new
-options: vim.statusline.lualine.alwaysDivideMiddle,
-vim.statusline.lualine.ignoreFocus and
-vim.statusline.lualine.disabledFiletypes.
Updated all plugin inputs to their latest versions (21.04.2024) - this brought minor color changes to the Catppuccin
-theme.
Moved home-manager module entrypoint to flake/modules and added an experimental Nixos module. This requires further testing
-before it can be considered ready for use.
Made lib calls explicit. E.g. lib.strings.optionalString instead of lib.optionalString. This is a pattern expected
-to be followed by all contributors in the future.
Added image.nvim for image previews.
The final neovim package is now exposed. This means you can build the neovim package that will be added to your
-package list without rebuilding your system to test if your configuration yields a broken package.
Changed the tree structure to distinguish between core options and plugin options.
Added plugin auto-discovery from plugin inputs. This is mostly from
-JordanIsaac’s neovim-flake. Allows contributors to add plugin inputs
-with the plugin- prefix to have them automatically discovered for the plugin type in lib/types.
Moved internal wrapLuaConfig to the extended library, structured its arguments to take luaBefore, luaConfig
-and luaAfter as strings, which are then concatted inside a lua block.
Added vim.luaConfigBefore and vim.luaConfigAfter
-for inserting verbatim Lua configuration before and after the resolved Lua DAG respectively. Both of those options
-take strings as the type, so you may read the contents of a Lua file from a given path.
Added vim.spellChecking.ignoredFiletypes
-and vim.spellChecking.programmingWordlist.enable for ignoring certain filetypes
-in spellchecking and enabling vim-dirtytalk respectively. The previously used vim.spellcheck.vim-dirtytalk aliases to the latter
-option.
Exposed withRuby, withNodeJs, withPython3, and python3Packages from the makeNeovimConfig function under their respective options.
Added vim.extraPackages for appending additional packages to the wrapper PATH, making said packages available
-while inside the Neovim session.
Made treesitter options configurable, and moved treesitter-context to setupOpts` while it is enabled.
Added vim.notify.nvim-notify.setupOpts.render which takes either a string of enum or
-a lua function. The default is “compact”, but you may change it according to
-nvim-notify documentation.
+ Changelog
Added Terraform language support.
Added ChatGPT.nvim, which can be enabled with
+vim.assistant.chatgpt.enable. Do keep in mind that this option
+requires OPENAI_API_KEY environment variable to be set.
Added Gruvbox theme.
Added marksman LSP for Markdown.
Fixed markdown preview with Glow not working and added an option for changing
+the preview keybind.
colorizer.nvim: switched to a maintained fork.
Added markdown-preview.nvim, moved glow.nvim to a brand new
+vim.utility.preview category.
Added rose-pine theme.
Added vim.autocomplete.alwaysComplete. Allows users to have the autocomplete
+window popup only when manually activated.
Fixed empty winbar when breadcrumbs are disabled.
Added custom setupOpts for various plugins.
Removed support for deprecated plugin “nvim-compe”.
Moved most plugins to setupOpts method.
Added option vim.luaPackages to wrap neovim with extra Lua packages.
Rewrote the entire fidget.nvim module to include extensive configuration
+options. Option vim.fidget-nvim.align.bottom has been removed in favor of
+vim.fidget-nvim.notification.window.align, which now supports top and
+bottom values. vim.fidget-nvim.align.right has no longer any equivalent
+and also has been removed.
which-key.nvim categories can now be customized through
+vim.binds.whichKey.register
Added magick to vim.luaPackages for image.nvim.
Added alejandra to the default devShell.
Migrated neovim-flake to makeNeovimUnstable wrapper.
Finished moving to nixosOptionsDoc in the documentation and changelog. All
+documentation options and files are fully free of Asciidoc, and will now use
+Nixpkgs flavored markdown.
Bumped plugin inputs to their latest versions.
Deprecated presence.nvim in favor of neocord. This means
+vim.rich-presence.presence-nvim is removed and will throw a warning if used.
+You are recommended to rewrite your neocord configuration from scratch based
+on the. official documentation
Removed Tabnine plugin due to the usage of imperative tarball downloads. If
+you’d like to see it back, please create an issue.
Added support for css and tailwindcss through
+vscode-language-servers-extracted & tailwind-language-server. Those can be
+enabled through vim.languages.css and vim.languages.tailwind.
Lualine module now allows customizing always_divide_middle, ignore_focus
+and disabled_filetypes through the new options:
+vim.statusline.lualine.alwaysDivideMiddle,
+vim.statusline.lualine.ignoreFocus
+and
+vim.statusline.lualine.disabledFiletypes.
Updated all plugin inputs to their latest versions (21.04.2024) - this
+brought minor color changes to the Catppuccin theme.
Moved home-manager module entrypoint to flake/modules and added an
+experimental Nixos module. This requires further testing before it can be
+considered ready for use.
Made lib calls explicit. E.g. lib.strings.optionalString instead of
+lib.optionalString. This is a pattern expected to be followed by all
+contributors in the future.
Added image.nvim for image previews.
The final neovim package is now exposed. This means you can build the neovim
+package that will be added to your package list without rebuilding your system
+to test if your configuration yields a broken package.
Changed the tree structure to distinguish between core options and plugin
+options.
Added plugin auto-discovery from plugin inputs. This is mostly from
+JordanIsaac’s neovim-flake.
+Allows contributors to add plugin inputs with the plugin- prefix to have
+them automatically discovered for the plugin type in lib/types.
Moved internal wrapLuaConfig to the extended library, structured its
+arguments to take luaBefore, luaConfig and luaAfter as strings, which
+are then concatted inside a lua block.
Added vim.luaConfigPre and vim.luaConfigPost for inserting
+verbatim Lua configuration before and after the resolved Lua DAG respectively.
+Both of those options take strings as the type, so you may read the contents
+of a Lua file from a given path.
Added vim.spellchecking.ignoredFiletypes and
+vim.spellChecking.programmingWordlist.enable for ignoring certain filetypes
+in spellchecking and enabling vim-dirtytalk respectively. The previously
+used vim.spellcheck.vim-dirtytalk aliases to the latter option.
Exposed withRuby, withNodeJs, withPython3, and python3Packages from
+the makeNeovimConfig function under their respective options.
Added vim.extraPackages for appending additional packages to the
+wrapper PATH, making said packages available while inside the Neovim session.
Made Treesitter options configurable, and moved treesitter-context to
+setupOpts while it is enabled.
Added vim.notify.nvim-notify.setupOpts.render which takes either a
+string of enum, or a Lua function. The default is “compact”, but you may
+change it according to nvim-notify documentation.
- Release 0.7
Table of Contents
Release notes for release 0.7
Breaking Changes and Migration Guide
vim.configRC removed
In v0.7 we are removing vim.configRC in favor of making vim.luaConfigRC the
+
Release 0.7
Table of Contents
Release notes for release 0.7
Breaking Changes and Migration Guide
vim.configRC removed
In v0.7 we are removing vim.configRC in favor of making vim.luaConfigRC the
top-level DAG, and thereby making the entire configuration Lua based. This
change introduces a few breaking changes:
vim.configRC has been removed, which means that you have to convert all of
your custom vimscript-based configuration to Lua. As for how to do that, you
@@ -151,12 +236,46 @@ slightly changed. See the new
+
vim.maps rewrite
Instead of specifying map modes using submodules (eg.: vim.maps.normal), a new
+vim.keymaps submodule with support for a mode option has been introduced. It
+can be either a string, or a list of strings, where a string represents the
+short-name of the map mode(s), that the mapping should be set for. See
+:help map-modes for more information.
For example:
vim.maps.normal."<leader>m" = { ... };
+
has to be replaced by
vim.keymaps = [
+ {
+ key = "<leader>m";
+ mode = "n";
+ }
+ ...
+];
+
vim.lsp.nvimCodeActionMenu removed in favor of vim.ui.fastaction
The nvim-code-action-menu plugin has been archived and broken for a long time,
so it’s being replaced with a young, but better alternative called
fastaction.nvim. Simply remove everything set under
vim.lsp.nvimCodeActionMenu, and set vim.ui.fastaction.enable to true.
Note that we are looking to add more alternatives in the future like
dressing.nvim and actions-preview.nvim, in case fastaction doesn’t work for
everyone.
+ type based modules removed
As part of the autocompletion rewrite, modules that used to use a type option
+have been replaced by per-plugin modules instead. Since both modules only had
+one type, you can simply change
vim.autocomplete.* -> vim.autocomplete.nvim-cmp.*
vim.autopairs.enable -> vim.autopairs.nvim-autopairs.enable
+ nixpkgs-fmt removed in favor of nixfmt
nixpkgs-fmt has been archived for a while, and it’s finally being removed in
+favor of nixfmt (more information can be found
+here.
To migrate to nixfmt, simply change vim.languages.nix.format.type to
+nixfmt.
+ leader changes
This has been deprecated in favor of using the more generic vim.globals (you
+can use vim.globals.mapleader to change this instead).
Rust specific keymaps now use maplocalleader instead of localleader by
+default. This is to avoid conflicts with other modules. You can change
+maplocalleader with vim.globals.maplocalleader, but it’s recommended to set
+it to something other than mapleader to avoid conflicts.
+ vim.* changes
Inline with the leader changes, we have removed some
+options that were under vim as convenient shorthands for vim.o.* options.
Warning
As v0.7 features the addition of vim.options, those options are now
+considered as deprecated. You should migrate to the appropriate options in the
+vim.options submodule.
The changes are, in no particular order:
colourTerm, mouseSupport, cmdHeight, updateTime, mapTime,
+cursorlineOpt, splitBelow, splitRight, autoIndent and wordWrap have
+been mapped to their vim.options equivalents. Please see the module
+definition for the updated options.
tabWidth has been removed as it lead to confusing behaviour. You can
+replicate the same functionality by setting shiftwidth, tabstop and
+softtabstop under vim.options as you see fit.
Changelog
Add support for typst under vim.languages.typst This
@@ -166,10 +285,11 @@ will enable the typst-lsp language server, and the
group for Normal, NormalFloat, LineNr, SignColumn and optionally
NvimTreeNormal to none.
Fix vim.ui.smartcolumn.setupOpts.custom_colorcolumn using the wrong
type int instead of the expected type string.
Fix broken treesitter-context keybinds in visual mode
Deprecate use of __empty to define empty tables in Lua. Empty attrset are no
-longer filtered and thus should be used instead.
Add dap-go for better dap configurations
Make noice.nvim customizable
Standardize border style options and add custom borders
Switch from rust-tools.nvim to the more feature-packed rustaceanvim. This
+longer filtered and thus should be used instead.
Add dap-go for better dap configurations
Make noice.nvim customizable
Standardize border style options and add custom borders
Remove vim.disableDefaultRuntimePaths in wrapper options.
As nvf uses $NVIM_APP_NAME as of recent changes, we can safely assume any
+configuration in $XDG_CONFIG_HOME/nvf is intentional.
Switch from rust-tools.nvim to the more feature-packed rustaceanvim. This
switch entails a whole bunch of new features and options, so you are
recommended to go through rustacean.nvim’s README to take a closer look at its
-features and usage
Add ocaml-lsp support
Fix “Emac” typo
Add new-file-template.nvim to automatically fill new file contents using
+features and usage
Add lz.n support and lazy-load some builtin plugins.
Add simpler helper functions for making keymaps
Add ocaml-lsp support
Fix “Emac” typo
Add new-file-template.nvim to automatically fill new file contents using
templates
Make neo-tree.nvim display file icons properly by enabling
visuals.nvimWebDevicons
Move the theme dag entry to before luaScript.
Add rustfmt as the default formatter for Rust.
Enabled the terminal integration of catppuccin for theming Neovim’s built-in
terminal (this also affects toggleterm).
Migrate bufferline to setupOpts for more customizability
Use clangd as the default language server for C languages
Expose lib.nvim.types.pluginType, which for example allows the user to
@@ -181,13 +301,26 @@ yourself by adding vim.opt.listchars:append({ space =
lua configuration
eolChar - this also had nothing to do with the plugin, please configure it
yourself by adding vim.opt.listchars:append({ eol = '<char>' }) to your
lua configuration
Replace vim.lsp.nvimCodeActionMenu with vim.ui.fastaction, see the
-breaking changes section above for more details
Make Neovim’s configuration file entirely Lua based. This comes with a few
+breaking changes section above for more details
Add a setupOpts option to nvim-surround, which allows modifying options that
+aren’t defined in nvf. Move the alternate nvim-surround keybinds to use
+setupOpts.
Remove autopairs.type, and rename autopairs.enable to
+autopairs.nvim-autopairs.enable. The new
+vim.autopairs.nvim-autopairs.enable supports setupOpts format by
+default.
Refactor of nvim-cmp and completion related modules
Remove autocomplete.type in favor of per-plugin enable options such as
+vim.autocomplete.nvim-cmp.enable.
Deprecate legacy Vimsnip in favor of Luasnip, and integrate
+friendly-snippets for bundled snippets. vim.snippets.luasnip.enable
+can be used to toggle Luasnip.
Add sorting function options for completion sources under
+vim.autocomplete.nvim-cmp.setupOpts.sorting.comparators
Add C# support under vim.languages.csharp, with support for both
+omnisharp-roslyn and csharp-language-server.
Add Julia support under vim.languages.julia. Note that the entirety of Julia
+is bundled with nvf, if you enable the module, since there is no way to
+provide only the LSP server.
Add run.nvim support for running code
+using cached commands.
Make Neovim’s configuration file entirely Lua based. This comes with a few
breaking changes:
vim.configRC has been removed. You will need to migrate your entries to
Neovim-compliant Lua code, and add them to vim.luaConfigRC instead.
Existing vimscript configurations may be preserved in vim.cmd functions.
Please see Neovim documentation on vim.cmd
vim.luaScriptRC is now the top-level DAG, and the internal vim.pluginRC
has been introduced for setting up internal plugins. See the “DAG entries in
-nvf” manual page for more information.
Add deno fmt as the default Markdown formatter. This will be enabled
+nvf” manual page for more information.
Rewrite vim.maps, see the breaking changes section above.
Add deno fmt as the default Markdown formatter. This will be enabled
automatically if you have autoformatting enabled, but can be disabled manually
if you choose to.
Add vim.extraLuaFiles for optionally sourcing additional lua files in your
configuration.
Refactor programs.languages.elixir to use lspconfig and none-ls for LSP and
@@ -212,8 +345,22 @@ server and make it default.
Add vim.options to set vim.o values in in your nvf configuration
without using additional Lua. See option documentation for more details.
Add vim.dashboard.dashboard-nvim.setupOpts to allow user
configuration for dashboard.nvim
Update lualine.nvim input and add missing themes:
Adds ayu, gruvbox_dark, iceberg, moonfly, onedark,
-powerline_dark and solarized_light themes.
Telescope:
Fixed project-nvim command and keybinding
Added default ikeybind/command for Telescope resume (<leader>fr)
Add LSP and Treesitter support for R under vim.languages.R.
Add Otter support under vim.lsp.otter and an assert to prevent conflict with
-ccc
Fix internal breakage in elixir-tools setup.
Add precognition-nvim.
+powerline_dark and solarized_light themes.Add vim.spellcheck.extraSpellWords to allow adding arbitrary
+spellfiles to Neovim’s runtime with ease.
Add combined nvf configuration (config.vim) into the final package’s
+passthru as passthru.neovimConfiguration for easier debugging.
Add support for tiny-devicons-auto-colors under
+vim.visuals.tiny-devicons-auto-colors
Move options that used to set vim.o values (e.g. vim.wordWrap) into
+vim.options as default values. Some are left as they don’t have a direct
+equivalent, but expect a switch eventually.
Telescope:
Fixed project-nvim command and keybinding
Added default ikeybind/command for Telescope resume (<leader>fr)
Add hcl lsp/formatter (not the same as terraform, which is not useful for
+e.g. nomad config files).
Add LSP and Treesitter support for R under vim.languages.R.
Add formatter support for R, with styler and formatR as options
Add Otter support under vim.lsp.otter and an assert to prevent conflict with
+ccc
Fixed typo in Otter’s setupOpts
Add Neorg support under vim.notes.neorg
Add LSP, diagnostics, formatter and Treesitter support for Kotlin under
+vim.languages.kotlin
changed default keybinds for leap.nvim to avoid altering expected behavior
Add LSP, formatter and Treesitter support for Vala under vim.languages.vala
Add [Tinymist](https://github.com/Myriad-Dreamin/tinymist] as a formatter for
+the Typst language module.
Add LSP and Treesitter support for Assembly under vim.languages.assembly
Move which-key to the new spec
Add LSP and Treesitter support for Nushell under vim.languages.nu
Add LSP and Treesitter support for Gleam under vim.languages.gleam
Add support for base16 theming under
+vim.theme
Fix internal breakage in elixir-tools setup.
Add LSP support for Scala via
+nvim-metals
Add biome support for Typescript, CSS and
+Svelte. Enable them via vim.languages.ts.format.type,
+vim.languages.css.format.type and
+vim.languages.svelte.format.type respectively.
Replace nixpkgs-fmt with
+nixfmt (nixfmt-rfc-style).
Add precognition-nvim.
Add support for Astro language server.
diff --git a/script/anchor-min.js b/script/anchor-min.js
new file mode 100644
index 00000000..70565172
--- /dev/null
+++ b/script/anchor-min.js
@@ -0,0 +1,10 @@
+// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
+//
+// AnchorJS - v5.0.0 - 2023-01-18
+// https://www.bryanbraun.com/anchorjs/
+// Copyright (c) 2023 Bryan Braun; Licensed MIT
+//
+// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
+!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
+// @license-end
+
diff --git a/script/anchor-use.js b/script/anchor-use.js
new file mode 100644
index 00000000..d2f2fe6c
--- /dev/null
+++ b/script/anchor-use.js
@@ -0,0 +1,4 @@
+document.addEventListener('DOMContentLoaded', function(event) {
+ anchors.add('h1[id]:not(div.note h1, div.warning h1, div.tip h1, div.caution h1, div.important h1), h2[id]:not(div.note h2, div.warning h2, div.tip h2, div.caution h2, div.important h2), h3[id]:not(div.note h3, div.warning h3, div.tip h3, div.caution h3, div.important h3), h4[id]:not(div.note h4, div.warning h4, div.tip h4, div.caution h4, div.important h4), h5[id]:not(div.note h5, div.warning h5, div.tip h5, div.caution h5, div.important h5), h6[id]:not(div.note h6, div.warning h6, div.tip h6, div.caution h6, div.important h6)');
+});
+
diff --git a/style.css b/style.css
index 3f803f25..9376c288 100644
--- a/style.css
+++ b/style.css
@@ -1,830 +1,589 @@
-:root {
- --nmd-color0: #0a3e68;
- --nmd-color1: #268598;
- --nmd-color2: #b8d09e;
- --nmd-color3: #f6cf5e;
- --nmd-color4: #ec733b;
- --nmd-color-info: #167cb9;
- --nmd-color-warn: #ff6700;
-}
+@import "tomorrow.min.css";
html {
- -webkit-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
}
+
html:focus-within {
- scroll-behavior: smooth;
+ scroll-behavior: smooth;
}
+
body {
- -webkit-text-size-adjust: 100%;
- -moz-text-size-adjust: 100%;
- text-size-adjust: 100%;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- min-height: 100vh;
- position: relative;
- text-rendering: optimizeSpeed;
- width: 100%;
+ -webkit-text-size-adjust: 100%;
+ -moz-text-size-adjust: 100%;
+ text-size-adjust: 100%;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-height: 100vh;
+ position: relative;
+ text-rendering: optimizeSpeed;
+ width: 100%;
}
-*,
-:after,
-:before {
- box-sizing: border-box;
+
+*, :after, :before {
+ box-sizing: border-box;
}
+
a:not([class]) {
- -webkit-text-decoration-skip: ink;
- text-decoration-skip-ink: auto;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
}
-a,
-abbr,
-acronym,
-address,
-applet,
-article,
-aside,
-audio,
-b,
-big,
-blockquote,
-body,
-canvas,
-caption,
-center,
-cite,
-code,
-dd,
-del,
-details,
-dfn,
-div,
-dl,
-dt,
-em,
-embed,
-fieldset,
-figcaption,
-figure,
-footer,
-form,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-header,
-hgroup,
-html,
-i,
-iframe,
-img,
-ins,
-kbd,
-label,
-legend,
-li,
-mark,
-menu,
-nav,
-object,
-ol,
-output,
-p,
-pre,
-q,
-ruby,
-s,
-samp,
-section,
-small,
-span,
-strike,
-strong,
-sub,
-summary,
-sup,
-table,
-tbody,
-td,
-tfoot,
-th,
-thead,
-time,
-tr,
-tt,
-u,
-ul,
-var,
-video {
- border: 0;
- font-size: 100%;
- font: inherit;
- margin: 0;
- padding: 0;
- vertical-align: baseline;
+
+a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ margin: 0;
+ padding: 0;
+ vertical-align: baseline;
}
+
:focus {
- outline: 0;
+ outline: 0;
}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section {
- display: block;
+
+article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section {
+ display: block;
}
-ol,
-ul {
- list-style: none;
+
+ol, ul {
+ list-style: none;
}
-blockquote,
-q {
- quotes: none;
+
+blockquote, q {
+ quotes: none;
}
-blockquote:after,
-blockquote:before,
-q:after,
-q:before {
- content: "";
- content: none;
+
+blockquote:after, blockquote:before, q:after, q:before {
+ content: "";
+ content: none;
}
-input,
-input:required {
- box-shadow: none;
+
+input, input:required {
+ box-shadow: none;
}
-input:-webkit-autofill,
-input:-webkit-autofill:active,
-input:-webkit-autofill:focus,
-input:-webkit-autofill:hover {
- -webkit-box-shadow: inset 0 0 0 30px #fff;
+
+input:-webkit-autofill, input:-webkit-autofill:active, input:-webkit-autofill:focus, input:-webkit-autofill:hover {
+ -webkit-box-shadow: inset 0 0 0 30px #fff;
}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-results-button,
-input[type="search"]::-webkit-search-results-decoration {
- -webkit-appearance: none;
- -moz-appearance: none;
+
+input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
+ -webkit-appearance: none;
+ -moz-appearance: none;
}
-input[type="search"] {
- -webkit-appearance: none;
- -moz-appearance: none;
+
+input[type=search] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
}
+
input:focus {
- outline: 0;
+ outline: 0;
}
-audio,
-canvas,
-video {
- display: inline-block;
- max-width: 100%;
+
+audio, canvas, video {
+ display: inline-block;
+ max-width: 100%;
}
+
audio:not([controls]) {
- display: none;
- height: 0;
+ display: none;
+ height: 0;
}
+
[hidden] {
- display: none;
+ display: none;
}
-a:active,
-a:hover {
- outline: 0;
+
+a:active, a:hover {
+ outline: 0;
}
+
img {
- height: auto;
- max-width: 100%;
- vertical-align: middle;
+ height: auto;
+ max-width: 100%;
+ vertical-align: middle;
}
-img,
-picture {
- display: inline-block;
+
+img, picture {
+ display: inline-block;
}
-button,
-input {
- line-height: normal;
+
+button, input {
+ line-height: normal;
}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button;
- background: 0 0;
- border: 0;
- cursor: pointer;
+
+button, html input[type=button], input[type=reset], input[type=submit] {
+ -webkit-appearance: button;
+ background: 0 0;
+ border: 0;
+ cursor: pointer;
}
-button[disabled],
-html input[disabled] {
- cursor: default;
+
+button[disabled], html input[disabled] {
+ cursor: default;
}
+
[disabled] {
- pointer-events: none;
+ pointer-events: none;
}
-input[type="checkbox"],
-input[type="radio"] {
- padding: 0;
+
+input[type=checkbox], input[type=radio] {
+ padding: 0;
}
-input[type="search"] {
- -webkit-appearance: textfield;
- box-sizing: content-box;
+
+input[type=search] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box;
}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
+
+input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
+
+button::-moz-focus-inner, input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
}
+
button {
- background: 0 0;
- border: 0;
+ background: 0 0;
+ border: 0;
}
+
textarea {
- overflow: auto;
- resize: vertical;
- vertical-align: top;
+ overflow: auto;
+ resize: vertical;
+ vertical-align: top;
}
+
table {
- border-collapse: collapse;
- border-spacing: 0;
- text-indent: 0;
+ border-collapse: collapse;
+ border-spacing: 0;
+ text-indent: 0;
}
+
hr {
- background: #000;
- border: 0;
- box-sizing: content-box;
- height: 1px;
- line-height: 0;
- margin: 0;
- overflow: visible;
- padding: 0;
- page-break-after: always;
- width: 100%;
+ background: #000;
+ border: 0;
+ box-sizing: content-box;
+ height: 1px;
+ line-height: 0;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ page-break-after: always;
+ width: 100%;
}
+
pre {
- font-family: monospace, monospace;
- font-size: 100%;
+ font-family: monospace, monospace;
+ font-size: 100%;
}
+
a {
- background-color: transparent;
+ background-color: transparent;
}
+
abbr[title] {
- border-bottom: none;
- text-decoration: none;
+ border-bottom: none;
+ text-decoration: none;
}
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
+
+code, kbd, pre, samp {
+ font-family: monospace, monospace;
}
-small,
-sub,
-sup {
- font-size: 75%;
+
+small, sub, sup {
+ font-size: 75%;
}
-sub,
-sup {
- line-height: 0;
- position: relative;
- vertical-align: baseline;
+
+sub, sup {
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
}
+
sub {
- bottom: -5px;
+ bottom: -5px;
}
+
sup {
- top: -5px;
+ top: -5px;
}
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- font-size: 100%;
- line-height: 1;
- margin: 0;
- padding: 0;
+
+button, input, optgroup, select, textarea {
+ font-family: inherit;
+ font-size: 100%;
+ line-height: 1;
+ margin: 0;
+ padding: 0;
}
-button,
-input {
- overflow: visible;
+
+button, input {
+ overflow: visible;
}
-button,
-select {
- text-transform: none;
+
+button, select {
+ text-transform: none;
}
-[type="button"],
-[type="reset"],
-[type="submit"],
-button {
- -webkit-appearance: button;
+
+[type=button], [type=reset], [type=submit], button {
+ -webkit-appearance: button;
}
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner,
-button::-moz-focus-inner {
- border-style: none;
- outline: 0;
- padding: 0;
+
+[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
+ border-style: none;
+ outline: 0;
+ padding: 0;
}
+
legend {
- border: 0;
- color: inherit;
- display: block;
- max-width: 100%;
- white-space: normal;
- width: 100%;
+ border: 0;
+ color: inherit;
+ display: block;
+ max-width: 100%;
+ white-space: normal;
+ width: 100%;
}
+
fieldset {
- min-width: 0;
+ min-width: 0;
}
+
body:not(:-moz-handler-blocked) fieldset {
- display: block;
+ display: block;
}
+
progress {
- vertical-align: baseline;
+ vertical-align: baseline;
}
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
- height: auto;
+
+[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
+ height: auto;
}
-[type="search"] {
- -webkit-appearance: textfield;
- outline-offset: -2px;
+
+[type=search] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px;
}
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
+
+[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
}
+
::-webkit-file-upload-button {
- -webkit-appearance: button;
- font: inherit;
+ -webkit-appearance: button;
+ font: inherit;
}
+
summary {
- display: list-item;
+ display: list-item;
}
+
template {
- display: none;
+ display: none;
}
+
+:root {
+ --nmd-color0: #0a3e68;
+ --nmd-color1: #268598;
+ --nmd-color2: #b8d09e;
+ --nmd-color3: #f6cf5e;
+ --nmd-color4: #ec733b;
+ --nmd-color-info: #167cb9;
+ --nmd-color-warn: #ff6700;
+}
+
body {
- background: white;
- color: #111827;
- max-width: min(100ch, 1024px);
- margin: 0 auto;
- padding: 10px;
- font-family: "Lucida Sans", Arial, sans-serif;
- font-size: 16px;
- line-height: 1.4em;
+ background: white;
+ color: #111827;
+ max-width: min(100ch, 1024px);
+ margin: 0 auto;
+ padding: 10px;
+ font-family: "Lucida Sans", Arial, sans-serif;
+ font-size: 16px;
+ line-height: 1.4em;
}
@media (prefers-color-scheme: dark) {
- body {
- background: #111827;
- color: #f9fafb;
- }
+ body {
+ background: #111827;
+ color: #f9fafb;
+ }
}
+
h1,
h2,
h3 {
- color: var(--nmd-color0);
- font-family: "Lato", sans-serif;
- font-weight: 300;
- line-height: 1.125;
+ color: var(--nmd-color0);
+ font-family: "Lato", sans-serif;
+ font-weight: 300;
+ line-height: 1.125;
}
@media (prefers-color-scheme: dark) {
- h1,
- h2,
- h3 {
- color: var(--nmd-color4);
- }
+ h1,
+ h2,
+ h3 {
+ color: var(--nmd-color4);
+ }
}
+
h1 {
- font-size: 48px;
- font-weight: 300;
- margin: 4rem 0 1.5rem;
+ font-size: 48px;
+ font-weight: 300;
+ margin: 4rem 0 1.5rem;
}
+
h2 {
- font-size: 32px;
- font-weight: 300;
- margin: 2rem 0 1rem;
+ font-size: 32px;
+ font-weight: 300;
+ margin: 2rem 0 1rem;
}
+
h3 {
- font-size: 20px;
- font-weight: 400;
- margin: 0.5rem 0.25rem;
+ font-size: 20px;
+ font-weight: 400;
+ margin: 0.5rem 0.25rem;
}
+
p {
- margin: 0.9rem 0;
+ margin: 0.9rem 0;
}
p:first-child {
- margin-top: 0;
+ margin-top: 0;
}
p:last-child {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
a {
- color: var(--nmd-color0);
- text-decoration: underline;
- text-underline-offset: 3px;
+ color: var(--nmd-color0);
+ text-decoration: underline;
+ text-underline-offset: 3px;
}
a:visited {
- color: var(--nmd-color1);
+ color: var(--nmd-color1);
}
a:hover {
- color: var(--nmd-color1);
+ color: var(--nmd-color1);
}
@media (prefers-color-scheme: dark) {
- a {
- color: var(--nmd-color3);
- }
- a:visited {
- color: var(--nmd-color2);
- }
- a:hover {
- color: var(--nmd-color4);
- }
+ a {
+ color: var(--nmd-color3);
+ }
+ a:visited {
+ color: var(--nmd-color2);
+ }
+ a:hover {
+ color: var(--nmd-color4);
+ }
}
+
code {
- font-size: 90%;
+ font-size: 90%;
}
+
span.command {
- font-size: 90%;
- font-family: monospace;
+ font-size: 90%;
+ font-family: monospace;
}
+
em {
- font-style: italic;
+ font-style: italic;
}
+
strong {
- font-weight: bold;
+ font-weight: bold;
}
+
pre {
- background: #f9fafb;
- margin: 2rem 16px;
- padding: 10px;
- border: 1px solid #e5e7eb;
- border-radius: 4px;
- box-shadow: 4px 4px 8px #e5e7eb;
- font-size: 90%;
- margin-bottom: 1.5rem;
- padding: 6px;
- overflow: auto;
+ background: #f9fafb;
+ margin: 2rem 16px;
+ padding: 10px;
+ border: 1px solid #e5e7eb;
+ border-radius: 4px;
+ box-shadow: 4px 4px 8px #e5e7eb;
+ font-size: 90%;
+ margin-bottom: 1.5rem;
+ padding: 6px;
+ overflow: auto;
}
@media (prefers-color-scheme: dark) {
- pre {
- background: #1f2937;
- border-color: black;
- box-shadow: 4px 4px 8px black;
- }
+ pre {
+ background: #1f2937;
+ border-color: black;
+ box-shadow: 4px 4px 8px black;
+ }
}
pre span img {
- user-select: none;
+ user-select: none;
}
+
pre:has(code) {
- padding: 0;
+ padding: 0;
}
+
td,
th {
- padding: 2px 5px;
+ padding: 2px 5px;
}
td:first-child,
th:first-child {
- padding-left: 0;
+ padding-left: 0;
}
td:last-child,
th:last-child {
- padding-right: 0;
+ padding-right: 0;
}
+
dt {
- margin: 1.2rem 0 0.8rem;
+ margin: 1.2rem 0 0.8rem;
}
+
dd {
- margin-left: 2rem;
+ margin-left: 2rem;
}
+
ul {
- margin: 0.9rem 0;
- padding-left: 30px;
- list-style: disc;
+ margin: 0.9rem 0;
+ padding-left: 30px;
+ list-style: disc;
}
ul:first-child {
- margin-top: 0;
+ margin-top: 0;
}
ul:last-child {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
ol {
- margin: 0.9rem 0;
- padding-left: 30px;
- list-style: decimal;
+ margin: 0.9rem 0;
+ padding-left: 30px;
+ list-style: decimal;
}
ol:first-child {
- margin-top: 0;
+ margin-top: 0;
}
ol:last-child {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
li {
- margin: 0.9rem 0;
- padding-left: 5px;
+ margin: 0.9rem 0;
+ padding-left: 5px;
}
li:first-child {
- margin-top: 0;
+ margin-top: 0;
}
li:last-child {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
.navheader hr,
.navfooter hr {
- margin: 1rem 0;
- background: #e5e7eb;
+ margin: 1rem 0;
+ background: #e5e7eb;
}
@media (prefers-color-scheme: dark) {
- .navheader hr,
- .navfooter hr {
- background: #4b5563;
- }
+ .navheader hr,
+ .navfooter hr {
+ background: #4b5563;
+ }
}
.navheader a,
.navfooter a {
- text-decoration: none;
+ text-decoration: none;
}
+
div.titlepage {
- margin: 40px 0;
+ margin: 40px 0;
}
div.titlepage hr {
- display: none;
+ display: none;
}
+
div.toc {
- background: #f9fafb;
- margin: 2rem 16px;
- padding: 10px;
- border: 1px solid #e5e7eb;
- border-radius: 4px;
- box-shadow: 4px 4px 8px #e5e7eb;
+ background: #f9fafb;
+ margin: 2rem 16px;
+ padding: 10px;
+ border: 1px solid #e5e7eb;
+ border-radius: 4px;
+ box-shadow: 4px 4px 8px #e5e7eb;
}
@media (prefers-color-scheme: dark) {
- div.toc {
- background: #1f2937;
- border-color: black;
- box-shadow: 4px 4px 8px black;
- }
+ div.toc {
+ background: #1f2937;
+ border-color: black;
+ box-shadow: 4px 4px 8px black;
+ }
}
div.toc a {
- text-decoration: none;
+ text-decoration: none;
}
+
div.note,
div.warning {
- background: #f9fafb;
- margin: 2rem 16px;
- padding: 10px;
- border: 1px solid #e5e7eb;
- border-radius: 4px;
- box-shadow: 4px 4px 8px #e5e7eb;
- font-style: italic;
+ background: #f9fafb;
+ margin: 2rem 16px;
+ padding: 10px;
+ border: 1px solid #e5e7eb;
+ border-radius: 4px;
+ box-shadow: 4px 4px 8px #e5e7eb;
+ font-style: italic;
}
@media (prefers-color-scheme: dark) {
- div.note,
- div.warning {
- background: #1f2937;
- border-color: black;
- box-shadow: 4px 4px 8px black;
- }
+ div.note,
+ div.warning {
+ background: #1f2937;
+ border-color: black;
+ box-shadow: 4px 4px 8px black;
+ }
}
div.note h3,
div.warning h3 {
- float: right;
- margin: 0 0 1rem 1rem;
- width: 42px;
- height: 42px;
- content: url();
+ float: right;
+ margin: 0 0 1rem 1rem;
+ width: 42px;
+ height: 42px;
+ content: url();
}
div.note h3 + p,
div.warning h3 + p {
- margin-top: 0;
+ margin-top: 0;
}
+
div.note h3 {
- background-color: var(--nmd-color-info);
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 8h.01'%3E%3C/path%3E%3Cpath d='M11 12h1v4h1'%3E%3C/path%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z'%3E%3C/path%3E%3C/svg%3E");
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 8h.01'%3E%3C/path%3E%3Cpath d='M11 12h1v4h1'%3E%3C/path%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z'%3E%3C/path%3E%3C/svg%3E");
+ background-color: var(--nmd-color-info);
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 8h.01'%3E%3C/path%3E%3Cpath d='M11 12h1v4h1'%3E%3C/path%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z'%3E%3C/path%3E%3C/svg%3E");
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 8h.01'%3E%3C/path%3E%3Cpath d='M11 12h1v4h1'%3E%3C/path%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z'%3E%3C/path%3E%3C/svg%3E");
}
+
div.warning h3 {
- background-color: var(--nmd-color-warn);
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 9v2m0 4v.01'%3E%3C/path%3E%3Cpath d='M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75'%3E%3C/path%3E%3C/svg%3E");
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 9v2m0 4v.01'%3E%3C/path%3E%3Cpath d='M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75'%3E%3C/path%3E%3C/svg%3E");
+ background-color: var(--nmd-color-warn);
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 9v2m0 4v.01'%3E%3C/path%3E%3Cpath d='M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75'%3E%3C/path%3E%3C/svg%3E");
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 9v2m0 4v.01'%3E%3C/path%3E%3Cpath d='M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75'%3E%3C/path%3E%3C/svg%3E");
}
+
.term {
- font-weight: 300;
+ font-weight: 300;
}
-.docbook .xref img[src^="images\/callouts\/"],
+
+.docbook .xref img[src^="images/callouts/"],
.screen img,
.programlisting img {
- width: 1em;
+ width: 1em;
}
+
.calloutlist img {
- width: 1.3em;
+ width: 1.3em;
}
+
+/** The console prompt, e.g., `$` and `#` should not be selectable. */
.programlisting.language-shell .hljs-meta.prompt_ {
- user-select: none;
-} /*!
- Theme: Tomorrow
- Author: Chris Kempson (http://chriskempson.com)
- License: ~ MIT (or more permissive) [via base16-schemes-source]
- Maintainer: @highlightjs/core-team
- Version: 2021.09.0
-*/
-pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: 1em;
-}
-code.hljs {
- padding: 3px 5px;
-}
-.hljs {
- color: #4d4d4c;
- background: #fff;
-}
-.hljs ::selection,
-.hljs::selection {
- background-color: #d6d6d6;
- color: #4d4d4c;
-}
-.hljs-comment {
- color: #8e908c;
-}
-.hljs-tag {
- color: #969896;
-}
-.hljs-operator,
-.hljs-punctuation,
-.hljs-subst {
- color: #4d4d4c;
-}
-.hljs-operator {
- opacity: 0.7;
-}
-.hljs-bullet,
-.hljs-deletion,
-.hljs-name,
-.hljs-selector-tag,
-.hljs-template-variable,
-.hljs-variable {
- color: #c82829;
-}
-.hljs-attr,
-.hljs-link,
-.hljs-literal,
-.hljs-number,
-.hljs-symbol,
-.hljs-variable.constant_ {
- color: #f5871f;
-}
-.hljs-class .hljs-title,
-.hljs-title,
-.hljs-title.class_ {
- color: #eab700;
-}
-.hljs-strong {
- font-weight: 700;
- color: #eab700;
-}
-.hljs-addition,
-.hljs-code,
-.hljs-string,
-.hljs-title.class_.inherited__ {
- color: #718c00;
-}
-.hljs-built_in,
-.hljs-doctag,
-.hljs-keyword.hljs-atrule,
-.hljs-quote,
-.hljs-regexp {
- color: #3e999f;
-}
-.hljs-attribute,
-.hljs-function .hljs-title,
-.hljs-section,
-.hljs-title.function_,
-.ruby .hljs-property {
- color: #4271ae;
-}
-.diff .hljs-meta,
-.hljs-keyword,
-.hljs-template-tag,
-.hljs-type {
- color: #8959a8;
-}
-.hljs-emphasis {
- color: #8959a8;
- font-style: italic;
-}
-.hljs-meta,
-.hljs-meta .hljs-keyword,
-.hljs-meta .hljs-string {
- color: #a3685a;
-}
-.hljs-meta .hljs-keyword,
-.hljs-meta-keyword {
- font-weight: 700;
+ user-select: none;
}
+
@media (prefers-color-scheme: dark) {
- /*! Theme: Tomorrow Night Author: Chris Kempson (http://chriskempson.com) License: ~ MIT (or more permissive) [via base16-schemes-source] Maintainer: @highlightjs/core-team Version: 2021.09.0*/
- pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: 1em;
- }
- code.hljs {
- padding: 3px 5px;
- }
- .hljs {
- color: #ccc;
- background: #2d2d2d;
- }
- .hljs ::selection,
- .hljs::selection {
- background-color: #515151;
- color: #ccc;
- }
- .hljs-comment {
- color: #999;
- }
- .hljs-tag {
- color: #b4b7b4;
- }
- .hljs-operator,
- .hljs-punctuation,
- .hljs-subst {
- color: #ccc;
- }
- .hljs-operator {
- opacity: 0.7;
- }
- .hljs-bullet,
- .hljs-deletion,
- .hljs-name,
- .hljs-selector-tag,
- .hljs-template-variable,
- .hljs-variable {
- color: #f2777a;
- }
- .hljs-attr,
- .hljs-link,
- .hljs-literal,
- .hljs-number,
- .hljs-symbol,
- .hljs-variable.constant_ {
- color: #f99157;
- }
- .hljs-class .hljs-title,
- .hljs-title,
- .hljs-title.class_ {
- color: #fc6;
- }
- .hljs-strong {
- font-weight: 700;
- color: #fc6;
- }
- .hljs-addition,
- .hljs-code,
- .hljs-string,
- .hljs-title.class_.inherited__ {
- color: #9c9;
- }
- .hljs-built_in,
- .hljs-doctag,
- .hljs-keyword.hljs-atrule,
- .hljs-quote,
- .hljs-regexp {
- color: #6cc;
- }
- .hljs-attribute,
- .hljs-function .hljs-title,
- .hljs-section,
- .hljs-title.function_,
- .ruby .hljs-property {
- color: #69c;
- }
- .diff .hljs-meta,
- .hljs-keyword,
- .hljs-template-tag,
- .hljs-type {
- color: #c9c;
- }
- .hljs-emphasis {
- color: #c9c;
- font-style: italic;
- }
- .hljs-meta,
- .hljs-meta .hljs-keyword,
- .hljs-meta .hljs-string {
- color: #a3685a;
- }
- .hljs-meta .hljs-keyword,
- .hljs-meta-keyword {
- font-weight: 700;
- }
+ @import "tomorrow-night.min.css";
}
+
+/*# sourceMappingURL=style.css.map */