-
-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into docs-touchup
- Loading branch information
Showing
16 changed files
with
387 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,16 @@ | ||
.TH "nvf" "5" "01/01/1980" "nvf" | ||
.TH "nvf" "5" "January 1, 1980" "nvf" | ||
.\" disable hyphenation | ||
.nh | ||
.\" disable justification (adjust text to left margin only) | ||
.ad l | ||
.\" enable line breaks after slashes | ||
.cflags 4 / | ||
|
||
.SH "NAME" | ||
nvf configuration specification | ||
.SH "OPTIONS" | ||
.PP | ||
You can use the following options to configure nvf: | ||
.PP | ||
nvf \- Configuration specification for the nvf. | ||
|
||
.SH "DESCRIPTION" | ||
The nvf configuration specification provides a declarative structure for configuring Neovim using Nix with few | ||
lines of Nix. This document outlines the available options and their usage to create modular, reusable, and | ||
reproducible configurations using nvf's module system options. For tips, tricks and possible quirks with available | ||
plugins please visit https://notashelf.github.io/nvf/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,52 @@ | ||
.Dd January 1, 1980 | ||
.Dt nvf 1 | ||
.Dt NVF 1 | ||
.Os nvf | ||
.\" disable hyphenation | ||
.nh | ||
.\" disable justification (adjust text to left margin only) | ||
.ad l | ||
.\" enable line breaks after slashes | ||
.cflags 4 / | ||
|
||
.Sh NAME | ||
.Nm nvf | ||
.Nd A highly modular, extensible and distro-agnostic Neovim configuration framework for Nix/NixOS. | ||
. | ||
.Nd A modular, extensible, and distro-agnostic Neovim configuration framework for Nix/NixOS. | ||
|
||
.Sh DESCRIPTION | ||
.Nm 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. | ||
|
||
.Sh COMMANDS | ||
The following commands are bundled with nvf to allow easier debugging of your configuration. | ||
|
||
.Bl -tag -width Ds | ||
.It Nm nvf-print-config | ||
Outputs the full configuration of the current `nvf` setup. This command is useful for debugging | ||
or inspecting the applied configuration. | ||
.Pp | ||
.It Nm nvf-print-config-path | ||
Prints the file path to the configuration file currently in use. This command is helpful for locating | ||
the source configuration file for troubleshooting or easily sharing it via online paste utilities. | ||
.El | ||
|
||
.Sh BUGS | ||
.Pp | ||
Please report any bugs that you might encounter on the | ||
\m[blue]\fBproject issue tracker\fR\m[]\&. | ||
Please report any bugs on the project issue tracker: | ||
.Lk https://github.com/notashelf/nvf/issues | ||
|
||
.Sh SEE ALSO | ||
.Pp | ||
\fBnvf\fR(5) | ||
.Fn nvf 5 | ||
|
||
.Sh AUTHOR | ||
.Pp | ||
\fBnvf contributors\fR | ||
.Fn nvf contributors | ||
.RS 4 | ||
Author. | ||
Primary contributors and maintainers of the project. | ||
.RE | ||
|
||
.Sh COPYRIGHT | ||
.br | ||
Copyright \(co 2023\(en2024 nvf contributors | ||
.br | ||
.Pp | ||
Copyright (c) 2023–2025 nvf contributors. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
imports = [ | ||
./basic.nix | ||
./debug.nix | ||
./highlight.nix | ||
./spellcheck.nix | ||
]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
{ | ||
config, | ||
lib, | ||
... | ||
}: let | ||
inherit (lib.options) mkOption; | ||
inherit (lib.types) nullOr attrsOf listOf submodule bool ints str enum; | ||
inherit (lib.strings) hasPrefix concatLines; | ||
inherit (lib.attrsets) mapAttrsToList; | ||
inherit (lib.nvim.dag) entryBetween; | ||
inherit (lib.nvim.lua) toLuaObject; | ||
inherit (lib.nvim.types) hexColor; | ||
|
||
mkColorOption = target: | ||
mkOption { | ||
type = nullOr hexColor; | ||
default = null; | ||
example = "#ebdbb2"; | ||
description = '' | ||
The ${target} color to use. Written as color name or hex "#RRGGBB". | ||
''; | ||
}; | ||
|
||
mkBoolOption = name: | ||
mkOption { | ||
type = nullOr bool; | ||
default = null; | ||
example = false; | ||
description = "Whether to enable ${name}"; | ||
}; | ||
|
||
cfg = config.vim.highlight; | ||
in { | ||
options.vim.highlight = mkOption { | ||
type = attrsOf (submodule { | ||
# See :h nvim_set_hl | ||
options = { | ||
bg = mkColorOption "background"; | ||
fg = mkColorOption "foreground"; | ||
sp = mkColorOption "special"; | ||
blend = mkOption { | ||
type = nullOr (ints.between 0 100); | ||
default = null; | ||
description = "Blend as an integer between 0 and 100"; | ||
}; | ||
bold = mkBoolOption "bold"; | ||
standout = mkBoolOption "standout"; | ||
underline = mkBoolOption "underline"; | ||
undercurl = mkBoolOption "undercurl"; | ||
underdouble = mkBoolOption "underdouble"; | ||
underdotted = mkBoolOption "underdotted"; | ||
underdashed = mkBoolOption "underdashed"; | ||
strikethrough = mkBoolOption "strikethrough"; | ||
italic = mkBoolOption "italic"; | ||
reverse = mkBoolOption "reverse"; | ||
nocombine = mkBoolOption "nocombine"; | ||
link = mkOption { | ||
type = nullOr str; | ||
default = null; | ||
description = "The name of another highlight group to link to"; | ||
}; | ||
default = mkOption { | ||
type = nullOr bool; | ||
default = null; | ||
description = "Don't override existing definition"; | ||
}; | ||
ctermfg = mkOption { | ||
type = nullOr str; | ||
default = null; | ||
description = "The cterm foreground color to use"; | ||
}; | ||
ctermbg = mkOption { | ||
type = nullOr str; | ||
default = null; | ||
description = "The cterm background color to use"; | ||
}; | ||
cterm = mkOption { | ||
type = nullOr (listOf (enum [ | ||
"bold" | ||
"underline" | ||
"undercurl" | ||
"underdouble" | ||
"underdotted" | ||
"underdashed" | ||
"strikethrough" | ||
"reverse" | ||
"inverse" | ||
"italic" | ||
"standout" | ||
"altfont" | ||
"nocombine" | ||
"NONE" | ||
])); | ||
default = null; | ||
description = "The cterm arguments to use. See ':h highlight-args'"; | ||
}; | ||
force = mkBoolOption "force update"; | ||
}; | ||
}); | ||
default = {}; | ||
example = { | ||
SignColumn = { | ||
bg = "#282828"; | ||
}; | ||
}; | ||
description = "Custom highlights to apply"; | ||
}; | ||
|
||
config = { | ||
vim.luaConfigRC.highlight = let | ||
highlights = | ||
mapAttrsToList ( | ||
name: value: ''vim.api.nvim_set_hl(0, ${toLuaObject name}, ${toLuaObject value})'' | ||
) | ||
cfg; | ||
in | ||
entryBetween ["lazyConfigs" "pluginConfigs" "extraPluginConfigs"] ["theme"] (concatLines highlights); | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.