visuals: move cinnamon-nvim to its own module; deprecate smoothScroll

The option visuals.smoothScroll was confusing as there can be more than one backend.
This commit is contained in:
raf 2024-10-07 01:31:54 +03:00
parent 688a41b621
commit 658d380232
Signed by: NotAShelf
GPG key ID: AF26552424E53993
5 changed files with 69 additions and 5 deletions

View file

@ -0,0 +1,38 @@
{lib, ...}: let
inherit (lib.modules) mkRemovedOptionModule;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) submodule attrs;
inherit (lib.nvim.types) mkPluginSetupOption;
in {
imports = [
(mkRemovedOptionModule ["vim" "visuals" "smoothScroll"] ''
`vim.visuals.smoothScroll` has been removed. You may consider enabling the
option `vim.visuals.cinnamon-nvim` to repliace previous smooth scrolling
behaviour.
'')
];
options.vim.visuals.cinnamon-nvim = {
enable = mkEnableOption "smooth scrolling for ANY command [cinnamon-nvim]";
setupOpts = mkPluginSetupOption "cinnamon.nvim" {
options = mkOption {
type = attrs;
default = {
# Defaults provided for the sake of documentation only!
# Who would've guessed setupOpts.options would be confusing?
mode = "cursor";
count_only = false;
};
description = "Scroll options";
};
keymaps = mkOption {
description = "Keymap options for Cinnamon. Please see documentation before enablg";
type = submodule {
basic = mkEnableOption "basic animation keymaps";
extra = mkEnableOption "extra animation keymaps";
};
};
};
};
}

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.cinnamon-nvim;
in {
config = mkIf cfg.enable {
vim = {
startPlugins = ["cinnamon-nvim"];
pluginRC.cursorline = entryAnywhere ''
require("cinnamon").setup(${toLuaObject cfg.setupOpts})
'';
};
};
}

View file

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

View file

@ -1,6 +1,7 @@
{
imports = [
./fidget
./cinnamon-nvim
./fidget-nvim
./indent-blankline
./nvim-cursorline
./nvim-scrollbar

View file

@ -3,8 +3,8 @@
lib,
...
}: let
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) int bool str nullOr either listOf attrsOf;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) int bool str;
inherit (lib.nvim.binds) mkMappingOption;
cfg = config.vim.visuals;
@ -12,8 +12,6 @@ in {
options.vim.visuals = {
enable = mkEnableOption "Visual enhancements.";
smoothScroll.enable = mkEnableOption "smooth scrolling [cinnamon-nvim]";
cellularAutomaton = {
enable = mkEnableOption "cellular automaton [cellular-automaton]";