diff --git a/modules/module/settings/cat-packages.nix b/modules/module/settings/cat-packages.nix index 7dd3049..8f027ba 100644 --- a/modules/module/settings/cat-packages.nix +++ b/modules/module/settings/cat-packages.nix @@ -7,6 +7,11 @@ let maybe = cat: pkgsList: lib.optionals (config.cats.${cat} or false) pkgsList; + rPackages = (pkgs.baseRPackages or [ ]) ++ config.settings.lang_packages.r; + quartoPkg = + if config.cats.r or false + then pkgs.rpkgs.quarto.override { extraRPackages = rPackages; } + else pkgs.quarto; in { options.catPkgs = lib.mkOption { @@ -35,7 +40,7 @@ in markdown = maybe "markdown" (with pkgs; [ python313Packages.pylatexenc - quarto + quartoPkg zk ]); @@ -87,16 +92,14 @@ in uv ]); - r = maybe "r" (let - r_packages = (pkgs.baseRPackages or [ ]) ++ config.settings.lang_packages.r; - in [ - (pkgs.rpkgs.rWrapper.override { packages = r_packages; }) + r = maybe "r" [ + (pkgs.rpkgs.rWrapper.override { packages = rPackages; }) pkgs.rpkgs.radianWrapper - (pkgs.rpkgs.quarto.override { extraRPackages = r_packages; }) + quartoPkg pkgs.air-formatter pkgs.yaml-language-server pkgs.rnvimserver - ]); + ]; # cats without packages get empty lists general = [ ]; diff --git a/modules/module/settings/hosts.nix b/modules/module/settings/hosts.nix index 7637633..a47467a 100644 --- a/modules/module/settings/hosts.nix +++ b/modules/module/settings/hosts.nix @@ -4,6 +4,10 @@ lib, ... }: +let + rPackages = (pkgs.baseRPackages or [ ]) ++ config.settings.lang_packages.r; + rWrapperPkg = pkgs.rpkgs.rWrapper.override { packages = rPackages; }; +in { config.hosts = lib.mkMerge [ { @@ -45,7 +49,7 @@ (lib.mkIf (config.cats.r or false) { r = { nvim-host.enable = true; - nvim-host.package = "${pkgs.rWrapper}/bin/R"; + nvim-host.package = "${rWrapperPkg}/bin/R"; nvim-host.argv0 = "R"; nvim-host.addFlag = [ "--no-save"