anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / editors / neovim / build-neovim-plugin.nix
blob6f9bda5b108bd3fc157c323eab5b1c370b726419
1 { lib
2 , stdenv
3 , lua
4 , toVimPlugin
5 }:
6 let
7   # sanitizeDerivationName
8   normalizeName = lib.replaceStrings [ "." ] [ "-" ];
9 in
11   # function to create vim plugin from lua packages that are already packaged in
12   # luaPackages
13   {
14     # the lua derivation to convert into a neovim plugin
15      luaAttr ? (lua.pkgs.${normalizeName attrs.pname})
16     , ...
17   }@attrs:
18     let
19       originalLuaDrv = if (lib.typeOf luaAttr == "string") then
20         lib.warn "luaAttr as string is deprecated since September 2024. Pass a lua derivation directly ( e.g., `buildNeovimPlugin { luaAttr = lua.pkgs.plenary-nvim; }`)" lua.pkgs.${normalizeName luaAttr}
21         else luaAttr;
24       luaDrv = originalLuaDrv.overrideAttrs (oa: {
25         version = attrs.version or oa.version;
26         rockspecVersion = oa.rockspecVersion;
28         extraConfig = ''
29           -- to create a flat hierarchy
30           lua_modules_path = "lua"
31         '';
32       });
34       finalDrv = toVimPlugin (luaDrv.overrideAttrs(oa: attrs // {
35           nativeBuildInputs = oa.nativeBuildInputs or [] ++ [
36             lua.pkgs.luarocksMoveDataFolder
37           ];
38           version = "${originalLuaDrv.version}-unstable-${oa.version}";
39         }));
40     in
41       finalDrv