From 0a78c93e7a60d6702ed44ddb996fb39208f8a17c Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 7 Apr 2025 23:24:09 +0200 Subject: [PATCH] modules/dependencies: add llm-ls --- modules/dependencies.nix | 1 + plugins/by-name/llm/default.nix | 38 ++++++++++++------- .../plugins/by-name/llm/default.nix | 2 +- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/modules/dependencies.nix b/modules/dependencies.nix index 632ffe99..5ee17b40 100644 --- a/modules/dependencies.nix +++ b/modules/dependencies.nix @@ -30,6 +30,7 @@ let lazygit.default = "lazygit"; lean.default = "lean4"; ledger.default = "ledger"; + llm-ls.default = "llm-ls"; manix.default = "manix"; nodejs = { default = "nodejs"; diff --git a/plugins/by-name/llm/default.nix b/plugins/by-name/llm/default.nix index 9236b488..90cae798 100644 --- a/plugins/by-name/llm/default.nix +++ b/plugins/by-name/llm/default.nix @@ -1,4 +1,8 @@ -{ lib, pkgs, ... }: +{ + lib, + config, + ... +}: lib.nixvim.plugins.mkNeovimPlugin { name = "llm"; packPathName = "llm.nvim"; @@ -6,19 +10,27 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; - extraOptions = { - llmLsPackage = lib.mkPackageOption pkgs "llm-ls" { - nullable = true; - }; - }; - extraConfig = cfg: { - extraPackages = [ cfg.llmLsPackage ]; + imports = [ + # TODO: added 2025-04-07, remove after 25.05 + (lib.nixvim.mkRemovedPackageOptionModule { + plugin = "llm"; + packageName = "llm-ls"; + oldPackageName = "llmLs"; + }) + ]; - # If not setting this option, llm.nvim will try to download the llm-ls binary from the internet. - plugins.llm.settings.lsp.bin_path = lib.mkIf (cfg.llmLsPackage != null) ( - lib.mkDefault (lib.getExe cfg.llmLsPackage) - ); - }; + extraConfig = + let + llm-ls-dep = config.dependencies.llm-ls; + in + { + dependencies.llm-ls.enable = lib.mkDefault true; + + # If not setting this option, llm.nvim will try to download the llm-ls binary from the internet. + plugins.llm.settings.lsp.bin_path = lib.mkIf llm-ls-dep.enable ( + lib.mkDefault (lib.getExe llm-ls-dep.package) + ); + }; settingsOptions = import ./settings-options.nix lib; diff --git a/tests/test-sources/plugins/by-name/llm/default.nix b/tests/test-sources/plugins/by-name/llm/default.nix index 975a596b..b879c10a 100644 --- a/tests/test-sources/plugins/by-name/llm/default.nix +++ b/tests/test-sources/plugins/by-name/llm/default.nix @@ -9,9 +9,9 @@ plugins.llm = { enable = true; - llmLsPackage = null; settings.lsp.bin_path = null; }; + dependencies.llm-ls.enable = false; }; defaults = {