Date: Sun, 31 May 2026 02:08:05 +0000 From: Hiroki Tagato <tagattie@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 612a5fc40fbe - main - editors/vscode: Update to 1.122.1 Message-ID: <6a1b9805.25ec5.6ef887d@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by tagattie: URL: https://cgit.FreeBSD.org/ports/commit/?id=612a5fc40fbee34d7682e13a56d3a85a9c7161f6 commit 612a5fc40fbee34d7682e13a56d3a85a9c7161f6 Author: Hiroki Tagato <tagattie@FreeBSD.org> AuthorDate: 2026-05-31 02:06:03 +0000 Commit: Hiroki Tagato <tagattie@FreeBSD.org> CommitDate: 2026-05-31 02:07:50 +0000 editors/vscode: Update to 1.122.1 While here, update product.json for popular extensions. [1] Changelog: https://code.visualstudio.com/updates/v1_122 Reported by: GitHub (watch releases) Obtained from: https://github.com/VSCodium/vscodium/blob/1.121.03429/product.json [1] --- editors/vscode/Makefile | 10 +- editors/vscode/Makefile.crates | 24 +- editors/vscode/Makefile.reh | 8 +- editors/vscode/Makefile.version | 4 +- editors/vscode/distinfo | 66 ++-- .../files/patch-build_gulpfile.extensions.ts | 6 +- editors/vscode/files/patch-build_gulpfile.reh.ts | 10 +- .../vscode/files/patch-build_gulpfile.vscode.ts | 4 +- editors/vscode/files/patch-build_lib_electron.ts | 4 +- .../files/patch-node-clipboard-rs_Cargo.toml | 6 +- .../files/patch-node-clipboard-rs_src_lib.rs | 397 +++++++++++++++++++-- editors/vscode/files/patch-package.json | 4 +- .../files/patch-src_vs_code_electron-main_app.ts | 4 +- .../files/patch-test_automation_src_electron.ts | 6 +- editors/vscode/files/product.json.extensions | 9 +- editors/vscode/pkg-plist | 195 ++++++---- 16 files changed, 604 insertions(+), 153 deletions(-) diff --git a/editors/vscode/Makefile b/editors/vscode/Makefile index 79e258305e0f..0d0fa5362ace 100644 --- a/editors/vscode/Makefile +++ b/editors/vscode/Makefile @@ -65,7 +65,7 @@ USES= cargo desktop-file-utils display:test electron:39,build,test \ USE_GITHUB= yes GH_ACCOUNT= microsoft # See ${WRKSRC}/node_modules/@github/copilot/clipboard/node_modules/@teddyzhu/clipboard/package.json for node-clipboard-rs version -GH_TUPLE= Teddy-Zhu:node-clipboard-rs:v0.0.5:node_clipboard_rs/node-clipboard-rs +GH_TUPLE= Teddy-Zhu:node-clipboard-rs:v0.0.10:node_clipboard_rs/node-clipboard-rs # See ${WRKSRC}/build/rspack/node_modules/@rspack/binding/package.json for rspack version GH_TUPLE+= web-infra-dev:rspack:v1.7.10:rspack/rspack @@ -228,10 +228,16 @@ pre-build: # copy rg binary file to @vscode/ripgrep node module directory @${MKDIR} ${WRKSRC}/node_modules/@vscode/ripgrep/bin \ ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin \ - ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin + ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin \ + ${WRKSRC}/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} \ + ${WRKSRC}/build/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} \ + ${WRKSRC}/remote/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/node_modules/@vscode/ripgrep/bin ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin + ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} + ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/build/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} + ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/remote/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} # copy rg binary file to @github/copilot node modules directory @${MKDIR} ${WRKSRC}/node_modules/@github/copilot/ripgrep/bin/freebsd-${ELECTRON_ARCH} \ ${WRKSRC}/node_modules/@github/copilot-sdk/node_modules/@github/copilot/ripgrep/bin/freebsd-${ELECTRON_ARCH} \ diff --git a/editors/vscode/Makefile.crates b/editors/vscode/Makefile.crates index ea2fb55d20d4..ed2bf6af18f9 100644 --- a/editors/vscode/Makefile.crates +++ b/editors/vscode/Makefile.crates @@ -27,7 +27,7 @@ CARGO_CRATES= Inflector-0.11.4 \ atomic_refcell-0.1.13 \ auto_impl-1.2.0 \ autocfg-1.4.0 \ - autocfg-1.5.0 \ + autocfg-1.5.1 \ backtrace-0.3.75 \ backtrace-ext-0.2.1 \ base64-0.22.1 \ @@ -70,7 +70,7 @@ CARGO_CRATES= Inflector-0.11.4 \ castaway-0.2.3 \ cbor4ii-1.2.2 \ cc-1.2.46 \ - cc-1.2.62 \ + cc-1.2.63 \ cfg-if-1.0.4 \ chrono-0.4.42 \ ciborium-0.2.2 \ @@ -128,7 +128,7 @@ CARGO_CRATES= Inflector-0.11.4 \ cssparser-macros-0.6.1 \ ctor-0.1.26 \ ctor-0.4.1 \ - ctor-1.0.6 \ + ctor-1.0.7 \ ctor-proc-macro-0.0.5 \ darling-0.20.10 \ darling_core-0.20.10 \ @@ -165,6 +165,7 @@ CARGO_CRATES= Inflector-0.11.4 \ enum-tag-0.3.0 \ enum-tag-macro-0.3.0 \ equivalent-1.0.1 \ + equivalent-1.0.2 \ errno-0.3.10 \ errno-0.3.14 \ error-code-3.3.2 \ @@ -221,7 +222,9 @@ CARGO_CRATES= Inflector-0.11.4 \ hashbrown-0.12.3 \ hashbrown-0.14.5 \ hashbrown-0.15.2 \ + hashbrown-0.15.5 \ hashbrown-0.16.1 \ + hashbrown-0.17.1 \ hashlink-0.10.0 \ heck-0.5.0 \ hermit-abi-0.3.9 \ @@ -252,6 +255,7 @@ CARGO_CRATES= Inflector-0.11.4 \ if_chain-1.0.2 \ image-0.25.10 \ indexmap-2.12.1 \ + indexmap-2.14.0 \ indicatif-0.18.3 \ indoc-2.0.7 \ inotify-0.11.0 \ @@ -294,6 +298,7 @@ CARGO_CRATES= Inflector-0.11.4 \ litemap-0.8.1 \ lock_api-0.4.14 \ log-0.4.22 \ + log-0.4.30 \ loom-0.7.2 \ lru-0.16.2 \ mach2-0.4.2 \ @@ -302,7 +307,7 @@ CARGO_CRATES= Inflector-0.11.4 \ maybe-owned-0.3.4 \ md4-0.10.2 \ memchr-2.7.6 \ - memchr-2.8.0 \ + memchr-2.8.1 \ memfd-0.6.4 \ micromegas-perfetto-0.9.0 \ miette-7.6.0 \ @@ -331,6 +336,7 @@ CARGO_CRATES= Inflector-0.11.4 \ nodejs-built-in-modules-1.0.0 \ nohash-hasher-0.2.0 \ nom-7.1.3 \ + nom-8.0.0 \ normpath-0.2.0 \ notify-8.2.0 \ notify-types-2.0.0 \ @@ -380,6 +386,7 @@ CARGO_CRATES= Inflector-0.11.4 \ pathdiff-0.2.3 \ percent-encoding-2.3.2 \ petgraph-0.7.1 \ + petgraph-0.8.3 \ phf-0.11.2 \ phf_codegen-0.11.2 \ phf_generator-0.11.2 \ @@ -476,6 +483,7 @@ CARGO_CRATES= Inflector-0.11.4 \ sha2-0.10.9 \ sharded-slab-0.1.7 \ shlex-1.3.0 \ + shlex-2.0.1 \ signal-hook-0.3.18 \ signal-hook-registry-1.4.5 \ simd-abstraction-0.7.1 \ @@ -622,6 +630,7 @@ CARGO_CRATES= Inflector-0.11.4 \ tracing-subscriber-0.3.22 \ tracy-client-0.18.4 \ tracy-client-sys-0.26.0 \ + tree_magic_mini-3.2.2 \ triomphe-0.1.14 \ trybuild-1.0.114 \ typenum-1.17.0 \ @@ -678,7 +687,7 @@ CARGO_CRATES= Inflector-0.11.4 \ wast-35.0.2 \ wayland-backend-0.3.15 \ wayland-client-0.31.14 \ - wayland-clipboard-listener-0.3.1 \ + wayland-clipboard-listener-0.6.1 \ wayland-protocols-0.32.12 \ wayland-protocols-wlr-0.3.12 \ wayland-scanner-0.31.10 \ @@ -746,6 +755,7 @@ CARGO_CRATES= Inflector-0.11.4 \ winx-0.36.4 \ wit-bindgen-rt-0.39.0 \ witx-0.9.1 \ + wl-clipboard-rs-0.9.3 \ write16-1.0.0 \ writeable-0.5.5 \ writeable-0.6.2 \ @@ -760,10 +770,10 @@ CARGO_CRATES= Inflector-0.11.4 \ yoke-derive-0.8.1 \ zerocopy-0.7.35 \ zerocopy-0.8.25 \ - zerocopy-0.8.48 \ + zerocopy-0.8.50 \ zerocopy-derive-0.7.35 \ zerocopy-derive-0.8.25 \ - zerocopy-derive-0.8.48 \ + zerocopy-derive-0.8.50 \ zerofrom-0.1.5 \ zerofrom-derive-0.1.5 \ zerotrie-0.2.3 \ diff --git a/editors/vscode/Makefile.reh b/editors/vscode/Makefile.reh index c254a644b1a7..7986bb8cda95 100644 --- a/editors/vscode/Makefile.reh +++ b/editors/vscode/Makefile.reh @@ -39,7 +39,7 @@ USES= cargo electron:env gssapi:mit localbase:ldflags \ USE_GITHUB= yes GH_ACCOUNT= microsoft # See ${WRKSRC}/node_modules/@github/copilot/clipboard/node_modules/@teddyzhu/clipboard/package.json for node-clipboard-rs version -GH_TUPLE= Teddy-Zhu:node-clipboard-rs:v0.0.5:node_clipboard_rs/node-clipboard-rs +GH_TUPLE= Teddy-Zhu:node-clipboard-rs:v0.0.10:node_clipboard_rs/node-clipboard-rs # See ${WRKSRC}/build/rspack/node_modules/@rspack/binding/package.json for rspack version GH_TUPLE+= web-infra-dev:rspack:v1.7.10:rspack/rspack @@ -138,9 +138,13 @@ pre-build: # ${WRKSRC}/build/rspack/node_modules/@rspack/binding/rspack.freebsd-${ELECTRON_ARCH}.node # copy rg binary file to @vscode/ripgrep node module directory @${MKDIR} ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin \ - ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin + ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin \ + ${WRKSRC}/build/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} \ + ${WRKSRC}/remote/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin + ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/build/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} + ${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/remote/node_modules/@vscode/ripgrep-universal/bin/freebsd-${ELECTRON_ARCH} # copy rg binary file to @github/copilot node modules directory @${MKDIR} ${WRKSRC}/remote/node_modules/@github/copilot/ripgrep/bin/freebsd-${NODEJS_ARCH} ${CP} ${LOCALBASE}/bin/rg \ diff --git a/editors/vscode/Makefile.version b/editors/vscode/Makefile.version index f74f17fadebb..d546231ae6d8 100644 --- a/editors/vscode/Makefile.version +++ b/editors/vscode/Makefile.version @@ -1,2 +1,2 @@ -VSCODE_VERSION= 1.121.0 -SOURCE_COMMIT_HASH= 987c9597516278c9fcf10d963a0592ce1384ab93 +VSCODE_VERSION= 1.122.1 +SOURCE_COMMIT_HASH= 8761a5560cfd65fdd19ce7e2bd18dab5c0a4d84e diff --git a/editors/vscode/distinfo b/editors/vscode/distinfo index 07108aefda5a..44a5bc3f844f 100644 --- a/editors/vscode/distinfo +++ b/editors/vscode/distinfo @@ -1,8 +1,8 @@ -TIMESTAMP = 1779435753 -SHA256 (vscode/vscode-node-modules-1.121.0.tar.gz) = be6b049e46305da1669147e4cb9f151063031d2ff8b5f4d01f0d16ac00ea4358 -SIZE (vscode/vscode-node-modules-1.121.0.tar.gz) = 848745096 -SHA256 (vscode/vscode-marketplace-exts-1.121.0.tar.gz) = 5a1e3df535d25822ff5d6e513c322eb84f4a77430e920a7c8d3379eea564aa90 -SIZE (vscode/vscode-marketplace-exts-1.121.0.tar.gz) = 1708423 +TIMESTAMP = 1780139184 +SHA256 (vscode/vscode-node-modules-1.122.1.tar.gz) = 808d60c65ae2c01ed2c5fdf7fb4917c6e106f67d519c16626c8061fbb99fe2d7 +SIZE (vscode/vscode-node-modules-1.122.1.tar.gz) = 1122690861 +SHA256 (vscode/vscode-marketplace-exts-1.122.1.tar.gz) = 01b6017ad2b9a07553a5165424b779590dee8f50bc4511ca706dbaae90fb301a +SIZE (vscode/vscode-marketplace-exts-1.122.1.tar.gz) = 1708441 SHA256 (vscode/rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3 SIZE (vscode/rust/crates/Inflector-0.11.4.crate) = 17438 SHA256 (vscode/rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 @@ -61,8 +61,8 @@ SHA256 (vscode/rust/crates/auto_impl-1.2.0.crate) = 3c87f3f15e7794432337fc718554 SIZE (vscode/rust/crates/auto_impl-1.2.0.crate) = 31013 SHA256 (vscode/rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 SIZE (vscode/rust/crates/autocfg-1.4.0.crate) = 17712 -SHA256 (vscode/rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8 -SIZE (vscode/rust/crates/autocfg-1.5.0.crate) = 18729 +SHA256 (vscode/rust/crates/autocfg-1.5.1.crate) = f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53 +SIZE (vscode/rust/crates/autocfg-1.5.1.crate) = 18911 SHA256 (vscode/rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002 SIZE (vscode/rust/crates/backtrace-0.3.75.crate) = 92665 SHA256 (vscode/rust/crates/backtrace-ext-0.2.1.crate) = 537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50 @@ -147,8 +147,8 @@ SHA256 (vscode/rust/crates/cbor4ii-1.2.2.crate) = faed1a83001dc2c9201451030cc317 SIZE (vscode/rust/crates/cbor4ii-1.2.2.crate) = 34356 SHA256 (vscode/rust/crates/cc-1.2.46.crate) = b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36 SIZE (vscode/rust/crates/cc-1.2.46.crate) = 92306 -SHA256 (vscode/rust/crates/cc-1.2.62.crate) = a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98 -SIZE (vscode/rust/crates/cc-1.2.62.crate) = 97212 +SHA256 (vscode/rust/crates/cc-1.2.63.crate) = 556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f +SIZE (vscode/rust/crates/cc-1.2.63.crate) = 97259 SHA256 (vscode/rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801 SIZE (vscode/rust/crates/cfg-if-1.0.4.crate) = 9360 SHA256 (vscode/rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2 @@ -263,8 +263,8 @@ SHA256 (vscode/rust/crates/ctor-0.1.26.crate) = 6d2301688392eb071b0bf1a37be05c46 SIZE (vscode/rust/crates/ctor-0.1.26.crate) = 10803 SHA256 (vscode/rust/crates/ctor-0.4.1.crate) = 07e9666f4a9a948d4f1dff0c08a4512b0f7c86414b23960104c243c10d79f4c3 SIZE (vscode/rust/crates/ctor-0.4.1.crate) = 13810 -SHA256 (vscode/rust/crates/ctor-1.0.6.crate) = 6d765eb1c0bda10d31e0ea185f5ee15da532d60b0912d2bd1441783439e749c5 -SIZE (vscode/rust/crates/ctor-1.0.6.crate) = 48620 +SHA256 (vscode/rust/crates/ctor-1.0.7.crate) = 01334b89b69ff726750c5ce5073fc8bd860e99aa9a8fc5ca11b04730e3aee97a +SIZE (vscode/rust/crates/ctor-1.0.7.crate) = 48863 SHA256 (vscode/rust/crates/ctor-proc-macro-0.0.5.crate) = 4f211af61d8efdd104f96e57adf5e426ba1bc3ed7a4ead616e15e5881fd79c4d SIZE (vscode/rust/crates/ctor-proc-macro-0.0.5.crate) = 2040 SHA256 (vscode/rust/crates/darling-0.20.10.crate) = 6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989 @@ -337,6 +337,8 @@ SHA256 (vscode/rust/crates/enum-tag-macro-0.3.0.crate) = 1ccd72f8e71e242f7170586 SIZE (vscode/rust/crates/enum-tag-macro-0.3.0.crate) = 3570 SHA256 (vscode/rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 SIZE (vscode/rust/crates/equivalent-1.0.1.crate) = 6615 +SHA256 (vscode/rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (vscode/rust/crates/equivalent-1.0.2.crate) = 7419 SHA256 (vscode/rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d SIZE (vscode/rust/crates/errno-0.3.10.crate) = 11824 SHA256 (vscode/rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb @@ -449,8 +451,12 @@ SHA256 (vscode/rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208 SIZE (vscode/rust/crates/hashbrown-0.14.5.crate) = 141498 SHA256 (vscode/rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289 SIZE (vscode/rust/crates/hashbrown-0.15.2.crate) = 138478 +SHA256 (vscode/rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1 +SIZE (vscode/rust/crates/hashbrown-0.15.5.crate) = 140908 SHA256 (vscode/rust/crates/hashbrown-0.16.1.crate) = 841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100 SIZE (vscode/rust/crates/hashbrown-0.16.1.crate) = 147785 +SHA256 (vscode/rust/crates/hashbrown-0.17.1.crate) = ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a +SIZE (vscode/rust/crates/hashbrown-0.17.1.crate) = 155512 SHA256 (vscode/rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1 SIZE (vscode/rust/crates/hashlink-0.10.0.crate) = 29402 SHA256 (vscode/rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea @@ -511,6 +517,8 @@ SHA256 (vscode/rust/crates/image-0.25.10.crate) = 85ab80394333c02fe689eaf900ab50 SIZE (vscode/rust/crates/image-0.25.10.crate) = 303647 SHA256 (vscode/rust/crates/indexmap-2.12.1.crate) = 0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2 SIZE (vscode/rust/crates/indexmap-2.12.1.crate) = 100184 +SHA256 (vscode/rust/crates/indexmap-2.14.0.crate) = d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9 +SIZE (vscode/rust/crates/indexmap-2.14.0.crate) = 104085 SHA256 (vscode/rust/crates/indicatif-0.18.3.crate) = 9375e112e4b463ec1b1c6c011953545c65a30164fbab5b581df32b3abf0dcb88 SIZE (vscode/rust/crates/indicatif-0.18.3.crate) = 66504 SHA256 (vscode/rust/crates/indoc-2.0.7.crate) = 79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706 @@ -595,6 +603,8 @@ SHA256 (vscode/rust/crates/lock_api-0.4.14.crate) = 224399e74b87b5f3557511d98dff SIZE (vscode/rust/crates/lock_api-0.4.14.crate) = 29249 SHA256 (vscode/rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24 SIZE (vscode/rust/crates/log-0.4.22.crate) = 44027 +SHA256 (vscode/rust/crates/log-0.4.30.crate) = 616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5 +SIZE (vscode/rust/crates/log-0.4.30.crate) = 52400 SHA256 (vscode/rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca SIZE (vscode/rust/crates/loom-0.7.2.crate) = 73989 SHA256 (vscode/rust/crates/lru-0.16.2.crate) = 96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f @@ -611,8 +621,8 @@ SHA256 (vscode/rust/crates/md4-0.10.2.crate) = 7da5ac363534dce5fabf69949225e174f SIZE (vscode/rust/crates/md4-0.10.2.crate) = 9199 SHA256 (vscode/rust/crates/memchr-2.7.6.crate) = f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273 SIZE (vscode/rust/crates/memchr-2.7.6.crate) = 97616 -SHA256 (vscode/rust/crates/memchr-2.8.0.crate) = f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79 -SIZE (vscode/rust/crates/memchr-2.8.0.crate) = 97780 +SHA256 (vscode/rust/crates/memchr-2.8.1.crate) = 6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8 +SIZE (vscode/rust/crates/memchr-2.8.1.crate) = 98743 SHA256 (vscode/rust/crates/memfd-0.6.4.crate) = b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64 SIZE (vscode/rust/crates/memfd-0.6.4.crate) = 12820 SHA256 (vscode/rust/crates/micromegas-perfetto-0.9.0.crate) = cf00fa025e680c9ac4fef886b4448d3cd6eaa6afa09946ff8fcb67f15c73f73c @@ -669,6 +679,8 @@ SHA256 (vscode/rust/crates/nohash-hasher-0.2.0.crate) = 2bf50223579dc7cdcfb3bfca SIZE (vscode/rust/crates/nohash-hasher-0.2.0.crate) = 8051 SHA256 (vscode/rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a SIZE (vscode/rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (vscode/rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405 +SIZE (vscode/rust/crates/nom-8.0.0.crate) = 135590 SHA256 (vscode/rust/crates/normpath-0.2.0.crate) = 2a9da8c9922c35a1033d76f7272dfc2e7ee20392083d75aeea6ced23c6266578 SIZE (vscode/rust/crates/normpath-0.2.0.crate) = 14828 SHA256 (vscode/rust/crates/notify-8.2.0.crate) = 4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3 @@ -767,6 +779,8 @@ SHA256 (vscode/rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a2 SIZE (vscode/rust/crates/percent-encoding-2.3.2.crate) = 11583 SHA256 (vscode/rust/crates/petgraph-0.7.1.crate) = 3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772 SIZE (vscode/rust/crates/petgraph-0.7.1.crate) = 736025 +SHA256 (vscode/rust/crates/petgraph-0.8.3.crate) = 8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455 +SIZE (vscode/rust/crates/petgraph-0.8.3.crate) = 807555 SHA256 (vscode/rust/crates/phf-0.11.2.crate) = ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc SIZE (vscode/rust/crates/phf-0.11.2.crate) = 21569 SHA256 (vscode/rust/crates/phf_codegen-0.11.2.crate) = e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a @@ -959,6 +973,8 @@ SHA256 (vscode/rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592 SIZE (vscode/rust/crates/sharded-slab-0.1.7.crate) = 58227 SHA256 (vscode/rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (vscode/rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (vscode/rust/crates/shlex-2.0.1.crate) = f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba +SIZE (vscode/rust/crates/shlex-2.0.1.crate) = 19332 SHA256 (vscode/rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2 SIZE (vscode/rust/crates/signal-hook-0.3.18.crate) = 50862 SHA256 (vscode/rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410 @@ -1249,6 +1265,8 @@ SHA256 (vscode/rust/crates/tracy-client-0.18.4.crate) = a4f6fc3baeac5d86ab90c772 SIZE (vscode/rust/crates/tracy-client-0.18.4.crate) = 32303 SHA256 (vscode/rust/crates/tracy-client-sys-0.26.0.crate) = 5f9612d9503675b07b244922ea6f6f3cdd88c43add1b3498084613fc88cdf69d SIZE (vscode/rust/crates/tracy-client-sys-0.26.0.crate) = 350285 +SHA256 (vscode/rust/crates/tree_magic_mini-3.2.2.crate) = b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6 +SIZE (vscode/rust/crates/tree_magic_mini-3.2.2.crate) = 16074 SHA256 (vscode/rust/crates/triomphe-0.1.14.crate) = ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85 SIZE (vscode/rust/crates/triomphe-0.1.14.crate) = 30292 SHA256 (vscode/rust/crates/trybuild-1.0.114.crate) = 3e17e807bff86d2a06b52bca4276746584a78375055b6e45843925ce2802b335 @@ -1361,8 +1379,8 @@ SHA256 (vscode/rust/crates/wayland-backend-0.3.15.crate) = 2857dd20b54e916ec7253 SIZE (vscode/rust/crates/wayland-backend-0.3.15.crate) = 79957 SHA256 (vscode/rust/crates/wayland-client-0.31.14.crate) = 645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144 SIZE (vscode/rust/crates/wayland-client-0.31.14.crate) = 68263 -SHA256 (vscode/rust/crates/wayland-clipboard-listener-0.3.1.crate) = 04e1ff259f1ed9022cb6a75cb436554d7da14f98c9e7c036a2e685d4b8730e81 -SIZE (vscode/rust/crates/wayland-clipboard-listener-0.3.1.crate) = 23024 +SHA256 (vscode/rust/crates/wayland-clipboard-listener-0.6.1.crate) = e60206d76740796d9242e7c8e1378badde3bf39b61caa7503609ffc7aa3a7d5c +SIZE (vscode/rust/crates/wayland-clipboard-listener-0.6.1.crate) = 24791 SHA256 (vscode/rust/crates/wayland-protocols-0.32.12.crate) = 563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f SIZE (vscode/rust/crates/wayland-protocols-0.32.12.crate) = 156132 SHA256 (vscode/rust/crates/wayland-protocols-wlr-0.3.12.crate) = eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234 @@ -1497,6 +1515,8 @@ SHA256 (vscode/rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354e SIZE (vscode/rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 SHA256 (vscode/rust/crates/witx-0.9.1.crate) = e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b SIZE (vscode/rust/crates/witx-0.9.1.crate) = 45928 +SHA256 (vscode/rust/crates/wl-clipboard-rs-0.9.3.crate) = e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3 +SIZE (vscode/rust/crates/wl-clipboard-rs-0.9.3.crate) = 39012 SHA256 (vscode/rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 SIZE (vscode/rust/crates/write16-1.0.0.crate) = 7218 SHA256 (vscode/rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 @@ -1525,14 +1545,14 @@ SHA256 (vscode/rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50 SIZE (vscode/rust/crates/zerocopy-0.7.35.crate) = 152645 SHA256 (vscode/rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb SIZE (vscode/rust/crates/zerocopy-0.8.25.crate) = 252714 -SHA256 (vscode/rust/crates/zerocopy-0.8.48.crate) = eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9 -SIZE (vscode/rust/crates/zerocopy-0.8.48.crate) = 287554 +SHA256 (vscode/rust/crates/zerocopy-0.8.50.crate) = 3b065d4f0e55f82fae73202e189638116a87c55ab6b8e6c2721e13dd9d854ad1 +SIZE (vscode/rust/crates/zerocopy-0.8.50.crate) = 287760 SHA256 (vscode/rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e SIZE (vscode/rust/crates/zerocopy-derive-0.7.35.crate) = 37829 SHA256 (vscode/rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef SIZE (vscode/rust/crates/zerocopy-derive-0.8.25.crate) = 87671 -SHA256 (vscode/rust/crates/zerocopy-derive-0.8.48.crate) = 70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4 -SIZE (vscode/rust/crates/zerocopy-derive-0.8.48.crate) = 97646 +SHA256 (vscode/rust/crates/zerocopy-derive-0.8.50.crate) = 0b631b19d36a892ab55420c92dbc83ccd79274f25be714855d3074aa71cab639 +SIZE (vscode/rust/crates/zerocopy-derive-0.8.50.crate) = 97640 SHA256 (vscode/rust/crates/zerofrom-0.1.5.crate) = cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e SIZE (vscode/rust/crates/zerofrom-0.1.5.crate) = 5091 SHA256 (vscode/rust/crates/zerofrom-derive-0.1.5.crate) = 595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808 @@ -1557,9 +1577,9 @@ SHA256 (vscode/rust/crates/zune-jpeg-0.5.15.crate) = 27bc9d5b815bc103f142aa054f5 SIZE (vscode/rust/crates/zune-jpeg-0.5.15.crate) = 88879 SHA256 (vscode/mcountryman-simd-adler32-b279034d9eb554c3e5e0af523db044f08d8297ba_GH0.tar.gz) = 164ce6fb0a7d70c6713de282972e88058ae716b4a61191e63f1b005169c09f74 SIZE (vscode/mcountryman-simd-adler32-b279034d9eb554c3e5e0af523db044f08d8297ba_GH0.tar.gz) = 18095 -SHA256 (vscode/microsoft-vscode-1.121.0_GH0.tar.gz) = e35ec54af68148d70996bcb3bb7d29e7726dee3c01f1a9e4dbd03ab6154b15de -SIZE (vscode/microsoft-vscode-1.121.0_GH0.tar.gz) = 42217839 -SHA256 (vscode/Teddy-Zhu-node-clipboard-rs-v0.0.5_GH0.tar.gz) = 998b7b7709c5d95aca27ba59ca464825a1e48ae9a19c4e52c4f525b6de404755 -SIZE (vscode/Teddy-Zhu-node-clipboard-rs-v0.0.5_GH0.tar.gz) = 1120191 +SHA256 (vscode/microsoft-vscode-1.122.1_GH0.tar.gz) = d7dc639c5c10aafa41b735c48d4b9347a19afb03ef6af3277a6d6af8b711aa7e +SIZE (vscode/microsoft-vscode-1.122.1_GH0.tar.gz) = 42706904 +SHA256 (vscode/Teddy-Zhu-node-clipboard-rs-v0.0.10_GH0.tar.gz) = 11eb5ef78ef1e4f6d6bb85a989eb14050b9cb94166a298a5ce4b5d10b9d8b9d6 +SIZE (vscode/Teddy-Zhu-node-clipboard-rs-v0.0.10_GH0.tar.gz) = 1166414 SHA256 (vscode/web-infra-dev-rspack-v1.7.10_GH0.tar.gz) = 8e9694ca114e58efd038db41c1d6176e5d353da4a6b31f23fd8f3fc683a643ec SIZE (vscode/web-infra-dev-rspack-v1.7.10_GH0.tar.gz) = 11095252 diff --git a/editors/vscode/files/patch-build_gulpfile.extensions.ts b/editors/vscode/files/patch-build_gulpfile.extensions.ts index ae45ded067da..cc726580301b 100644 --- a/editors/vscode/files/patch-build_gulpfile.extensions.ts +++ b/editors/vscode/files/patch-build_gulpfile.extensions.ts @@ -1,6 +1,6 @@ ---- build/gulpfile.extensions.ts.orig 2026-05-05 18:23:50 UTC +--- build/gulpfile.extensions.ts.orig 2026-05-29 07:25:37 UTC +++ build/gulpfile.extensions.ts -@@ -274,7 +274,7 @@ export const compileNonNativeExtensionsBuildTask = tas +@@ -271,7 +271,7 @@ export const compileNonNativeExtensionsBuildTask = tas * @note this does not clean the directory ahead of it. See {@link cleanExtensionsBuildTask} for that. */ export const compileNonNativeExtensionsBuildTask = task.define('compile-non-native-extensions-build', task.series( @@ -8,4 +8,4 @@ + // bundleMarketplaceExtensionsBuildTask, task.define('bundle-non-native-extensions-build', () => ext.packageNonNativeLocalExtensionsStream(false, false).pipe(gulp.dest('.build'))) )); - gulp.task(compileNonNativeExtensionsBuildTask); + task.task(compileNonNativeExtensionsBuildTask); diff --git a/editors/vscode/files/patch-build_gulpfile.reh.ts b/editors/vscode/files/patch-build_gulpfile.reh.ts index 694b51606948..caeb2a84bab6 100644 --- a/editors/vscode/files/patch-build_gulpfile.reh.ts +++ b/editors/vscode/files/patch-build_gulpfile.reh.ts @@ -1,6 +1,6 @@ ---- build/gulpfile.reh.ts.orig 2026-04-29 14:36:44 UTC +--- build/gulpfile.reh.ts.orig 2026-05-29 07:25:37 UTC +++ build/gulpfile.reh.ts -@@ -27,7 +27,7 @@ import rceditCallback from 'rcedit'; +@@ -22,7 +22,7 @@ import rceditCallback from 'rcedit'; import glob from 'glob'; import { promisify } from 'util'; import rceditCallback from 'rcedit'; @@ -9,7 +9,7 @@ import { cleanExtensionsBuildTask, compileNonNativeExtensionsBuildTask, compileNativeExtensionsBuildTask, compileExtensionMediaBuildTask, compileCopilotExtensionBuildTask } from './gulpfile.extensions.ts'; import { vscodeWebResourceIncludes, createVSCodeWebFileContentMapper } from './gulpfile.vscode.web.ts'; import * as cp from 'child_process'; -@@ -327,7 +327,7 @@ function packageTask(type: string, platform: string, a +@@ -321,7 +321,7 @@ function packageTask(type: string, platform: string, a let productJsonContents = ''; const productJsonStream = gulp.src(['product.json'], { base: '.' }) @@ -18,8 +18,8 @@ .pipe(es.through(function (file) { productJsonContents = file.contents.toString(); this.emit('data', file); -@@ -533,7 +533,7 @@ function tweakProductForServerWeb(product: typeof impo - gulp.task(serverTaskCI); +@@ -564,7 +564,7 @@ function tweakProductForServerWeb(product: typeof impo + task.task(serverTaskCI); const serverTask = task.define(`vscode-${type}${dashed(platform)}${dashed(arch)}${dashed(minified)}`, task.series( - compileBuildWithManglingTask, diff --git a/editors/vscode/files/patch-build_gulpfile.vscode.ts b/editors/vscode/files/patch-build_gulpfile.vscode.ts index ca78ed6866fe..c53dce049e4a 100644 --- a/editors/vscode/files/patch-build_gulpfile.vscode.ts +++ b/editors/vscode/files/patch-build_gulpfile.vscode.ts @@ -1,6 +1,6 @@ ---- build/gulpfile.vscode.ts.orig 2026-05-12 20:17:22 UTC +--- build/gulpfile.vscode.ts.orig 2026-05-29 07:25:37 UTC +++ build/gulpfile.vscode.ts -@@ -307,6 +307,7 @@ function packageTask(platform: string, arch: string, s +@@ -304,6 +304,7 @@ function packageTask(platform: string, arch: string, s json.date = readISODate(out); json.checksums = checksums; json.version = version; diff --git a/editors/vscode/files/patch-build_lib_electron.ts b/editors/vscode/files/patch-build_lib_electron.ts index e88a3b276274..dbc1e2670b64 100644 --- a/editors/vscode/files/patch-build_lib_electron.ts +++ b/editors/vscode/files/patch-build_lib_electron.ts @@ -1,6 +1,6 @@ ---- build/lib/electron.ts.orig 2026-03-06 23:06:10 UTC +--- build/lib/electron.ts.orig 2026-05-29 07:25:37 UTC +++ build/lib/electron.ts -@@ -204,10 +204,11 @@ export const config = { +@@ -203,10 +203,11 @@ export const config = { winIcon: 'resources/win32/code.ico', token: process.env['GITHUB_TOKEN'], repo: product.electronRepository || undefined, diff --git a/editors/vscode/files/patch-node-clipboard-rs_Cargo.toml b/editors/vscode/files/patch-node-clipboard-rs_Cargo.toml index d505f2194503..c2e66cccce85 100644 --- a/editors/vscode/files/patch-node-clipboard-rs_Cargo.toml +++ b/editors/vscode/files/patch-node-clipboard-rs_Cargo.toml @@ -1,4 +1,4 @@ ---- node-clipboard-rs/Cargo.toml.orig 2025-07-25 09:14:50 UTC +--- node-clipboard-rs/Cargo.toml.orig 2026-03-04 05:28:38 UTC +++ node-clipboard-rs/Cargo.toml @@ -16,7 +16,7 @@ tokio = { version = "1.0", features = ["rt", "r tokio = { version = "1.0", features = ["rt", "rt-multi-thread"] } @@ -6,6 +6,6 @@ # 仅在 Linux 平台上引入 wayland-clipboard-listener -[target.'cfg(target_os = "linux")'.dependencies] +[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies] - wayland-clipboard-listener = "0.3.1" + wayland-clipboard-listener = "0.6.0" + wl-clipboard-rs = "0.9.3" - [build-dependencies] diff --git a/editors/vscode/files/patch-node-clipboard-rs_src_lib.rs b/editors/vscode/files/patch-node-clipboard-rs_src_lib.rs index a70063eb591c..1311bdf21599 100644 --- a/editors/vscode/files/patch-node-clipboard-rs_src_lib.rs +++ b/editors/vscode/files/patch-node-clipboard-rs_src_lib.rs @@ -1,20 +1,22 @@ ---- node-clipboard-rs/src/lib.rs.orig 2026-03-30 13:27:40 UTC +--- node-clipboard-rs/src/lib.rs.orig 2026-03-04 05:28:38 UTC +++ node-clipboard-rs/src/lib.rs -@@ -12,11 +12,11 @@ use std::thread; +@@ -12,7 +12,7 @@ use std::thread; + use std::sync::OnceLock; use std::thread; - // 仅在 Linux 下导入 Wayland 相关依赖 -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "freebsd"))] - use wayland_clipboard_listener::{ClipBoardListenMessage, WlClipboardPasteStream, WlListenType}; + mod wayland; + + pub(crate) fn is_debug_logging_enabled() -> bool { +@@ -39,13 +39,13 @@ macro_rules! listener_log { + }}; + } - /// 检测当前环境是否为 Wayland -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "freebsd"))] fn is_wayland_environment() -> bool { - // 检查 WAYLAND_DISPLAY 环境变量 - if std::env::var("WAYLAND_DISPLAY").is_ok() { -@@ -34,7 +34,7 @@ fn is_wayland_environment() -> bool { + wayland::is_wayland_environment() } /// 非 Linux 平台的 Wayland 环境检测(总是返回 false) @@ -23,17 +25,14 @@ fn is_wayland_environment() -> bool { false } -@@ -44,7 +44,7 @@ pub fn is_wayland_clipboard_available() -> bool { +@@ -55,12 +55,12 @@ pub fn is_wayland_clipboard_available() -> bool { /// 返回 true 表示当前环境支持 Wayland 剪贴板监听 #[napi] pub fn is_wayland_clipboard_available() -> bool { - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "freebsd"))] { - if !is_wayland_environment() { - return false; -@@ -54,7 +54,7 @@ pub fn is_wayland_clipboard_available() -> bool { - WlClipboardPasteStream::init(WlListenType::ListenOnCopy).is_ok() + wayland::is_wayland_clipboard_available() } - #[cfg(not(target_os = "linux"))] @@ -41,16 +40,358 @@ { false } -@@ -820,7 +820,7 @@ pub fn clear_clipboard() -> Result<()> { - } +@@ -174,7 +174,7 @@ impl ClipboardManager { + /// 获取剪贴板中的纯文本内容 + #[napi] + pub fn get_text(&self) -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_text() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get text: {e}"))); +@@ -189,7 +189,7 @@ impl ClipboardManager { + /// 设置剪贴板中的纯文本内容 + #[napi] + pub fn set_text(&self, text: String) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_text(text) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set text: {e}"))); +@@ -204,7 +204,7 @@ impl ClipboardManager { + /// 获取剪贴板中的 HTML 内容 + #[napi] + pub fn get_html(&self) -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_html() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get HTML: {e}"))); +@@ -219,7 +219,7 @@ impl ClipboardManager { + /// 设置剪贴板中的 HTML 内容 + #[napi] + pub fn set_html(&self, html: String) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_html(html) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set HTML: {e}"))); +@@ -234,7 +234,7 @@ impl ClipboardManager { + /// 获取剪贴板中的富文本内容 + #[napi] + pub fn get_rich_text(&self) -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_rich_text().map_err(|e| { + Error::new( +@@ -256,7 +256,7 @@ impl ClipboardManager { + /// 设置剪贴板中的富文本内容 + #[napi] + pub fn set_rich_text(&self, text: String) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_rich_text(text).map_err(|e| { + Error::new( +@@ -278,7 +278,7 @@ impl ClipboardManager { + /// 获取剪贴板中的图片数据(以 base64 编码返回) + #[napi] + pub fn get_image_base64(&self) -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let image_data = wayland::get_image_raw() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get image: {e}")))?; +@@ -298,7 +298,7 @@ impl ClipboardManager { + /// 获取剪贴板中的图片详细信息(包含宽度、高度、大小和原始数据) + #[napi] + pub fn get_image_data(&self) -> Result<ImageData> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let image_data = wayland::get_image_raw() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get image: {e}")))?; +@@ -334,7 +334,7 @@ impl ClipboardManager { + ) + })?; - /// 将 Wayland 剪贴板消息转换为我们的 ClipboardData 格式 --#[cfg(target_os = "linux")] -+#[cfg(any(target_os = "linux", target_os = "freebsd"))] - fn wayland_context_to_clipboard_data(message: ClipBoardListenMessage) -> ClipboardData { - let mut available_formats = Vec::new(); - let mut text = None; -@@ -942,7 +942,7 @@ enum ListenerType { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let png_bytes = image_to_png_bytes(&rust_image, "Failed to set image")?; + return wayland::set_image_raw(png_bytes) +@@ -357,7 +357,7 @@ impl ClipboardManager { + ) + })?; + +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let png_bytes = image_to_png_bytes(&rust_image, "Failed to set image")?; + return wayland::set_image_raw(png_bytes) +@@ -373,7 +373,7 @@ impl ClipboardManager { + /// 获取剪贴板中的图片原始数据(Buffer) + #[napi] + pub fn get_image_raw(&self) -> Result<Buffer> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let image_data = wayland::get_image_raw() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get image: {e}")))?; +@@ -393,7 +393,7 @@ impl ClipboardManager { + /// 获取剪贴板中的文件列表 + #[napi] + pub fn get_files(&self) -> Result<Vec<String>> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_files() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get files: {e}"))); +@@ -408,7 +408,7 @@ impl ClipboardManager { + /// 设置剪贴板中的文件列表 + #[napi] + pub fn set_files(&self, files: Vec<String>) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_files(files) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set files: {e}"))); +@@ -423,7 +423,7 @@ impl ClipboardManager { + /// 设置剪贴板中的自定义格式数据 + #[napi] + pub fn set_buffer(&self, format: String, buffer: Buffer) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_buffer(format, buffer.to_vec()) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set buffer: {e}"))); +@@ -438,7 +438,7 @@ impl ClipboardManager { + /// 获取剪贴板中的自定义格式数据 + #[napi] + pub fn get_buffer(&self, format: String) -> Result<Buffer> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let data = wayland::get_buffer(format) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get buffer: {e}")))?; +@@ -455,7 +455,7 @@ impl ClipboardManager { + /// 设置剪贴板中的复合内容(可同时设置多种格式) + #[napi] + pub fn set_contents(&self, contents: ClipboardData) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_contents(contents).map_err(|e| { + Error::new( +@@ -522,7 +522,7 @@ impl ClipboardManager { + } + }; + +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::has_format(normalized_format).map_err(|e| { + Error::new( +@@ -548,7 +548,7 @@ impl ClipboardManager { + /// 获取剪贴板中所有可用的格式 + #[napi] + pub fn get_available_formats(&self) -> Result<Vec<String>> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_available_formats().map_err(|e| { + Error::new( +@@ -570,7 +570,7 @@ impl ClipboardManager { + /// 清空剪贴板 + #[napi] + pub fn clear(&self) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::clear().map_err(|e| { + Error::new( +@@ -592,7 +592,7 @@ impl ClipboardManager { + /// 异步获取剪贴板文本内容 + #[napi] + pub async fn get_text_async(&self) -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return tokio::task::spawn_blocking(move || { + wayland::get_text() +@@ -621,7 +621,7 @@ impl ClipboardManager { + /// 异步设置剪贴板文本内容 + #[napi] + pub async fn set_text_async(&self, text: String) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return tokio::task::spawn_blocking(move || { + wayland::set_text(text) +@@ -650,7 +650,7 @@ impl ClipboardManager { + /// 异步获取剪贴板图片数据(以 base64 编码返回) + #[napi] + pub async fn get_image_base64_async(&self) -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return tokio::task::spawn_blocking(move || { + let image_data = wayland::get_image_raw() +@@ -683,7 +683,7 @@ impl ClipboardManager { + /// 异步获取剪贴板图片详细信息(包含宽度、高度、大小和原始数据) + #[napi] + pub async fn get_image_data_async(&self) -> Result<ImageData> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return tokio::task::spawn_blocking(move || { + let image_data = wayland::get_image_raw() +@@ -725,7 +725,7 @@ pub fn get_clipboard_text() -> Result<String> { + /// 快速获取剪贴板文本内容 + #[napi] + pub fn get_clipboard_text() -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_text() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get text: {e}"))); +@@ -746,7 +746,7 @@ pub fn set_clipboard_text(text: String) -> Result<()> + /// 快速设置剪贴板文本内容 + #[napi] + pub fn set_clipboard_text(text: String) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_text(text) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set text: {e}"))); +@@ -767,7 +767,7 @@ pub fn get_clipboard_html() -> Result<String> { + /// 快速获取剪贴板 HTML 内容 + #[napi] + pub fn get_clipboard_html() -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_html() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get HTML: {e}"))); +@@ -788,7 +788,7 @@ pub fn set_clipboard_html(html: String) -> Result<()> + /// 快速设置剪贴板 HTML 内容 + #[napi] + pub fn set_clipboard_html(html: String) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_html(html) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set HTML: {e}"))); +@@ -809,7 +809,7 @@ pub fn get_clipboard_image() -> Result<String> { + /// 快速获取剪贴板图片(base64 编码) + #[napi] + pub fn get_clipboard_image() -> Result<String> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let image_data = wayland::get_image_raw() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get image: {e}")))?; +@@ -835,7 +835,7 @@ pub fn get_clipboard_image_data() -> Result<ImageData> + /// 快速获取剪贴板图片详细信息(包含宽度、高度、大小和原始数据) + #[napi] + pub fn get_clipboard_image_data() -> Result<ImageData> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let image_data = wayland::get_image_raw() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get image: {e}")))?; +@@ -877,7 +877,7 @@ pub fn set_clipboard_image(base64_data: String) -> Res + ) + })?; + +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let png_bytes = image_to_png_bytes(&rust_image, "Failed to set image")?; + return wayland::set_image_raw(png_bytes) +@@ -906,7 +906,7 @@ pub fn set_clipboard_image_raw(image_data: Buffer) -> + ) + })?; + +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let png_bytes = image_to_png_bytes(&rust_image, "Failed to set image")?; + return wayland::set_image_raw(png_bytes) +@@ -928,7 +928,7 @@ pub fn get_clipboard_image_raw() -> Result<Buffer> { + /// 快速获取剪贴板图片原始数据(Buffer) + #[napi] + pub fn get_clipboard_image_raw() -> Result<Buffer> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let image_data = wayland::get_image_raw() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get image: {e}")))?; +@@ -954,7 +954,7 @@ pub fn set_clipboard_buffer(format: String, buffer: Bu + /// 快速设置剪贴板自定义格式数据 + #[napi] + pub fn set_clipboard_buffer(format: String, buffer: Buffer) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_buffer(format, buffer.to_vec()) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set buffer: {e}"))); +@@ -975,7 +975,7 @@ pub fn get_clipboard_buffer(format: String) -> Result< + /// 快速获取剪贴板自定义格式数据 + #[napi] + pub fn get_clipboard_buffer(format: String) -> Result<Buffer> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + let data = wayland::get_buffer(format) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get buffer: {e}")))?; +@@ -998,7 +998,7 @@ pub fn set_clipboard_files(files: Vec<String>) -> Resu + /// 快速设置剪贴板文件列表 + #[napi] + pub fn set_clipboard_files(files: Vec<String>) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_files(files) + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to set files: {e}"))); +@@ -1019,7 +1019,7 @@ pub fn get_clipboard_files() -> Result<Vec<String>> { + /// 快速获取剪贴板文件列表 + #[napi] + pub fn get_clipboard_files() -> Result<Vec<String>> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_files() + .map_err(|e| Error::new(Status::GenericFailure, format!("Failed to get files: {e}"))); +@@ -1040,7 +1040,7 @@ pub fn set_clipboard_contents(contents: ClipboardData) + /// 快速设置剪贴板复合内容(可同时设置多种格式) + #[napi] + pub fn set_clipboard_contents(contents: ClipboardData) -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::set_contents(contents).map_err(|e| { + Error::new( +@@ -1099,7 +1099,7 @@ pub fn get_full_clipboard_data() -> Result<ClipboardDa + /// 快速获取完整的剪贴板数据 + #[napi] + pub fn get_full_clipboard_data() -> Result<ClipboardData> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::get_full_clipboard_data().map_err(|e| { + Error::new( +@@ -1122,7 +1122,7 @@ pub fn clear_clipboard() -> Result<()> { + /// 快速清空剪贴板 + #[napi] + pub fn clear_clipboard() -> Result<()> { +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if is_wayland_environment() { + return wayland::clear().map_err(|e| { + Error::new( +@@ -1219,7 +1219,7 @@ enum ListenerType { /// 使用 clipboard_rs 监听器(X11/通用) ClipboardRs(clipboard_rs::WatcherShutdown), /// 使用 Wayland 专用监听器(仅 Linux) @@ -59,7 +400,7 @@ Wayland(std::sync::mpsc::Sender<()>), } -@@ -1007,7 +1007,7 @@ impl ClipboardListener { +@@ -1300,7 +1300,7 @@ impl ClipboardListener { } /// 使用 Wayland 专用监听器监听剪贴板变化 @@ -68,7 +409,7 @@ fn watch_wayland( &mut self, tsfn: ThreadsafeFunction<ClipboardData, (), ClipboardData, napi::Status, false>, -@@ -1053,7 +1053,7 @@ impl ClipboardListener { +@@ -1316,7 +1316,7 @@ impl ClipboardListener { } /// 非 Linux 平台的 Wayland 监听器(空实现) @@ -77,12 +418,12 @@ fn watch_wayland( &mut self, _tsfn: ThreadsafeFunction<ClipboardData, (), ClipboardData, napi::Status, false>, -@@ -1132,7 +1132,7 @@ impl ClipboardListener { - ListenerType::ClipboardRs(shutdown) => { +@@ -1429,7 +1429,7 @@ impl ClipboardListener { + listener_log!("stop called for generic listener"); shutdown.stop(); } - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "freebsd"))] ListenerType::Wayland(stop_tx) => { - let _ = stop_tx.send(()); - } + listener_log!("stop called for wayland listener"); + if let Err(e) = stop_tx.send(()) { *** 567 LINES SKIPPED ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a1b9805.25ec5.6ef887d>
