nixpkgs/pkgs/development/compilers/idris2/idris2-lsp.nix
2024-01-23 23:18:34 -06:00

45 lines
1.3 KiB
Nix

{ fetchFromGitHub, idris2Packages, makeWrapper }:
let
globalLibraries = let
idrName = "idris2-${idris2Packages.idris2.version}";
libSuffix = "lib/${idrName}";
in [
"\\$HOME/.nix-profile/lib/${idrName}"
"/run/current-system/sw/lib/${idrName}"
"${idris2Packages.idris2}/${idrName}"
];
globalLibrariesPath = builtins.concatStringsSep ":" globalLibraries;
idris2Api = idris2Packages.idris2Api { };
lspLib = (idris2Packages.buildIdris {
ipkgName = "lsp-lib";
version = "2024-01-21";
src = fetchFromGitHub {
owner = "idris-community";
repo = "LSP-lib";
rev = "03851daae0c0274a02d94663d8f53143a94640da";
hash = "sha256-ICW9oOOP70hXneJFYInuPY68SZTDw10dSxSPTW4WwWM=";
};
idrisLibraries = [ ];
}).library { };
lspPkg = idris2Packages.buildIdris {
ipkgName = "idris2-lsp";
version = "2024-01-21";
src = fetchFromGitHub {
owner = "idris-community";
repo = "idris2-lsp";
rev = "a77ef2d563418925aa274fa29f06880dde43f4ec";
hash = "sha256-zjfVfkpiQS9AdmTfq0hYRSelJq5Caa9VGTuFLtSvl5o=";
};
idrisLibraries = [idris2Api lspLib];
buildInputs = [makeWrapper];
postInstall = ''
wrapProgram $out/bin/idris2-lsp \
--suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}"
'';
};
in lspPkg.executable