summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2026-03-29 16:57:51 -0400
committerFreya Murphy <freya@freyacat.org>2026-03-29 23:37:44 -0400
commite2f2dfca1e0ca4a53b879bac6fed65d18337b30d (patch)
tree63df62130fa497ec57eabdd68edeebee7e2d2892
downloadkotlin-lsp.nix-main.tar.gz
kotlin-lsp.nix-main.tar.bz2
kotlin-lsp.nix-main.zip
get kotlin-lsp workingHEADmain
-rw-r--r--default.nix57
-rw-r--r--flake.lock61
-rw-r--r--flake.nix30
3 files changed, 148 insertions, 0 deletions
diff --git a/default.nix b/default.nix
new file mode 100644
index 0000000..8647ec4
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,57 @@
+{
+ lib,
+ stdenv,
+ fetchzip,
+ openjdk,
+ gradle,
+ makeWrapper,
+ maven,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "kotlin-lsp";
+ version = "262.2310.0";
+ src = fetchzip {
+ url = "https://download-cdn.jetbrains.com/kotlin-lsp/${finalAttrs.version}/kotlin-lsp-${finalAttrs.version}-linux-x64.zip";
+ hash = "sha256-Bf2qkFpNhQC/Mz563OapmCXeKN+dTrYyQbOcF6z6b48=";
+ stripRoot = false;
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ # copy files
+ mkdir -p $out/share/kotlin-lsp/{lib,native}
+ cp -r lib/* $out/share/kotlin-lsp/lib
+ cp -r native/* $out/share/kotlin-lsp/native
+ cp kotlin-lsp.sh $out/share/kotlin-lsp/kotlin-lsp
+ chmod +x $out/share/kotlin-lsp/kotlin-lsp
+
+ # wrap openjdk
+ ln -sf ${openjdk}/lib/openjdk $out/share/kotlin-lsp/jre
+
+ # wrap program
+ mkdir -p $out/bin
+ makeWrapper $out/share/kotlin-lsp/kotlin-lsp $out/bin/kotlin-lsp \
+ --set JAVA_HOME ${openjdk} \
+ --prefix PATH : ${lib.strings.makeBinPath [ openjdk maven ]}
+ '';
+
+ nativeBuildInputs = [
+ gradle
+ makeWrapper
+ ];
+
+ buildInputs = [
+ openjdk
+ gradle
+ ];
+
+ meta = {
+ description = "Kotlin language server";
+ homepage = "https://github.com/Kotlin/kotlin-lsp";
+ license = lib.licenses.asl20;
+ platforms = [ "x86_64-linux" ];
+ mainProgram = "kotlin-lsp";
+ };
+})
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..d95764d
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,61 @@
+{
+ "nodes": {
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1774386573,
+ "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..fa14a51
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,30 @@
+{
+ description = "khs nix flake";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ flake-utils.url = "github:numtide/flake-utils";
+ };
+
+ outputs = {
+ nixpkgs,
+ flake-utils,
+ ...
+ }: let
+ supportedSystems = let
+ inherit (flake-utils.lib) system;
+ in [
+ system.x86_64-linux
+ ];
+ in
+ flake-utils.lib.eachSystem supportedSystems (system: let
+ pkgs = import nixpkgs {inherit system;};
+ in {
+ packages = rec {
+ default = kotlin-lsp;
+ kotlin-lsp = pkgs.callPackage ./default.nix {};
+ };
+
+ formatter = pkgs.alejandra;
+ });
+}