1{
2 lib,
3 rustPlatform,
4 fetchFromGitHub,
5 pkg-config,
6 vimUtils,
7 stdenv,
8 nix-update-script,
9}:
10let
11 version = "0.3.0";
12
13 src = fetchFromGitHub {
14 owner = "Saghen";
15 repo = "blink.pairs";
16 tag = "v${version}";
17 hash = "sha256-RTY/uGviyHlO+ZmLwOC5BabKr+kRDAXGZNdS9fVRPWA=";
18 };
19
20 blink-pairs-lib = rustPlatform.buildRustPackage {
21 pname = "blink-pairs";
22 inherit version src;
23
24 cargoHash = "sha256-j+zk0UMjvaVgsdF5iaRVO4Puf/XtGu08Cs92jKPaM1g=";
25
26 env.RUSTC_BOOTSTRAP = 1;
27
28 nativeBuildInputs = [
29 pkg-config
30 ];
31 };
32in
33vimUtils.buildVimPlugin {
34 pname = "blink.pairs";
35 inherit version src;
36
37 preInstall =
38 let
39 ext = stdenv.hostPlatform.extensions.sharedLibrary;
40 in
41 ''
42 mkdir -p target/release
43 ln -s ${blink-pairs-lib}/lib/libblink_pairs${ext} target/release/
44 '';
45
46 passthru = {
47 updateScript = nix-update-script {
48 attrPath = "vimPlugins.blink-pairs.blink-pairs-lib";
49 };
50
51 # needed for the update script
52 inherit blink-pairs-lib;
53 };
54
55 meta = {
56 description = "Rainbow highlighting and intelligent auto-pairs for Neovim";
57 homepage = "https://github.com/Saghen/blink.pairs";
58 changelog = "https://github.com/Saghen/blink.pairs/blob/${src.tag}/CHANGELOG.md";
59 license = lib.licenses.mit;
60 maintainers = with lib.maintainers; [ isabelroses ];
61 };
62}