nvf/modules/plugins/visuals/cellular-automaton/cellular-automaton.nix
alfarel 1cda8228e9
plugins: use new config-aware mkMappingOption
Generated using:

- `sd -F "inherit (lib.nvim.binds) mkMappingOption;" "inherit (config.vim.lib) mkMappingOption;" $(find . -type f)`
- `sd -F "{lib, ...}: let" "{config, lib, ...}: let" $(find . -type f)`

Tweaked manually (placement in inherit list, fixing todo-comments and toggleterm).

Ran `nix run nixpkgs#deadnix -- -e` to clean up.
Next commit includes unrelated dead code.
2026-04-06 08:51:34 -04:00

64 lines
1.9 KiB
Nix

{
config,
lib,
...
}: let
inherit (lib.modules) mkRenamedOptionModule;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.nvim.types) luaInline;
inherit (lib.generators) mkLuaInline;
inherit (config.vim.lib) mkMappingOption;
in {
imports = [
(mkRenamedOptionModule ["vim" "visuals" "cellularAutomaton"] ["vim" "visuals" "cellular-automaton"])
];
options.vim.visuals.cellular-automaton = {
enable = mkEnableOption "cellular-automaton to help you cope with stubborn code [cellular-automaton]";
mappings = {
makeItRain = mkMappingOption "Make it rain [cellular-automaton]" "<leader>fml";
};
animation = {
register = mkEnableOption "registering configured animation(s) automatically" // {default = true;};
setup = mkOption {
type = luaInline;
default = mkLuaInline ''
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
'';
description = ''
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.
:::
'';
};
};
};
}