From bb9d744b644d160336b7ff681dac1b19db01ba2c Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Thu, 9 Oct 2025 20:29:15 +0100 Subject: [PATCH] modules/lsp: propagate `pkgs` arg to server modules This allows simplifying the `importApply` and also paves the way for custom server modules to define arbitrary package options. --- modules/lsp/servers/default.nix | 11 ++++++----- modules/lsp/servers/server.nix | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/lsp/servers/default.nix b/modules/lsp/servers/default.nix index 51840c9c..b0293b6f 100644 --- a/modules/lsp/servers/default.nix +++ b/modules/lsp/servers/default.nix @@ -12,10 +12,6 @@ let cfg = config.lsp; oldCfg = config.plugins.lsp; - # Import `server.nix` and apply args - # For convenience, we set a default here for args.pkgs - mkServerModule = args: lib.modules.importApply ./server.nix ({ inherit pkgs; } // args); - # Create a submodule type from `server.nix` # Used as the type for both the freeform `lsp.servers.` # and the explicitly declared `lsp.servers.*` options @@ -25,7 +21,12 @@ let # Server modules have a `config` option, so we must use # shorthandOnlyDefinesConfig to avoid confusing the module system. shorthandOnlyDefinesConfig = true; - modules = [ (mkServerModule args) ]; + modules = [ + (lib.modules.importApply ./server.nix args) + { + _module.args.pkgs = pkgs; + } + ]; }; # Create a server option diff --git a/modules/lsp/servers/server.nix b/modules/lsp/servers/server.nix index f663d310..3feaa6bc 100644 --- a/modules/lsp/servers/server.nix +++ b/modules/lsp/servers/server.nix @@ -3,12 +3,12 @@ name ? "the language server", package ? null, config ? null, - pkgs ? { }, }@args: { lib, name, config, + pkgs, ... }: let