From b96b2c33bb5a6209a453206efee1367badf30260 Mon Sep 17 00:00:00 2001 From: dish Date: Wed, 5 Nov 2025 16:42:36 -0500 Subject: [PATCH] coc-pairs: migrate from nodePackages --- .../editors/vim/plugins/cocPlugins.nix | 6 ++++ .../vim/plugins/nodePackagePlugins.nix | 1 - .../co/coc-pairs/package-lock-fix.patch | 28 ++++++++++++++++ pkgs/by-name/co/coc-pairs/package.nix | 32 +++++++++++++++++++ pkgs/by-name/co/coc-pairs/update.sh | 28 ++++++++++++++++ pkgs/development/node-packages/aliases.nix | 1 + .../node-packages/node-packages.json | 1 - .../node-packages/node-packages.nix | 18 ----------- 8 files changed, 95 insertions(+), 20 deletions(-) create mode 100644 pkgs/by-name/co/coc-pairs/package-lock-fix.patch create mode 100644 pkgs/by-name/co/coc-pairs/package.nix create mode 100755 pkgs/by-name/co/coc-pairs/update.sh diff --git a/pkgs/applications/editors/vim/plugins/cocPlugins.nix b/pkgs/applications/editors/vim/plugins/cocPlugins.nix index e0c47aebbed7..a0daa890a590 100644 --- a/pkgs/applications/editors/vim/plugins/cocPlugins.nix +++ b/pkgs/applications/editors/vim/plugins/cocPlugins.nix @@ -19,6 +19,7 @@ coc-json, coc-lists, coc-markdownlint, + coc-pairs, coc-pyright, coc-sh, coc-spell-checker, @@ -120,6 +121,11 @@ final: prev: { src = "${coc-markdownlint}/lib/node_modules/coc-markdownlint"; }; + coc-pairs = buildVimPlugin { + inherit (coc-pairs) pname version meta; + src = "${coc-pairs}/lib/node_modules/coc-pairs"; + }; + coc-pyright = buildVimPlugin { pname = "coc-pyright"; inherit (coc-pyright) version meta; diff --git a/pkgs/applications/editors/vim/plugins/nodePackagePlugins.nix b/pkgs/applications/editors/vim/plugins/nodePackagePlugins.nix index 24a47936201d..75c0b98e19cc 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-pairs" "coc-prettier" "coc-r-lsp" "coc-rust-analyzer" diff --git a/pkgs/by-name/co/coc-pairs/package-lock-fix.patch b/pkgs/by-name/co/coc-pairs/package-lock-fix.patch new file mode 100644 index 000000000000..05f1a8c9970a --- /dev/null +++ b/pkgs/by-name/co/coc-pairs/package-lock-fix.patch @@ -0,0 +1,28 @@ +diff --git c/package-lock.json i/package-lock.json +index ee9b22f..4d693ab 100644 +--- c/package-lock.json ++++ i/package-lock.json +@@ -1,12 +1,12 @@ + { + "name": "coc-pairs", +- "version": "1.5.1", ++ "version": "1.5.2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "coc-pairs", +- "version": "1.5.1", ++ "version": "1.5.2", + "license": "MIT", + "devDependencies": { + "@chemzqm/tsconfig": "^0.0.3", +@@ -20,6 +20,8 @@ + }, + "node_modules/@chemzqm/tsconfig": { + "version": "0.0.3", ++ "resolved": "https://registry.npmjs.org/@chemzqm/tsconfig/-/tsconfig-0.0.3.tgz", ++ "integrity": "sha512-MjF25vbqLYR+S+JJLgBi0vn4gZqv/C87H+yPSlVKEqlIJAJOGJOgFPUFvRS7pdRHqkv2flX/oRxzxhlu2V0X1w==", + "dev": true, + "license": "MIT" + }, diff --git a/pkgs/by-name/co/coc-pairs/package.nix b/pkgs/by-name/co/coc-pairs/package.nix new file mode 100644 index 000000000000..7cd3e79d9533 --- /dev/null +++ b/pkgs/by-name/co/coc-pairs/package.nix @@ -0,0 +1,32 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: + +buildNpmPackage (finalAttrs: { + pname = "coc-pairs"; + version = "1.5.2"; + + src = fetchFromGitHub { + owner = "neoclide"; + repo = "coc-pairs"; + tag = finalAttrs.version; + hash = "sha256-CUNnNS8mRjyVyjFw4dLnFpskdZNn/+UjVwOcuZJkeNw="; + }; + + patches = [ + ./package-lock-fix.patch + ]; + + npmDepsHash = "sha256-yIMed7x5EzJMMhsA/O08kLpVYMujyJq1qol/KilxxTs="; + + passthru.updateScript = ./update.sh; + + meta = { + description = "Basic auto pairs extension for coc.nvim"; + homepage = "https://github.com/neoclide/coc-pairs"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pyrox0 ]; + }; +}) diff --git a/pkgs/by-name/co/coc-pairs/update.sh b/pkgs/by-name/co/coc-pairs/update.sh new file mode 100755 index 000000000000..cd854c58b701 --- /dev/null +++ b/pkgs/by-name/co/coc-pairs/update.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash nodejs nix-update git curl jq + +WORKDIR=$(mktemp -d) +PACKAGE_DIR="$(realpath "$(dirname "$0")")" + +# Get latest tag +NEW_VERSION=$(curl "https://api.github.com/repos/neoclide/coc-pairs/tags" | jq -r '.[] | .name' | sort --version-sort | tail -1) + +if [[ "$UPDATE_NIX_OLD_VERSION" == "$NEW_VERSION" ]]; then + echo "package is up to date: $UPDATE_NIX_OLD_VERSION" + exit 0 +fi + +# Clone source +git clone "https://github.com/neoclide/coc-pairs" -b "$NEW_VERSION" "$WORKDIR/src" +pushd "$WORKDIR/src" +npx --yes npm-package-lock-add-resolved + +# Update package-lock patch +git diff >"$PACKAGE_DIR/package-lock-fix.patch" +popd + +# Run nix-update +nix-update "$UPDATE_NIX_PNAME" + +# Cleanup +rm -rf "$WORKDIR" diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix index b9ad6ef8e292..f41719a54684 100644 --- a/pkgs/development/node-packages/aliases.nix +++ b/pkgs/development/node-packages/aliases.nix @@ -91,6 +91,7 @@ mapAliases { inherit (pkgs) coc-lists; # Added 2025-11-05 inherit (pkgs) coc-markdownlint; # Added 2025-11-05 coc-metals = throw "coc-metals was removed because it was deprecated upstream. vimPlugins.nvim-metals is its official replacement."; # Added 2024-10-16 + inherit (pkgs) coc-pairs; # added 2025-11-05 inherit (pkgs) coc-pyright; # added 2024-07-14 coc-python = throw "coc-python was removed because it was abandoned upstream on 2020-12-24. Upstream now recommends using coc-pyright or coc-jedi instead."; # added 2024-10-15 coc-rls = throw "coc-rls was removed because rls was deprecated in 2022. You should use coc-rust-analyzer instead, as rust-analyzer is maintained."; # added 2025-10-01 diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json index 8e058c6ef2c1..7accc20a6cfd 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-pairs" , "coc-prettier" , "coc-r-lsp" , "coc-rust-analyzer" diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix index 444e0518d246..a81ae174a66b 100644 --- a/pkgs/development/node-packages/node-packages.nix +++ b/pkgs/development/node-packages/node-packages.nix @@ -37686,24 +37686,6 @@ in bypassCache = true; reconstructLock = true; }; - coc-pairs = nodeEnv.buildNodePackage { - name = "coc-pairs"; - packageName = "coc-pairs"; - version = "1.5.1"; - src = fetchurl { - url = "https://registry.npmjs.org/coc-pairs/-/coc-pairs-1.5.1.tgz"; - sha512 = "/wQOKlptsj2KB4yoIBYN3xtTbCKSsGbRdkNAeYCKCQZX0J5uVMFNgo363+k1BVp9KrkWQDlvVluF3Xf1ei8PfA=="; - }; - buildInputs = globalBuildInputs; - meta = { - description = "Auto pair extension for coc.nvim"; - homepage = "https://github.com/neoclide/coc-pairs#readme"; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; coc-prettier = nodeEnv.buildNodePackage { name = "coc-prettier"; packageName = "coc-prettier";