about summary refs log tree commit diff
path: root/pkgs/by-name/ka/kakoune-lsp/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ka/kakoune-lsp/package.nix')
-rw-r--r--pkgs/by-name/ka/kakoune-lsp/package.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/by-name/ka/kakoune-lsp/package.nix b/pkgs/by-name/ka/kakoune-lsp/package.nix
new file mode 100644
index 0000000000000..68b2fce02554f
--- /dev/null
+++ b/pkgs/by-name/ka/kakoune-lsp/package.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, rustPlatform, perl, CoreServices, Security, SystemConfiguration }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kakoune-lsp";
+  version = "16.0.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-d4Tc6iYp20uOKMd+T2LhWgXWZzvzq1E+VWqjhhiIiHE=";
+  };
+
+  cargoHash = "sha256-kV8d0PwIWS6gyfCtv70iv8MrL91ZOZbwYznhc3lUw0U=";
+
+  buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
+
+  patches = [
+    ./Use-full-Perl-path.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace rc/lsp.kak \
+      --subst-var-by perlPath ${lib.getBin perl}
+  '';
+
+  meta = with lib; {
+    description = "Kakoune Language Server Protocol Client";
+    homepage = "https://github.com/kakoune-lsp/kakoune-lsp";
+    license = with licenses; [ unlicense /* or */ mit ];
+    maintainers = with maintainers; [ spacekookie poweredbypie ];
+    mainProgram = "kak-lsp";
+  };
+}