From 61be7a6eed7b6e70db9731cdf32d6a3e163cee73 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sat, 14 Sep 2024 17:24:50 -0500 Subject: [PATCH] plugins/nvim-jdtls: use jdtLanguageServerPackage option --- plugins/by-name/nvim-jdtls/default.nix | 36 +++++++++++-------- .../plugins/by-name/nvim-jdtls/default.nix | 2 +- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/plugins/by-name/nvim-jdtls/default.nix b/plugins/by-name/nvim-jdtls/default.nix index fc0baa88..23872fbc 100644 --- a/plugins/by-name/nvim-jdtls/default.nix +++ b/plugins/by-name/nvim-jdtls/default.nix @@ -20,6 +20,10 @@ in ]; }; + jdtLanguageServerPackage = lib.mkPackageOption pkgs "jdt-language-server" { + nullable = true; + }; + cmd = helpers.mkNullOrOption (types.listOf types.str) '' The command that starts the language server. @@ -94,21 +98,11 @@ in config = let cmd = - if (cfg.cmd == null) then - let - data = - if (cfg.data == null) then - throw '' - You have to either set the 'plugins.nvim-jdtls.data' or the 'plugins.nvim-jdtls.cmd' - option. - '' - else - cfg.data; - in - [ (lib.getExe pkgs.jdt-language-server) ] + if (cfg.cmd == null && cfg.jdtLanguageServerPackage != null) then + [ (lib.getExe cfg.jdtLanguageServerPackage) ] ++ [ "-data" - data + cfg.data ] ++ (optionals (cfg.configuration != null) [ "-configuration" @@ -125,9 +119,23 @@ in } // cfg.extraOptions; in mkIf cfg.enable { + assertions = [ + { + assertion = cfg.cmd != null || cfg.data != null; + message = "You have to either set the `plugins.nvim-jdtls.data` or the `plugins.nvim-jdtls.cmd` option."; + } + { + assertion = cfg.cmd == null -> cfg.jdtLanguageServerPackage != null; + message = '' + Nixvim (plugins.nvim-jdtls) You haven't defined a `cmd` or `jdtLanguageServerPackage`. + + The default `cmd` requires `plugins.nvim-jdtls.jdtLanguageServerPackage` to be set. + ''; + } + ]; extraPlugins = [ cfg.package ]; - extraPackages = [ pkgs.jdt-language-server ]; + extraPackages = [ cfg.jdtLanguageServerPackage ]; autoCmd = [ { diff --git a/tests/test-sources/plugins/by-name/nvim-jdtls/default.nix b/tests/test-sources/plugins/by-name/nvim-jdtls/default.nix index 59e8f4be..bda54d38 100644 --- a/tests/test-sources/plugins/by-name/nvim-jdtls/default.nix +++ b/tests/test-sources/plugins/by-name/nvim-jdtls/default.nix @@ -3,7 +3,7 @@ example = { plugins.nvim-jdtls = { enable = true; - + jdtLanguageServerPackage = null; cmd = [ "${pkgs.jdt-language-server}/bin/jdt-language-server" "-data"