{ lib, pkgs, config, ... }: let kakoune = import ./kakoune.nix; in with lib; { options.editor = { kak.enable = (mkEnableOption "kakoune editor") // { default = true; }; kak.rust = mkEnableOption "Rust support in Kakoune"; kak.ts = mkEnableOption "TypeScript support in Kakoune"; kak.haskell = mkEnableOption "Haskell support in Kakoune"; kak.python = mkEnableOption "Python 3.9 support in Kakoune"; kak.nix = (mkEnableOption "Nix support in Kakoune") // { default = true; }; }; config = with config.editor; mkIf (kak.enable) { environment.systemPackages = [ (kakoune { inherit (kak) haskell python rust nix; typescript = kak.ts; kak-crosshairs = pkgs.kakounePlugins.kak-crosshairs; inherit pkgs lib; theme = config.riley.theme; }) ]; }; }