visuals: move nvim-cursorline to its own module; switch to setupOpts

This commit is contained in:
NotAShelf 2024-10-06 23:48:12 +03:00
parent 47b5d51f5c
commit db54345de1
No known key found for this signature in database
GPG key ID: AF26552424E53993
7 changed files with 78 additions and 29 deletions

View file

@ -19,18 +19,6 @@ in {
'';
})
(mkIf cfg.cursorline.enable {
vim.startPlugins = ["nvim-cursorline"];
vim.pluginRC.cursorline = entryAnywhere ''
require('nvim-cursorline').setup {
cursorline = {
timeout = ${toString cfg.cursorline.lineTimeout},
number = ${boolToString (!cfg.cursorline.lineNumbersOnly)},
}
}
'';
})
(mkIf cfg.scrollBar.enable {
vim.startPlugins = ["scrollbar-nvim"];
vim.pluginRC.scrollBar = entryAnywhere ''

View file

@ -1,6 +1,7 @@
{
imports = [
./fidget
./nvim-cursorline
./nvim-web-devicons
./config.nix

View file

@ -0,0 +1,21 @@
{
config,
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.dag) entryAnywhere;
cfg = config.vim.visuals.cursorline;
in {
config = mkIf cfg.enable {
vim = {
startPlugins = ["nvim-cursorline"];
pluginRC.cursorline = entryAnywhere ''
require("nvim-cursorline").setup(${toLuaObject cfg.setupOpts})
'';
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./config.nix
./nvim-cursorline.nix
];
}

View file

@ -0,0 +1,49 @@
{lib, ...}: let
inherit (lib.modules) mkRenamedOptionModule mkRemovedOptionModule;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) int bool;
inherit (lib.nvim.types) mkPluginSetupOption;
in {
imports = [
(mkRenamedOptionModule ["vim" "visuals" "cursorline" "lineTimeout"] ["vim" "visuals" "cursorline" "setupOpts" "line_timeout"])
(mkRemovedOptionModule ["vim" "visuals" "cursorline" "lineNumbersOnly"] ''
`vim.visuals.cursorline.lineNumbersOnly` has been removed. Use `vim.visuals.cursorline.number` instead.
'')
];
options.vim.visuals.cursorline = {
enable = mkEnableOption "cursor word and line highlighting [nvim-cursorline]";
setupOpts = mkPluginSetupOption "cursorline" {
cursorline = {
enable = mkEnableOption "cursor line highlighting";
timeout = mkOption {
type = int;
default = 1000;
};
number = mkOption {
type = bool;
default = false;
};
};
cursorword = {
enable = mkEnableOption "cursor word highlighting";
timeout = mkOption {
type = int;
default = 1000;
};
min_length = mkOption {
type = int;
default = 3;
};
hl.underline = mkOption {
type = bool;
default = true;
};
};
};
};
}

View file

@ -4,7 +4,7 @@
...
}: let
inherit (lib.modules) mkRenamedOptionModule;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.types) nullOr attrsOf attrs enum;
inherit (lib.nvim.types) mkPluginSetupOption;
in {

View file

@ -24,22 +24,6 @@ in {
};
};
cursorline = {
enable = mkEnableOption "line hightlighting on the cursor [nvim-cursorline]";
lineTimeout = mkOption {
type = int;
description = "Time in milliseconds for cursorline to appear";
default = 0;
};
lineNumbersOnly = mkOption {
type = bool;
description = "Hightlight only in the presence of line numbers";
default = true;
};
};
indentBlankline = {
enable = mkEnableOption "indentation guides [indent-blankline]";