From 22f6cd1ad98dd53a09e0bee8fe1e64008cffa1b2 Mon Sep 17 00:00:00 2001 From: Alexander Nortung Date: Tue, 17 Jan 2023 22:14:07 +0100 Subject: [PATCH] null-ls/servers: package option --- plugins/null-ls/helpers.nix | 16 +++++++++++++--- plugins/null-ls/servers.nix | 20 ++++++++++---------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/plugins/null-ls/helpers.nix b/plugins/null-ls/helpers.nix index 0075390e..f8aa0e8c 100644 --- a/plugins/null-ls/helpers.nix +++ b/plugins/null-ls/helpers.nix @@ -4,7 +4,8 @@ { name , sourceType , description ? "Enable ${name} source, for null-ls." - , packages ? [ ] + , package ? null + , extraPackages ? [ ] , ... }: # returns a module @@ -13,6 +14,14 @@ let helpers = import ../helpers.nix args; cfg = config.plugins.null-ls.sources.${sourceType}.${name}; + # does this evaluate package? + packageOption = if package == null then { } else { + package = mkOption { + type = types.package; + default = package; + description = "Package to use for ${name} by null-ls"; + }; + }; in { options.plugins.null-ls.sources.${sourceType}.${name} = { @@ -28,10 +37,11 @@ # '\'{ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }'\' # ''; }; - }; + } // packageOption; config = mkIf cfg.enable { - extraPackages = packages; + # Does this evaluate package? + extraPackages = packages ++ optional (package != null) cfg.package; # Add source to list of sources plugins.null-ls.sourcesItems = diff --git a/plugins/null-ls/servers.nix b/plugins/null-ls/servers.nix index da44c114..41f2a7db 100644 --- a/plugins/null-ls/servers.nix +++ b/plugins/null-ls/servers.nix @@ -8,36 +8,36 @@ let completion = { }; diagnostics = { flake8 = { - packages = [ pkgs.python3Packages.flake8 ]; + package = pkgs.python3Packages.flake8; }; shellcheck = { - packages = [ pkgs.shellcheck ]; + package = pkgs.shellcheck; }; }; formatting = { phpcbf = { - packages = [ pkgs.phpPackages.phpcbf ]; + package = pkgs.phpPackages.phpcbf; }; alejandra = { - packages = [ pkgs.alejandra ]; + package = pkgs.alejandra; }; nixfmt = { - packages = [ pkgs.nixfmt ]; + package = pkgs.nixfmt; }; prettier = { - packages = [ pkgs.nodePackages.prettier ]; + package = pkgs.nodePackages.prettier; }; black = { - packages = [ pkgs.python3Packages.black ]; + package = pkgs.python3Packages.black; }; beautysh = { - packages = [ inputs.beautysh.packages.${pkgs.system}.beautysh-python38 ]; + package = inputs.beautysh.packages.${pkgs.system}.beautysh-python38; }; fourmolu = { - packages = [ pkgs.haskellPackages.fourmolu ]; + package = pkgs.haskellPackages.fourmolu; }; fnlfmt = { - packages = [ pkgs.fnlfmt ]; + package = pkgs.fnlfmt; }; }; };