1{
2 lib,
3 fetchFromGitHub,
4 idris2Packages,
5 makeWrapper,
6}:
7
8let
9 globalLibraries =
10 let
11 idrName = "idris2-${idris2Packages.idris2.version}";
12 libSuffix = "lib/${idrName}";
13 in
14 [
15 "\\$HOME/.nix-profile/lib/${idrName}"
16 "/run/current-system/sw/lib/${idrName}"
17 "${idris2Packages.idris2}/${idrName}"
18 ];
19 globalLibrariesPath = builtins.concatStringsSep ":" globalLibraries;
20
21 inherit (idris2Packages) idris2Api;
22 lspLib = idris2Packages.buildIdris {
23 ipkgName = "lsp-lib";
24 version = "2024-01-21";
25 src = fetchFromGitHub {
26 owner = "idris-community";
27 repo = "LSP-lib";
28 rev = "03851daae0c0274a02d94663d8f53143a94640da";
29 hash = "sha256-ICW9oOOP70hXneJFYInuPY68SZTDw10dSxSPTW4WwWM=";
30 };
31 idrisLibraries = [ ];
32 };
33
34 lspPkg = idris2Packages.buildIdris {
35 ipkgName = "idris2-lsp";
36 version = "2024-01-21";
37 src = fetchFromGitHub {
38 owner = "idris-community";
39 repo = "idris2-lsp";
40 rev = "a77ef2d563418925aa274fa29f06880dde43f4ec";
41 hash = "sha256-zjfVfkpiQS9AdmTfq0hYRSelJq5Caa9VGTuFLtSvl5o=";
42 };
43 idrisLibraries = [
44 idris2Api
45 lspLib
46 ];
47
48 nativeBuildInputs = [ makeWrapper ];
49 postInstall = ''
50 wrapProgram $out/bin/idris2-lsp \
51 --suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}"
52 '';
53
54 meta = with lib; {
55 description = "Language Server for Idris2";
56 mainProgram = "idris2-lsp";
57 homepage = "https://github.com/idris-community/idris2-lsp";
58 license = licenses.bsd3;
59 maintainers = with maintainers; [ mattpolzin ];
60 };
61 };
62in
63lspPkg.executable