From 4cf149756542440b15fbfc7121b27e02bf686e0a Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sun, 5 Nov 2023 04:20:00 +0000 Subject: emacsPackages.lspce: init at unstable-2023-10-30 --- .../emacs/elisp-packages/manual-packages.nix | 2 + .../manual-packages/lspce/default.nix | 72 ++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix (limited to 'pkgs/applications') diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix index 0f28ed8f8f02..7e59c5f067f2 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix @@ -57,6 +57,8 @@ in inherit (pkgs) python3 git go gopls pyright; }; + lspce = callPackage ./manual-packages/lspce { }; + matrix-client = callPackage ./manual-packages/matrix-client { _map = self.map; }; diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix new file mode 100644 index 000000000000..29157c802411 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix @@ -0,0 +1,72 @@ +{ lib +, emacs +, f +, fetchFromGitHub +, markdown-mode +, rustPlatform +, trivialBuild +, yasnippet +}: + +let + version = "unstable-2023-10-30"; + + src = fetchFromGitHub { + owner = "zbelial"; + repo = "lspce"; + rev = "34c59787bcdbf414c92d9b3bf0a0f5306cb98d64"; + hash = "sha256-kUHGdeJo2zXA410FqXGclgXmgWrll30Zv8fSprcmnIo="; + }; + + meta = { + homepage = "https://github.com/zbelial/lspce"; + description = "LSP Client for Emacs implemented as a module using rust"; + license = lib.licenses.gpl3Only; + maintainers = [ lib.maintainers.marsam ]; + inherit (emacs.meta) platforms; + }; + + lspce-module = rustPlatform.buildRustPackage { + inherit version src meta; + pname = "lspce-module"; + + cargoHash = "sha256-eqSromwJrFhtJWedDVJivfbKpAtSFEtuCP098qOxFgI="; + + checkFlags = [ + # flaky test + "--skip=msg::tests::serialize_request_with_null_params" + ]; + + postFixup = '' + for f in $out/lib/*; do + mv $f $out/lib/lspce-module.''${f##*.} + done + ''; + }; +in +trivialBuild rec { + inherit version src meta; + pname = "lspce"; + + preBuild = '' + ln -s ${lspce-module}/lib/lspce-module* . + + # Fix byte-compilation + substituteInPlace lspce-util.el \ + --replace "(require 'yasnippet)" "(require 'yasnippet)(require 'url-util)" + substituteInPlace lspce-calltree.el \ + --replace "(require 'compile)" "(require 'compile)(require 'cl-lib)" + ''; + + buildInputs = propagatedUserEnvPkgs; + + propagatedUserEnvPkgs = [ + f + markdown-mode + yasnippet + ]; + + postInstall = '' + install lspce-module* $LISPDIR + ''; +} -- cgit 1.4.1