feat(nix): add `kotlin-lsp`

Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>

authored by boltless.me and committed by boltless.me 7e249f1f 41056d59

Changed files
+60
nix
+4
nix/flake.nix
··· 23 23 overlays = [ 24 24 (import ./overlays/jpm.nix) 25 25 (import ./overlays/bleve.nix) 26 + (final: prev: { 27 + kotlin-lsp = final.callPackage ./overlays/kotlin-lsp.nix {}; 28 + }) 26 29 ]; 27 30 }; 28 31 pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; ··· 68 71 pkgs.janet 69 72 pkgs.yarn 70 73 pkgs.jpm 74 + pkgs.kotlin-lsp 71 75 pkgs.meld 72 76 pkgs.mprocs 73 77 pkgs.nodejs_24
+56
nix/overlays/kotlin-lsp.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchzip, 5 + openjdk, 6 + makeWrapper, 7 + }: 8 + 9 + stdenv.mkDerivation rec { 10 + pname = "kotlin-lsp"; 11 + version = "0.253.10629"; 12 + src = fetchzip { 13 + stripRoot = false; 14 + url = "https://download-cdn.jetbrains.com/kotlin-lsp/${version}/kotlin-${version}.zip"; 15 + hash = "sha256-LCLGo3Q8/4TYI7z50UdXAbtPNgzFYtmUY/kzo2JCln0="; 16 + }; 17 + 18 + dontBuild = true; 19 + 20 + installPhase = '' 21 + runHook preInstall 22 + 23 + mkdir -p $out/lib 24 + mkdir -p $out/native 25 + mkdir -p $out/bin 26 + cp -r lib/* $out/lib 27 + cp -r native/* $out/native 28 + chmod +x kotlin-lsp.sh 29 + cp "kotlin-lsp.sh" "$out/kotlin-lsp.sh" 30 + ln -s $out/kotlin-lsp.sh $out/bin/kotlin-lsp 31 + 32 + runHook postInstall 33 + ''; 34 + 35 + nativeBuildInputs = [ 36 + makeWrapper 37 + ]; 38 + 39 + postFixup = '' 40 + wrapProgram "$out/bin/kotlin-lsp" --set JAVA_HOME ${openjdk} --prefix PATH : ${ 41 + lib.strings.makeBinPath [ 42 + openjdk 43 + ] 44 + } 45 + ''; 46 + 47 + meta = { 48 + description = "LSP implementation for Kotlin code completion, linting"; 49 + homepage = "https://github.com/Kotlin/kotlin-lsp"; 50 + changelog = "https://github.com/Kotlin/kotlin-lsp/blob/kotlin-lsp/v${version}/RELEASES.md"; 51 + license = lib.licenses.asl20; 52 + platforms = lib.platforms.unix; 53 + sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; 54 + mainProgram = "kotlin-lsp"; 55 + }; 56 + }