mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-02 03:43:06 +00:00
emacsPackages.lspce: rework
- detach Rust module to module.nix - trivialBuild -> melpaBuild - updateScript - adopt (by AndersonTorres) Co-authored-by: Lin Jian <me@linj.tech>
This commit is contained in:
parent
a0691657e9
commit
8c08052cc0
@ -1,65 +1,34 @@
|
||||
{ lib
|
||||
, emacs
|
||||
, f
|
||||
, fetchFromGitHub
|
||||
, markdown-mode
|
||||
, rustPlatform
|
||||
, trivialBuild
|
||||
, yasnippet
|
||||
{
|
||||
lib,
|
||||
callPackage,
|
||||
f,
|
||||
markdown-mode,
|
||||
melpaBuild,
|
||||
nix-update-script,
|
||||
yasnippet,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.0.0-unstable-2024-02-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zbelial";
|
||||
repo = "lspce";
|
||||
rev = "543dcf0ea9e3ff5c142c4365d90b6ae8dc27bd15";
|
||||
hash = "sha256-LZWRQOKkTjNo8jecBRholW9SHpiK0SWcV8yObojpvxo=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/zbelial/lspce";
|
||||
description = "LSP Client for Emacs implemented as a module using rust";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = [ ];
|
||||
inherit (emacs.meta) platforms;
|
||||
};
|
||||
|
||||
lspce-module = rustPlatform.buildRustPackage {
|
||||
inherit version src meta;
|
||||
pname = "lspce-module";
|
||||
|
||||
cargoHash = "sha256-W9rsi7o4KvyRoG/pqRKOBbJtUoSW549Sh8+OV9sLcxs=";
|
||||
|
||||
checkFlags = [
|
||||
# flaky test
|
||||
"--skip=msg::tests::serialize_request_with_null_params"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
for f in $out/lib/*; do
|
||||
mv $f $out/share/emacs/site-lisp/lspce-module.''${f##*.}
|
||||
done
|
||||
rmdir $out/lib
|
||||
'';
|
||||
};
|
||||
lspce-module = callPackage ./module.nix { };
|
||||
in
|
||||
trivialBuild rec {
|
||||
inherit version src meta;
|
||||
melpaBuild {
|
||||
pname = "lspce";
|
||||
inherit (lspce-module) version src meta;
|
||||
|
||||
buildInputs = propagatedUserEnvPkgs;
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
packageRequires = [
|
||||
f
|
||||
markdown-mode
|
||||
yasnippet
|
||||
lspce-module
|
||||
];
|
||||
|
||||
# to compile lspce.el, it needs lspce-module.so
|
||||
files = ''(:defaults "${lib.getLib lspce-module}/lib/lspce-module.*")'';
|
||||
|
||||
passthru = {
|
||||
inherit lspce-module;
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "emacsPackages.lspce.lspce-module";
|
||||
extraArgs = [ "--version=branch" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "lspce-module";
|
||||
version = "1.1.0-unstable-2024-02-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zbelial";
|
||||
repo = "lspce";
|
||||
rev = "543dcf0ea9e3ff5c142c4365d90b6ae8dc27bd15";
|
||||
hash = "sha256-LZWRQOKkTjNo8jecBRholW9SHpiK0SWcV8yObojpvxo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-pjDh7epCjqVN+QMzOIwujJ2MmNYS08QcVy/2VxGZsb0=";
|
||||
|
||||
checkFlags = [
|
||||
# flaky test
|
||||
"--skip=msg::tests::serialize_request_with_null_params"
|
||||
];
|
||||
|
||||
# rename module without changing either suffix or location
|
||||
# use for loop because there seems to be two modules on darwin systems
|
||||
# https://github.com/zbelial/lspce/issues/7#issue-1783708570
|
||||
postInstall = ''
|
||||
for f in $out/lib/*; do
|
||||
mv --verbose $f $out/lib/lspce-module.''${f##*.}
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/zbelial/lspce";
|
||||
description = "LSP Client for Emacs implemented as a module using Rust";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user