mirror of
https://github.com/NotAShelf/neovim-flake.git
synced 2024-11-10 10:05:59 +01:00
a452a0b0e7
mkEnableOption already adds the phrase "Whether to enable ..." to the beginning of the option description, such that the string argument should only be "thing to be enabled"
107 lines
2.9 KiB
Nix
107 lines
2.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib;
|
|
with builtins; let
|
|
cfg = config.vim.visuals;
|
|
in {
|
|
options.vim.visuals = {
|
|
enable = mkEnableOption "Visual enhancements.";
|
|
|
|
nvimWebDevicons.enable = mkEnableOption "dev icons. Required for certain plugins [nvim-web-devicons].";
|
|
|
|
scrollBar.enable = mkEnableOption "scrollbar [scrollbar.nvim]";
|
|
|
|
smoothScroll.enable = mkEnableOption "smooth scrolling [cinnamon-nvim]";
|
|
|
|
cellularAutomaton = {
|
|
enable = mkEnableOption "cellular automaton [cellular-automaton]";
|
|
|
|
mappings = {
|
|
makeItRain = mkMappingOption "Make it rain [cellular-automaton]" "<leader>fml";
|
|
};
|
|
};
|
|
|
|
fidget-nvim = {
|
|
enable = mkEnableOption "nvim LSP UI element [fidget-nvim]";
|
|
|
|
align = {
|
|
bottom = mkOption {
|
|
type = types.bool;
|
|
description = "Align to bottom";
|
|
default = true;
|
|
};
|
|
|
|
right = mkOption {
|
|
type = types.bool;
|
|
description = "Align to right";
|
|
default = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
cursorline = {
|
|
enable = mkEnableOption "line hightlighting on the cursor [nvim-cursorline]";
|
|
|
|
lineTimeout = mkOption {
|
|
type = types.int;
|
|
description = "Time in milliseconds for cursorline to appear";
|
|
default = 0;
|
|
};
|
|
|
|
lineNumbersOnly = mkOption {
|
|
type = types.bool;
|
|
description = "Hightlight only in the presence of line numbers";
|
|
default = true;
|
|
};
|
|
};
|
|
|
|
indentBlankline = {
|
|
enable = mkEnableOption "indentation guides [indent-blankline]";
|
|
|
|
listChar = mkOption {
|
|
type = types.str;
|
|
description = "Character for indentation line";
|
|
default = "│";
|
|
};
|
|
|
|
fillChar = mkOption {
|
|
description = "Character to fill indents";
|
|
type = with types; nullOr types.str;
|
|
default = "⋅";
|
|
};
|
|
|
|
eolChar = mkOption {
|
|
description = "Character at end of line";
|
|
type = with types; nullOr types.str;
|
|
default = "↴";
|
|
};
|
|
|
|
showEndOfLine = mkOption {
|
|
description = nvim.nmd.asciiDoc ''
|
|
Displays the end of line character set by <<opt-vim.visuals.indentBlankline.eolChar>> instead of the
|
|
indent guide on line returns.
|
|
'';
|
|
type = types.bool;
|
|
default = cfg.indentBlankline.eolChar != null;
|
|
defaultText = literalExpression "config.vim.visuals.indentBlankline.eolChar != null";
|
|
};
|
|
|
|
showCurrContext = mkOption {
|
|
description = "Highlight current context from treesitter";
|
|
type = types.bool;
|
|
default = config.vim.treesitter.enable;
|
|
defaultText = literalExpression "config.vim.treesitter.enable";
|
|
};
|
|
|
|
useTreesitter = mkOption {
|
|
description = "Use treesitter to calculate indentation when possible.";
|
|
type = types.bool;
|
|
default = config.vim.treesitter.enable;
|
|
defaultText = literalExpression "config.vim.treesitter.enable";
|
|
};
|
|
};
|
|
};
|
|
}
|