Package kotlin-language-server and jdtls again
This commit is contained in:
parent
56955f9898
commit
5726b5211f
4 changed files with 102 additions and 36 deletions
15
flake.nix
15
flake.nix
|
@ -15,14 +15,23 @@
|
||||||
utils.url = "github:gytis-ivaskevicius/flake-utils-plus/master";
|
utils.url = "github:gytis-ivaskevicius/flake-utils-plus/master";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ self, nixpkgs, agenix, emacs-overlay, home-manager, utils }: utils.lib.systemFlake {
|
outputs = inputs@{ self, nixpkgs, agenix, emacs-overlay, home-manager, utils }:
|
||||||
|
let
|
||||||
|
customPackages = callPackage: {
|
||||||
|
jdtls = callPackage ./packages/jdtls { };
|
||||||
|
kotlin-language-server = callPackage ./packages/kotlin-language-server { };
|
||||||
|
}; in
|
||||||
|
utils.lib.systemFlake {
|
||||||
inherit self inputs;
|
inherit self inputs;
|
||||||
# This config can only be evaluated on x86_64-linux because of IFD
|
# This config can only be evaluated on x86_64-linux because of IFD
|
||||||
supportedSystems = [ "x86_64-linux" ];
|
supportedSystems = [ "x86_64-linux" ];
|
||||||
channels.nixpkgs = {
|
channels.nixpkgs = {
|
||||||
input = nixpkgs;
|
input = nixpkgs;
|
||||||
patches = map (patch: ./patches + "/${patch}") (builtins.filter (x: x != ".keep") (builtins.attrNames (builtins.readDir ./patches)));
|
patches = map (patch: ./patches + "/${patch}") (builtins.filter (x: x != ".keep") (builtins.attrNames (builtins.readDir ./patches)));
|
||||||
overlaysBuilder = _: [ emacs-overlay.overlay ];
|
overlaysBuilder = _: [
|
||||||
|
emacs-overlay.overlay
|
||||||
|
(self: super: customPackages self.callPackage)
|
||||||
|
];
|
||||||
};
|
};
|
||||||
hostDefaults = {
|
hostDefaults = {
|
||||||
modules = [
|
modules = [
|
||||||
|
@ -52,5 +61,7 @@
|
||||||
agenix.defaultPackage.x86_64-linux
|
agenix.defaultPackage.x86_64-linux
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
packagesBuilder = channels:
|
||||||
|
let pkgs = channels.nixpkgs; in customPackages pkgs.callPackage;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
home-manager.users.charlotte = { ... }: {
|
home-manager.users.charlotte = { ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
google-chrome
|
google-chrome
|
||||||
|
jdtls
|
||||||
|
kotlin-language-server
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
mpv
|
mpv
|
||||||
okular
|
okular
|
||||||
|
|
34
packages/jdtls/default.nix
Normal file
34
packages/jdtls/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{ stdenv, bash, fetchurl, jdk11, ... }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "jdtls";
|
||||||
|
version = "1.1.2";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://download.eclipse.org/${pname}/milestones/${version}/jdt-language-server-${version}-202105191944.tar.gz";
|
||||||
|
sha256 = "1drx4fs63jr1cbsya6smwfx8rxpdlwb9sg3y80xfnr80dh0mh2c4";
|
||||||
|
};
|
||||||
|
sourceRoot = ".";
|
||||||
|
buildPhase = "true";
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/java/jdtls
|
||||||
|
mv config_* features plugins $out/share/java/jdtls
|
||||||
|
mkdir $out/bin
|
||||||
|
cat >$out/bin/jdtls <<HERE
|
||||||
|
#!${bash}/bin/bash
|
||||||
|
tmp_dir=\$(mktemp -d /tmp/jdtls.XXXXX)
|
||||||
|
cp -R $out/share/java/jdtls/config_linux \$tmp_dir
|
||||||
|
chmod -R u=rwX \$tmp_dir
|
||||||
|
trap "{ rm -rf \$tmp_dir; }" 0
|
||||||
|
${jdk11}/bin/java \
|
||||||
|
-Declipse.application=org.eclipse.jdt.ls.core.id1 \
|
||||||
|
-Dosgi.bundles.defaultStartLevel=4 \
|
||||||
|
-Declipse.product=org.eclipse.jdt.ls.core.product \
|
||||||
|
-noverify \
|
||||||
|
-Xms1G \
|
||||||
|
-jar $out/share/java/jdtls/plugins/org.eclipse.equinox.launcher_*.jar \
|
||||||
|
-configuration "\$tmp_dir/config_linux" \
|
||||||
|
"\$@"
|
||||||
|
HERE
|
||||||
|
chmod +x $out/bin/jdtls
|
||||||
|
'';
|
||||||
|
}
|
19
packages/kotlin-language-server/default.nix
Normal file
19
packages/kotlin-language-server/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ lib, stdenv, fetchzip, jdk11, makeWrapper, ... }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "kotlin-language-server";
|
||||||
|
version = "1.1.2";
|
||||||
|
src = fetchzip {
|
||||||
|
url = "https://github.com/fwcd/${pname}/releases/download/${version}/server.zip";
|
||||||
|
sha256 = "021h9239lr19r9r726hfjlfgwa8fl4m8vfryzsg8fbm0hsziklkz";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -r $src/* $out/
|
||||||
|
chmod -R u=rwX $out
|
||||||
|
wrapProgram $out/bin/kotlin-language-server --set JAVA_HOME ${jdk11}
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue