diff --git a/docs/org/nixosProfiles.org b/docs/org/nixosProfiles.org index 7009cc9..985ec2b 100644 --- a/docs/org/nixosProfiles.org +++ b/docs/org/nixosProfiles.org @@ -69,16 +69,29 @@ let in with presets; { minimal = [ shell.default ]; + default = [ self.minimal self.mathematic coding.nickel - coding.yaml + coding.conf coding.bash coding.d2 coding.nix ]; + full = [ + self.default + { + config.omnibus.coding = { + bash.lsp = true; + nickel.lsp = true; + typst.lsp = true; + conf.lsp = true; + }; + } + ]; + mathematic = [ coding.typst ]; } #+end_src diff --git a/tests/nixos/expr.nix b/tests/nixos/expr.nix index 9e56d7b..767b9ee 100644 --- a/tests/nixos/expr.nix +++ b/tests/nixos/expr.nix @@ -39,7 +39,7 @@ in // lib.optionalAttrs trace { nixosConfiguration = out.nixosConfiguration [ out.outputs.nixosProfiles.default.presets.boot - (out.outputs.nixosProfiles.default.dev { }).default + (out.outputs.nixosProfiles.default.dev { }).coding ]; homeConfiguration = diff --git a/units/nixos/nixosModules/omnibus/coding/bash.nix b/units/nixos/nixosModules/omnibus/coding/bash.nix new file mode 100644 index 0000000..03fc2e0 --- /dev/null +++ b/units/nixos/nixosModules/omnibus/coding/bash.nix @@ -0,0 +1,5 @@ +{ + options = with lib; { + lsp = mkEnableOption (lib.mdDoc "Whether to enable languageServer support"); + }; +} diff --git a/units/nixos/nixosModules/omnibus/coding/conf.nix b/units/nixos/nixosModules/omnibus/coding/conf.nix new file mode 100644 index 0000000..03fc2e0 --- /dev/null +++ b/units/nixos/nixosModules/omnibus/coding/conf.nix @@ -0,0 +1,5 @@ +{ + options = with lib; { + lsp = mkEnableOption (lib.mdDoc "Whether to enable languageServer support"); + }; +} diff --git a/units/nixos/nixosModules/omnibus/coding/nickel.nix b/units/nixos/nixosModules/omnibus/coding/nickel.nix new file mode 100644 index 0000000..03fc2e0 --- /dev/null +++ b/units/nixos/nixosModules/omnibus/coding/nickel.nix @@ -0,0 +1,5 @@ +{ + options = with lib; { + lsp = mkEnableOption (lib.mdDoc "Whether to enable languageServer support"); + }; +} diff --git a/units/nixos/nixosModules/omnibus/coding/typst.nix b/units/nixos/nixosModules/omnibus/coding/typst.nix new file mode 100644 index 0000000..03fc2e0 --- /dev/null +++ b/units/nixos/nixosModules/omnibus/coding/typst.nix @@ -0,0 +1,5 @@ +{ + options = with lib; { + lsp = mkEnableOption (lib.mdDoc "Whether to enable languageServer support"); + }; +} diff --git a/units/nixos/nixosProfiles/dev.nix b/units/nixos/nixosProfiles/dev.nix index f87d47f..fcb7a6c 100644 --- a/units/nixos/nixosProfiles/dev.nix +++ b/units/nixos/nixosProfiles/dev.nix @@ -5,16 +5,29 @@ let in with presets; { minimal = [ shell.default ]; + default = [ self.minimal self.mathematic coding.nickel - coding.yaml + coding.conf coding.bash coding.d2 coding.nix ]; + coding = [ + self.default + { + config.omnibus.coding = { + bash.lsp = true; + nickel.lsp = true; + typst.lsp = true; + conf.lsp = true; + }; + } + ]; + mathematic = [ coding.typst ]; } # coding:1 ends here diff --git a/units/nixos/nixosProfiles/presets/coding/bash.nix b/units/nixos/nixosProfiles/presets/coding/bash.nix index b432866..3cafbd2 100644 --- a/units/nixos/nixosProfiles/presets/coding/bash.nix +++ b/units/nixos/nixosProfiles/presets/coding/bash.nix @@ -1,7 +1,15 @@ -{ pkgs, ... }: { - environment.systemPackages = with pkgs; [ - nodePackages.bash-language-server - shellcheck - ]; + pkgs, + config, + omnibus, + ... +}: +let + cfg = config.omnibus.coding.bash; +in +{ + imports = [ omnibus.nixosModules.omnibus.coding.bash ]; + environment.systemPackages = + with pkgs; + [ shellcheck ] ++ lib.optionals cfg.lsp [ nodePackages.bash-language-server ]; } diff --git a/units/nixos/nixosProfiles/presets/coding/conf.nix b/units/nixos/nixosProfiles/presets/coding/conf.nix new file mode 100644 index 0000000..4ccd874 --- /dev/null +++ b/units/nixos/nixosProfiles/presets/coding/conf.nix @@ -0,0 +1,14 @@ +{ + pkgs, + config, + omnibus, + ... +}: +let + cfg = config.omnibus.coding.conf; +in +{ + imports = [ omnibus.nixosModules.omnibus.coding.conf ]; + environment.systemPackages = + with pkgs; lib.optionals cfg.lsp [ yaml-language-server ]; +} diff --git a/units/nixos/nixosProfiles/presets/coding/nickel.nix b/units/nixos/nixosProfiles/presets/coding/nickel.nix index 6948810..18e0a0c 100644 --- a/units/nixos/nixosProfiles/presets/coding/nickel.nix +++ b/units/nixos/nixosProfiles/presets/coding/nickel.nix @@ -2,6 +2,8 @@ pkgs, inputs, omnibus, + config, + lib, }: let inherit @@ -10,10 +12,13 @@ let ]) nickel ; + cfg = config.omnibus.coding.nickel; in { - environment.systemPackages = [ - (nickel.packages.${pkgs.system}.default or inputs.nickel.default) - (nickel.packages.${pkgs.system}.lsp-nls or inputs.nickel.lsp-nls) - ]; + imports = [ omnibus.nixosModules.omnibus.coding.nickel ]; + environment.systemPackages = + [ (nickel.packages.${pkgs.system}.default or inputs.nickel.default) ] + ++ lib.optionals cfg.lsp [ + (nickel.packages.${pkgs.system}.lsp-nls or inputs.nickel.lsp-nls) + ]; } diff --git a/units/nixos/nixosProfiles/presets/coding/typst.nix b/units/nixos/nixosProfiles/presets/coding/typst.nix index 94dbcac..4bc615a 100644 --- a/units/nixos/nixosProfiles/presets/coding/typst.nix +++ b/units/nixos/nixosProfiles/presets/coding/typst.nix @@ -2,6 +2,8 @@ pkgs, inputs, omnibus, + lib, + config, }: let inherit @@ -11,10 +13,11 @@ let typst ; pkgs' = pkgs.appendOverlays [ typst.overlays.default ]; + cfg = config.omnibus.coding.typst; in { - environment.systemPackages = [ - pkgs'.typst-lsp - pkgs'.typst - ]; + imports = [ omnibus.nixosModules.omnibus.coding.typst ]; + environment.systemPackages = + [ pkgs'.typst ] + ++ lib.optionals cfg.lsp [ pkgs'.typst-lsp ]; } diff --git a/units/nixos/nixosProfiles/presets/coding/yaml.nix b/units/nixos/nixosProfiles/presets/coding/yaml.nix deleted file mode 100644 index b8e5191..0000000 --- a/units/nixos/nixosProfiles/presets/coding/yaml.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = with pkgs; [ yaml-language-server ]; -}