From b9d1104be23c1d66e042ba15d516a5118712b878 Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Wed, 26 Nov 2025 21:13:17 -0800 Subject: [PATCH] feat(autocompletion): allow blink-cmp package override --- modules/plugins/completion/blink-cmp/blink-cmp.nix | 5 +++-- modules/plugins/completion/blink-cmp/config.nix | 12 ++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/plugins/completion/blink-cmp/blink-cmp.nix b/modules/plugins/completion/blink-cmp/blink-cmp.nix index d0f0328a..e3996aae 100644 --- a/modules/plugins/completion/blink-cmp/blink-cmp.nix +++ b/modules/plugins/completion/blink-cmp/blink-cmp.nix @@ -1,5 +1,5 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption mkOption literalMD; +{lib, pkgs, ...}: let + inherit (lib.options) mkEnableOption mkOption mkPackageOption literalMD; inherit (lib.types) bool listOf str either attrsOf submodule enum anything int nullOr; inherit (lib.nvim.types) mkPluginSetupOption luaInline pluginType; inherit (lib.nvim.binds) mkMappingOption; @@ -29,6 +29,7 @@ in { options.vim.autocomplete.blink-cmp = { enable = mkEnableOption "blink.cmp"; + package = mkPackageOption pkgs ["vimPlugins" "blink-cmp"] { nullable = true; }; setupOpts = mkPluginSetupOption "blink.cmp" { sources = { default = mkOption { diff --git a/modules/plugins/completion/blink-cmp/config.nix b/modules/plugins/completion/blink-cmp/config.nix index 5789c514..b973ea2b 100644 --- a/modules/plugins/completion/blink-cmp/config.nix +++ b/modules/plugins/completion/blink-cmp/config.nix @@ -17,7 +17,9 @@ inherit (cfg) mappings; getPluginName = plugin: - if typeOf plugin == "string" + if cfg.package != null + then cfg.package.pname + else if typeOf plugin == "string" then plugin else if (plugin ? pname && (tryEval plugin.pname).success) then plugin.pname @@ -43,9 +45,11 @@ in { vim = mkIf cfg.enable { startPlugins = ["blink-compat"] ++ blinkSourcePlugins ++ (optional cfg.friendly-snippets.enable "friendly-snippets"); - lazy.plugins = { - blink-cmp = { - package = "blink-cmp"; + lazy.plugins = let + pluginName = if cfg.package != null then cfg.package.pname else "blink-cmp"; + in { + "${pluginName}" = { + package = if cfg.package == null then "blink-cmp" else cfg.package; setupModule = "blink.cmp"; inherit (cfg) setupOpts;