/ plugins / avante / default.nix
default.nix
 1  {
 2    mkPlugin,
 3    inputs,
 4    pkgs,
 5    lib,
 6    ...
 7  }:
 8  let
 9    inherit (builtins) readFile;
10    inherit (pkgs.nightvim) buildRustPackage;
11    inherit (pkgs.stdenv) isDarwin;
12    inherit (lib) optionals;
13  
14    src = buildRustPackage {
15      name = "nightvim-avante-lib";
16      src = inputs.avante-nvim;
17  
18      doCheck = false;
19  
20      buildFeatures = [ "luajit" ];
21  
22      buildInputs =
23        with pkgs;
24        [ openssl.dev ] ++ optionals isDarwin [ darwin.apple_sdk.frameworks.Security ];
25  
26      nativeBuildInputs = with pkgs; [
27        openssl
28        pkg-config
29        perl
30      ];
31  
32      cargoLock = {
33        lockFile = "${inputs.avante-nvim}/Cargo.lock";
34        outputHashes."hf-hub-0.4.1" = "sha256-8IkbFytOolQGyEhGzjqVCguSLYaN6E8BUgekf1auZUk=";
35      };
36  
37      installPhase = ''
38        mkdir -p $out/build
39  
40        find . -iname "libavante*.*" -print | while read -r file; do
41          cp "$file" $out/build/$(basename $file | sed 's/^lib//')
42        done
43  
44        cargo clean
45  
46        cp -rf * $out/
47      '';
48    };
49  in
50  mkPlugin {
51    inherit src;
52  
53    name = "avante.nvim";
54  
55    depends = [
56      "dressing"
57      "img-clip"
58      "lspconfig"
59      "nui"
60      "nvim-web-devicons"
61      "plenary"
62    ];
63  
64    config = readFile ./configuration.lua;
65  }