From ef2f4bdc396ce7126b0b1f7048655e54271400be Mon Sep 17 00:00:00 2001 From: dish Date: Wed, 5 Nov 2025 17:04:59 -0500 Subject: [PATCH] coc-tabnine: migrate from nodePackages --- .../editors/vim/plugins/cocPlugins.nix | 6 ++ .../vim/plugins/nodePackagePlugins.nix | 1 - pkgs/by-name/co/coc-tabnine/package.nix | 73 +++++++++++++++++++ pkgs/development/node-packages/aliases.nix | 1 + .../node-packages/node-packages.json | 1 - .../node-packages/node-packages.nix | 17 ----- 6 files changed, 80 insertions(+), 19 deletions(-) create mode 100644 pkgs/by-name/co/coc-tabnine/package.nix diff --git a/pkgs/applications/editors/vim/plugins/cocPlugins.nix b/pkgs/applications/editors/vim/plugins/cocPlugins.nix index 8906d1c577ba..d630a1d62e87 100644 --- a/pkgs/applications/editors/vim/plugins/cocPlugins.nix +++ b/pkgs/applications/editors/vim/plugins/cocPlugins.nix @@ -32,6 +32,7 @@ coc-sqlfluff, coc-stylelint, coc-sumneko-lua, + coc-tabnine, coc-toml, }: final: prev: { @@ -198,6 +199,11 @@ final: prev: { src = "${coc-sumneko-lua}/lib/node_modules/coc-sumneko-lua"; }; + coc-tabnine = buildVimPlugin { + inherit (coc-tabnine) pname version meta; + src = "${coc-tabnine}/lib/node_modules/coc-tabnine"; + }; + coc-toml = buildVimPlugin { pname = "coc-toml"; inherit (coc-toml) version meta; diff --git a/pkgs/applications/editors/vim/plugins/nodePackagePlugins.nix b/pkgs/applications/editors/vim/plugins/nodePackagePlugins.nix index 3cb9fc19a04f..a9a5d509b32e 100644 --- a/pkgs/applications/editors/vim/plugins/nodePackagePlugins.nix +++ b/pkgs/applications/editors/vim/plugins/nodePackagePlugins.nix @@ -8,7 +8,6 @@ let nodePackageNames = [ "coc-go" "coc-ltex" - "coc-tabnine" "coc-texlab" "coc-tsserver" "coc-ultisnips" diff --git a/pkgs/by-name/co/coc-tabnine/package.nix b/pkgs/by-name/co/coc-tabnine/package.nix new file mode 100644 index 000000000000..ea7d850dd90b --- /dev/null +++ b/pkgs/by-name/co/coc-tabnine/package.nix @@ -0,0 +1,73 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + fetchYarnDeps, + yarnConfigHook, + yarnBuildHook, + yarnInstallHook, + nodejs, + nix-update-script, + esbuild, + buildGoModule, +}: +let + esbuild' = + let + version = "0.8.33"; + in + esbuild.override { + buildGoModule = + args: + buildGoModule ( + args + // { + inherit version; + src = fetchFromGitHub { + owner = "evanw"; + repo = "esbuild"; + rev = "v${version}"; + hash = "sha256-u/3YHQZskgbkaXV7RF8G9kMMx1A25hHhHv+VQdZZ4EU="; + }; + vendorHash = "sha256-2ABWPqhK2Cf4ipQH7XvRrd+ZscJhYPc3SV2cGT0apdg="; + } + ); + }; +in +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "coc-tabnine"; + version = "1.3.7"; + + src = fetchFromGitHub { + owner = "neoclide"; + repo = "coc-tabnine"; + tag = finalAttrs.version; + hash = "sha256-7l4gCpArP1pp/SfYiyzjLc8VH7HVhwx2slorQcuA6k4="; + }; + + yarnOfflineCache = fetchYarnDeps { + inherit (finalAttrs) src; + hash = "sha256-Pg/AQv9/VTUXTu6q71vQ+0AMNswHEoCOAWnWIeuy/lQ="; + }; + + yarnBuildScript = "prepare"; + + nativeBuildInputs = [ + yarnConfigHook + yarnBuildHook + yarnInstallHook + nodejs + esbuild' + ]; + + env.ESBUILD_BINARY_PATH = lib.getExe esbuild'; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Tabnine extension for coc.nvim"; + homepage = "https://github.com/neoclide/coc-tabnine"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pyrox0 ]; + }; +}) diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix index 823487f8703e..c532259e4be3 100644 --- a/pkgs/development/node-packages/aliases.nix +++ b/pkgs/development/node-packages/aliases.nix @@ -106,6 +106,7 @@ mapAliases { inherit (pkgs) coc-sqlfluff; # Added 2025-11-05 inherit (pkgs) coc-stylelint; # Added 2025-11-05 inherit (pkgs) coc-sumneko-lua; # Added 2025-11-05 + inherit (pkgs) coc-tabnine; # Added 2025-11-05 inherit (pkgs) coc-toml; coc-tslint = throw "coc-tslint was removed because it was deprecated upstream; coc-eslint offers comparable features for eslint, which replaced tslint"; # Added 2024-10-18 coc-tslint-plugin = throw "coc-tslint-plugin was removed because it was deprecated upstream; coc-eslint offers comparable features for eslint, which replaced tslint"; # Added 2024-10-18 diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json index 1df68c9ea892..038642848fbc 100644 --- a/pkgs/development/node-packages/node-packages.json +++ b/pkgs/development/node-packages/node-packages.json @@ -23,7 +23,6 @@ , "clipboard-cli" , "coc-go" , "coc-ltex" -, "coc-tabnine" , "coc-texlab" , "coc-tsserver" , "coc-ultisnips" diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix index 2abbeea47c4b..4427f16a7a5c 100644 --- a/pkgs/development/node-packages/node-packages.nix +++ b/pkgs/development/node-packages/node-packages.nix @@ -37038,23 +37038,6 @@ in bypassCache = true; reconstructLock = true; }; - coc-tabnine = nodeEnv.buildNodePackage { - name = "coc-tabnine"; - packageName = "coc-tabnine"; - version = "1.3.7"; - src = fetchurl { - url = "https://registry.npmjs.org/coc-tabnine/-/coc-tabnine-1.3.7.tgz"; - sha512 = "aLh9A6/r1/1QZT/1lJnaLdShGHRrCCb3HA57UYeFR0cD1xjRY3YupfmsOwVSbpqv6AufEXeOdbA2enoVhRFY8g=="; - }; - buildInputs = globalBuildInputs; - meta = { - description = "tabnine extension for coc.nvim"; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; coc-texlab = nodeEnv.buildNodePackage { name = "coc-texlab"; packageName = "coc-texlab";