diff --git a/pkgs/applications/editors/kakoune/plugins/aliases.nix b/pkgs/applications/editors/kakoune/plugins/aliases.nix new file mode 100644 index 00000000000..5ff2a03441d --- /dev/null +++ b/pkgs/applications/editors/kakoune/plugins/aliases.nix @@ -0,0 +1,46 @@ +# Deprecated aliases - for backward compatibility + +lib: overriden: + +with overriden; + +let + # Removing recurseForDerivation prevents derivations of aliased attribute + # set to appear while listing all the packages available. + removeRecurseForDerivations = alias: with lib; + if alias.recurseForDerivations or false then + removeAttrs alias ["recurseForDerivations"] + else alias; + + # Disabling distribution prevents top-level aliases for non-recursed package + # sets from building on Hydra. + removeDistribute = alias: with lib; + if isDerivation alias then + dontDistribute alias + else alias; + + # Make sure that we are not shadowing something from + # all-packages.nix. + checkInPkgs = n: alias: if builtins.hasAttr n overriden + then throw "Alias ${n} is still in kakounePlugins" + else alias; + + mapAliases = aliases: + lib.mapAttrs (n: alias: removeDistribute + (removeRecurseForDerivations + (checkInPkgs n alias))) + aliases; + + deprecations = lib.mapAttrs (old: info: + throw "${old} was renamed to ${info.new} on ${info.date}. Please update to ${info.new}." + ) (builtins.fromJSON (builtins.readFile ./deprecated.json)); + +in +mapAliases ({ + kak-auto-pairs = auto-pairs-kak; # backwards compat, added 2021-01-04 + kak-buffers = kakoune-buffers; # backwards compat, added 2021-01-04 + kak-fzf = fzf-kak; # backwards compat, added 2021-01-04 + kak-powerline = powerline-kak; # backwards compat, added 2021-01-04 + kak-prelude = prelude-kak; # backwards compat, added 2021-01-04 + kak-vertical-selection = kakoune-vertical-selection; # backwards compat, added 2021-01-04 +} // deprecations) diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix index c8054aaf87b..1fe16a4e60c 100644 --- a/pkgs/applications/editors/kakoune/plugins/default.nix +++ b/pkgs/applications/editors/kakoune/plugins/default.nix @@ -1,4 +1,4 @@ -{ callPackage, kakouneUtils }: +{ callPackage, config, kakouneUtils, lib }: let @@ -18,6 +18,8 @@ let inherit buildKakounePluginFrom2Nix; }; + aliases = lib.optionalAttrs (config.allowAliases or true) (import ./aliases.nix lib plugins); + in -plugins +plugins // aliases diff --git a/pkgs/applications/editors/kakoune/plugins/deprecated.json b/pkgs/applications/editors/kakoune/plugins/deprecated.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/pkgs/applications/editors/kakoune/plugins/deprecated.json @@ -0,0 +1 @@ +{}