summary refs log tree commit diff
path: root/pkgs/applications/editors/lapce
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/lapce')
-rw-r--r--pkgs/applications/editors/lapce/default.nix83
-rw-r--r--pkgs/applications/editors/lapce/fix-version.patch31
2 files changed, 114 insertions, 0 deletions
diff --git a/pkgs/applications/editors/lapce/default.nix b/pkgs/applications/editors/lapce/default.nix
new file mode 100644
index 00000000000..2653806a14f
--- /dev/null
+++ b/pkgs/applications/editors/lapce/default.nix
@@ -0,0 +1,83 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, cmake
+, pkg-config
+, python3
+, perl
+, freetype
+, fontconfig
+, libxkbcommon
+, xcbutil
+, libX11
+, libXcursor
+, libXrandr
+, libXi
+, vulkan-loader
+, copyDesktopItems
+, makeDesktopItem
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "lapce";
+  version = "0.0.10";
+
+  src = fetchFromGitHub {
+    owner = "lapce";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "tOVFm4DFQurFU4DtpPwxXQLbTGCZnrV1FfYKtvkRxRE=";
+  };
+
+  cargoPatches = [ ./fix-version.patch ];
+
+  cargoSha256 = "BwB3KgmI5XnZ5uHv6f+kGKBzpyxPWcoKvF7qw90eorI=";
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    python3
+    perl
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    freetype
+    fontconfig
+    libxkbcommon
+    xcbutil
+    libX11
+    libXcursor
+    libXrandr
+    libXi
+    vulkan-loader
+  ];
+
+  # Add missing vulkan dependency to rpath
+  preFixup = ''
+    patchelf --add-needed ${vulkan-loader}/lib/libvulkan.so.1 $out/bin/lapce
+  '';
+
+  postInstall = ''
+    install -Dm0644 $src/extra/images/logo.svg $out/share/icons/hicolor/scalable/apps/lapce.svg
+  '';
+
+  desktopItems = [ (makeDesktopItem {
+    name = "lapce";
+    exec = "lapce %F";
+    icon = "lapce";
+    desktopName = "Lapce";
+    comment = meta.description;
+    genericName = "Code Editor";
+    categories = [ "Development" "Utility" "TextEditor" ];
+  }) ];
+
+  meta = with lib; {
+    description = "Lightning-fast and Powerful Code Editor written in Rust";
+    homepage = "https://github.com/lapce/lapce";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ elliot ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/applications/editors/lapce/fix-version.patch b/pkgs/applications/editors/lapce/fix-version.patch
new file mode 100644
index 00000000000..2a8d96be169
--- /dev/null
+++ b/pkgs/applications/editors/lapce/fix-version.patch
@@ -0,0 +1,31 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index bc9a0f8..45a74ad 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2165,7 +2165,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "lapce"
+-version = "0.0.9"
++version = "0.0.10"
+ dependencies = [
+  "lapce-core",
+  "lapce-proxy",
+@@ -2173,7 +2173,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "lapce-core"
+-version = "0.0.9"
++version = "0.0.10"
+ dependencies = [
+  "Inflector",
+  "alacritty_terminal 0.15.0",
+@@ -2233,7 +2233,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "lapce-proxy"
+-version = "0.0.9"
++version = "0.0.10"
+ dependencies = [
+  "alacritty_terminal 0.16.0-rc2",
+  "anyhow",