From 6aec23d0f020d3c7cc7315ed2a3b97be9c351692 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sat, 11 Jan 2025 20:55:21 +0100 Subject: [PATCH] flake: add and package blink.cmp --- flake.lock | 34 ++++++++++++++++++++ flake.nix | 10 ++++++ modules/wrapper/build/config.nix | 4 +++ modules/wrapper/build/packages/blink-cmp.nix | 34 ++++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 modules/wrapper/build/packages/blink-cmp.nix diff --git a/flake.lock b/flake.lock index da38b967..5eba3db0 100644 --- a/flake.lock +++ b/flake.lock @@ -167,6 +167,38 @@ "type": "github" } }, + "plugin-blink-cmp": { + "flake": false, + "locked": { + "lastModified": 1736295934, + "narHash": "sha256-MfHI4efAdaoCU8si6YFdznZmSTprthDq3YKuF91z7ss=", + "owner": "saghen", + "repo": "blink.cmp", + "rev": "1cc3b1a908fbcfd15451c4772759549724f38524", + "type": "github" + }, + "original": { + "owner": "saghen", + "repo": "blink.cmp", + "type": "github" + } + }, + "plugin-blink-compat": { + "flake": false, + "locked": { + "lastModified": 1734896240, + "narHash": "sha256-Rrrh+O3FbBnaAnCHwPuQyfhH+XueSkQp6ipEkn6esGY=", + "owner": "saghen", + "repo": "blink.compat", + "rev": "74b251a1e9478c4fa6d7c6bc2921d7124e6f6cbb", + "type": "github" + }, + "original": { + "owner": "saghen", + "repo": "blink.compat", + "type": "github" + } + }, "plugin-bufdelete-nvim": { "flake": false, "locked": { @@ -2084,6 +2116,8 @@ "plugin-aerial-nvim": "plugin-aerial-nvim", "plugin-alpha-nvim": "plugin-alpha-nvim", "plugin-base16": "plugin-base16", + "plugin-blink-cmp": "plugin-blink-cmp", + "plugin-blink-compat": "plugin-blink-compat", "plugin-bufdelete-nvim": "plugin-bufdelete-nvim", "plugin-catppuccin": "plugin-catppuccin", "plugin-ccc": "plugin-ccc", diff --git a/flake.nix b/flake.nix index 89690cad..e46db54f 100644 --- a/flake.nix +++ b/flake.nix @@ -287,6 +287,16 @@ flake = false; }; + plugin-blink-cmp = { + url = "github:saghen/blink.cmp"; + flake = false; + }; + + plugin-blink-compat = { + url = "github:saghen/blink.compat"; + flake = false; + }; + plugin-nvim-cmp = { url = "github:hrsh7th/nvim-cmp"; flake = false; diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 46d99b36..6a1c031b 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -61,6 +61,10 @@ "flutter-tools.dev_tools" ]; }; + blink-cmp = pkgs.callPackage ./packages/blink-cmp.nix { + src = inputs.plugin-blink-cmp; + version = inputs.plugin-blink-cmp.shortRev or inputs.plugin-blink-cmp.shortDirtyRev or "dirty"; + }; }; buildConfigPlugins = plugins: diff --git a/modules/wrapper/build/packages/blink-cmp.nix b/modules/wrapper/build/packages/blink-cmp.nix new file mode 100644 index 00000000..537995f8 --- /dev/null +++ b/modules/wrapper/build/packages/blink-cmp.nix @@ -0,0 +1,34 @@ +{ + rustPlatform, + hostPlatform, + vimUtils, + git, + src, + version, +}: let + blink-fuzzy-lib = rustPlatform.buildRustPackage { + pname = "blink-fuzzy-lib"; + inherit version src; + + nativeBuildInputs = [git]; + cargoLock = { + lockFile = "${src}/Cargo.lock"; + allowBuiltinFetchGit = true; + }; + }; + libExt = + if hostPlatform.isDarwin + then "dylib" + else "so"; +in + vimUtils.buildVimPlugin { + pname = "blink-cmp"; + inherit version src; + + # blink references a repro.lua which is placed outside the lua/ directory + doCheck = false; + preInstall = '' + mkdir -p target/release + ln -s ${blink-fuzzy-lib}/lib/libblink_cmp_fuzzy.${libExt} target/release/libblink_cmp_fuzzy.${libExt} + ''; + }