1# TODO check that no license information gets lost
2{ callPackage, config, lib, vimUtils, vim, darwin, llvmPackages, luaPackages }:
3
4let
5
6 inherit (vimUtils.override {inherit vim;}) buildVimPluginFrom2Nix vimGenDocHook;
7
8 inherit (lib) extends;
9
10 initialPackages = self: {
11 # Convert derivation to a vim plugin.
12 toVimPlugin = drv:
13 drv.overrideAttrs(oldAttrs: {
14
15 nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [ vimGenDocHook ];
16 passthru = (oldAttrs.passthru or {}) // {
17 vimPlugin = true;
18 };
19 });
20 };
21
22 plugins = callPackage ./generated.nix {
23 inherit buildVimPluginFrom2Nix;
24 };
25
26 # TL;DR
27 # * Add your plugin to ./vim-plugin-names
28 # * run ./update.py
29 #
30 # If additional modifications to the build process are required,
31 # add to ./overrides.nix.
32 overrides = callPackage ./overrides.nix {
33 inherit (darwin.apple_sdk.frameworks) Cocoa CoreFoundation CoreServices;
34 inherit buildVimPluginFrom2Nix;
35 inherit llvmPackages luaPackages;
36 };
37
38 aliases = if (config.allowAliases or true) then (import ./aliases.nix lib) else final: prev: {};
39
40 extensible-self = lib.makeExtensible
41 (extends aliases
42 (extends overrides
43 (extends plugins initialPackages)
44 )
45 );
46in
47 extensible-self