-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
105 lines (88 loc) · 2.79 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{
description = "My neovim config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
# Import nixpkgs with specific system
pkgs = import nixpkgs {
inherit system; # Change this according to your system architecture
};
# The list of dependencies
runtimeDeps = [
pkgs.stdenv.cc
pkgs.cargo
pkgs.curl
pkgs.fd
pkgs.fzf
pkgs.git
pkgs.gnumake
pkgs.gnused
pkgs.gnutar
pkgs.gzip
#lsp's
pkgs.lua-language-server
pkgs.nixd
pkgs.nodePackages.typescript-language-server
pkgs.typescript
pkgs.vscode-langservers-extracted
pkgs.yaml-language-server
pkgs.gopls
pkgs.neovim
pkgs.nodejs
pkgs.nodePackages.neovim
pkgs.ripgrep
pkgs.tree-sitter
pkgs.unzip
];
in
{
# Define the default package
packages = {
default = pkgs.stdenv.mkDerivation {
pname = "nvim";
version = "1.0.0";
src = ./.;
nativeBuildInputs = [
pkgs.gnused
pkgs.makeWrapper
];
buildInputs = runtimeDeps;
buildPhase = ''
runHook preBuild
mkdir -p share/nvim
cp init.lua share/nvim
cp -r lua share/nvim
mkdir bin
cp utils/bin/nvim.template bin/nvim
chmod +x bin/nvim
substituteInPlace bin/nvim \
--replace RUNTIME_DIR_VAR \$HOME/.local/share/nvim \
--replace CONFIG_DIR_VAR \$HOME/.config/nvim \
--replace CACHE_DIR_VAR \$HOME/.cache/nvim \
--replace BASE_DIR_VAR $out/share/nvim \
--replace neovim-binary ${pkgs.neovim}/bin/nvim
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r bin share $out
wrapProgram $out/bin/nvim --prefix PATH : ${pkgs.lib.makeBinPath runtimeDeps} \
--prefix LD_LIBRARY_PATH : ${pkgs.stdenv.cc.cc.lib} \
--prefix CC : ${pkgs.stdenv.cc.targetPrefix}cc
runHook postInstall
'';
meta = with pkgs.lib; {
description = "My personal IDE layer for Neovim";
homepage = "https://www.strenge.ch/";
platforms = platforms.unix;
mainProgram = "nvim";
};
};
};
});
}