{ pkgs, config, lib, ... }: with lib; with builtins; let cfg = config.vim.tidal; in { options.vim.tidal = { enable = mkEnableOption "tidal tools and plugins"; flash = mkOption { description = ''When sending a paragraph or a single line, vim-tidal will "flash" the selection for some milliseconds''; type = types.int; default = 150; }; openSC = mkOption { description = "Automatically run the supercollider CLI, sclang, alongside the Tidal GHCI terminal."; type = types.bool; default = true; }; }; config = mkIf (cfg.enable) { vim.startPlugins = [ # From tidalcycles flake pkgs.vimPlugins.vim-tidal ]; vim.globals = { "tidal_target" = "terminal"; "tidal_flash_duration" = 150; "tidal_sc_enable" = cfg.openSC; }; }; }