Compare commits

...

153 Commits

Author SHA1 Message Date
Baptiste Augrain
94f90090cb
build(stable): update to commit c9d7799 2026-02-01 19:38:53 +00:00
Baptiste Augrain
412aa78881
docs: update accouncements [skip ci] 2026-01-15 17:34:13 +01:00
Baptiste Augrain
a199c0a529
feat(1.108): update patches (#2666) 2026-01-15 00:11:58 +01:00
Baptiste Augrain
cf437da521
build(1.108): update 2026-01-14 23:08:11 +01:00
Baptiste Augrain
e8ec5e2452
improve(ci): target insider branch (#2663) 2026-01-14 12:23:06 +01:00
Baptiste Augrain
2b2bef0927
fix(windows): remove versioned resources (#2664) 2026-01-14 12:06:27 +01:00
dependabot[bot]
17b5b6ed50
build(deps): bump dessant/lock-threads from 5 to 6 (#2630) 2026-01-14 10:12:42 +01:00
dependabot[bot]
72b795d984
build(deps): bump actions/download-artifact from 6 to 7 (#2629) 2026-01-14 10:12:21 +01:00
dependabot[bot]
71afd18e59
build(deps): bump actions/upload-artifact from 5 to 6 (#2628) 2026-01-14 10:11:59 +01:00
Baptiste Augrain
7d910f4077
feat(1.108): update patches (#2662) 2026-01-14 03:26:26 +01:00
Baptiste Augrain
fc8f76ad58
fix(windows): remove blocking code for versioned setup (#2658) 2026-01-07 23:25:34 +01:00
dependabot[bot]
a5210af800
build(deps): bump egor-tensin/setup-gcc from 1 to 2 (#2654) 2026-01-05 15:03:11 +01:00
Baptiste Augrain
3bf7629f7a
ci: lock closed old discussions 2026-01-02 16:14:25 +01:00
Baptiste Augrain
bfaa0ebd4e
fix(ci): use x64 runner for macos x64 (#2645) 2025-12-25 12:37:36 +01:00
Baptiste Augrain
fe63a5a5d9
feat(1.107): merge insider into stable 2025-12-24 13:58:00 +01:00
Baptiste Augrain
7224e53e62
feat: update upstream version 2025-12-24 12:22:10 +01:00
Baptiste Augrain
962f1ac04c
fix(ci): update stable workflows 2025-12-24 12:21:36 +01:00
Baptiste Augrain
7656ee4017
Merge branch 'insider' into merge-1107 2025-12-24 12:15:15 +01:00
Baptiste Augrain
a053a4a5c2
docs: remove extra announcement (#2641) 2025-12-24 12:13:44 +01:00
Baptiste Augrain
0079f51fe2
docs(linux): add troubleshooting for bad egl driver [skip ci] 2025-12-24 01:13:23 +01:00
darkyzhou
47c5d7d549
build: update LOONG64 image from beige to crimson (#2640) 2025-12-24 01:05:45 +01:00
Baptiste Augrain
26fd8577a7
docs: add announcement 2025-12-22 14:28:20 +01:00
Baptiste Augrain
9931513623
fix: apply replacement [skip ci] 2025-12-21 18:36:47 +01:00
Baptiste Augrain
de5bd6bf1f
fix: personalize global policy file (#2638) 2025-12-21 17:17:23 +01:00
Baptiste Augrain
de91c92a23
feat: update electron to 39.2.7 (#2637) 2025-12-21 16:26:42 +01:00
Baptiste Augrain
c0d5246c70
feat(linux): use XDG_STATE_HOME for logs (#2636) 2025-12-21 13:45:02 +01:00
Baptiste Augrain
63fad3ddfa
Merge branch 'master' into insider 2025-12-21 11:19:06 +01:00
Baptiste Augrain
d54958e349
fix(windows): disable versioned resources (#2633) 2025-12-19 10:04:53 +01:00
Baptiste Augrain
dc3ffab8bf
feat: update patches (#2632) 2025-12-18 13:46:43 +01:00
Baptiste Augrain
a80048c451
feat(1.107): improvements (#2631) 2025-12-17 23:53:37 +01:00
Baptiste Augrain
26ee7024a2
fix(macos): use sign.ts 2025-12-17 18:48:35 +01:00
Baptiste Augrain
895ada1ac1
feat(1.107): update patches and build (#2618) 2025-12-17 15:59:58 +01:00
Baptiste Augrain
cc1a3ef5bd
fix: re-add usersync service (#2612) 2025-11-27 00:00:52 +01:00
Baptiste Augrain
163fff4742
fix: don't try to load missing vsda library (#2613) 2025-11-26 23:56:30 +01:00
Baptiste Augrain
79adc487cb
build(stable): update to commit bf9252a 2025-11-26 18:28:15 +00:00
dependabot[bot]
b69846f794
build(deps): bump actions/checkout from 5 to 6 (#2609) 2025-11-24 15:15:48 +01:00
Baptiste Augrain
42ab5a8aa3
feat(1.106): use newer electron (#2606) 2025-11-21 18:40:05 +01:00
Baptiste Augrain
846096bd53
Merge branch 'insider' 2025-11-21 17:17:09 +01:00
Baptiste Augrain
3981f5dcb8
build(insider): update to commit ac4cbdf 2025-11-12 07:28:13 +00:00
Baptiste Augrain
4ecf45044e
docs: add copilot howto 2025-11-11 17:52:25 +01:00
Quentin Dreyer
cec35aab94
feat: add extensionsEnabledWithApiProposalVersion to product.json (#2598) 2025-11-11 14:12:48 +01:00
Baptiste Augrain
6901a0ca2b
build(insider): update to commit c5a35b4 2025-11-11 07:32:26 +00:00
Baptiste Augrain
ca9b356c3b
build(insider): update to commit 48cdf17 2025-11-08 07:34:03 +00:00
Baptiste Augrain
8d8db1de1b
fix(update): avoid extra connection on manual mode (#2597) 2025-11-08 02:48:10 +01:00
Baptiste Augrain
53ff95933c
fix(icon): increase macos max size (#2596) 2025-11-07 21:54:55 +01:00
Baptiste Augrain
39be6d3a95
fix(cli): load user's product.json (#2595) 2025-11-07 21:50:20 +01:00
Baptiste Augrain
f7de31a582
feat(1.106): update patches 2025-11-07 15:28:08 +01:00
Baptiste Augrain
ccb2819b25
feat(1.106): update patches (#2590) 2025-11-03 17:48:45 +01:00
dependabot[bot]
d2cdc6e515
build(deps): bump actions/download-artifact from 5 to 6 (#2581) 2025-10-27 15:40:16 +01:00
dependabot[bot]
b88fdc76f5
build(deps): bump actions/upload-artifact from 4 to 5 (#2580) 2025-10-27 15:40:04 +01:00
dependabot[bot]
f2f1594771
build(deps): bump signpath/github-action-submit-signing-request (#2579) 2025-10-27 15:39:45 +01:00
dependabot[bot]
88f558aafc
build(deps): bump actions/setup-node from 5 to 6 (#2568) 2025-10-20 16:15:07 +02:00
Baptiste Augrain
11b807517c
fix(copilot): use disableAIFeatures setting instead of installed property (#2567) 2025-10-20 16:14:44 +02:00
Baptiste Augrain
9664f9e77d
build: don't use product.json to get TUNNEL_APP_NAME [skip ci] 2025-10-19 23:39:38 +02:00
Baptiste Augrain
5993ddb3a5
fix(copilot): add installed condition to all actions or menus (#2563) 2025-10-19 10:19:21 +02:00
Baptiste Augrain
59e21c9cc6
feat: disable broken features (#2562) 2025-10-18 15:23:58 +02:00
Tiagoquix
2fccc0e2fe
docs: improve telemetry doc (#2534)
Improvements to the update services section plus other minor overall improvements
2025-10-18 15:23:34 +02:00
Baptiste Augrain
51ad421762
fix: use correct binary name (#2561) 2025-10-18 15:19:00 +02:00
Baptiste Augrain
646b42473b
feat: disable Copilot UI elements (#2560) 2025-10-18 12:50:01 +02:00
Baptiste Augrain
068f270488
build(stable): update to commit 7d842fb 2025-10-16 18:23:22 +00:00
Baptiste Augrain
4ba37835b2
fix(snap): re-add desktop entries (#2553) 2025-10-15 01:57:31 +02:00
Baptiste Augrain
2487cd7ce2
docs: fix typo 2025-10-14 13:56:17 +02:00
dependabot[bot]
75df078e52
build(deps): bump peter-evans/repository-dispatch from 3 to 4 (#2537) 2025-10-13 04:16:01 +02:00
darkyzhou
9061e7e264
feat(loong64): use tonistiigi/binfmt:latest (#2549) 2025-10-13 04:15:05 +02:00
Baptiste Augrain
adef3f0534
fix(snap): use correct channel [skip ci] 2025-10-12 16:05:45 +02:00
Baptiste Augrain
dab94316d5
ci: add missing en variable [skip ci] 2025-10-10 19:14:51 +02:00
Baptiste Augrain
60b7a4640e
fix(1.105): move new feat/fixes to stable [skip ci] 2025-10-10 18:22:47 +02:00
Baptiste Augrain
f81d3d53ad
feat(1.105): update version [skip ci] 2025-10-10 17:41:27 +02:00
Baptiste Augrain
a95e1ff14f
Merge branch 'insider' 2025-10-10 16:56:41 +02:00
Baptiste Augrain
36270ef9c3
feat: regroup sourcemaps in a single file [skip ci] 2025-10-10 16:54:26 +02:00
Baptiste Augrain
c0ac4bd72e
fix(sourcemap): add quality to sourcemaps release [skip ci] 2025-10-09 14:10:02 +02:00
Baptiste Augrain
f60f14d085
ci: add missing env variables [skip ci] 2025-10-09 11:53:44 +02:00
Baptiste Augrain
a9167d21e2
feat: move and upload sourcemaps (#2545) 2025-10-09 11:29:59 +02:00
Baptiste Augrain
e1f7642bcb
feat(insider): generate buildinfo.json to track versions (#2544) 2025-10-09 03:18:19 +02:00
Baptiste Augrain
94a6ad5495
fix(snap): fix snapcraft build files (#2543) 2025-10-09 02:29:58 +02:00
Baptiste Augrain
73046b84aa
feat(1.105): update patches (#2541) 2025-10-08 19:58:19 +02:00
Baptiste Augrain
22d1929f41
fix(1.104.3): update patch (#2532) 2025-10-04 16:21:56 +02:00
jermanuts
6264d064e4
i18n: add arabic translation .desktop (#2520) 2025-10-04 15:39:37 +02:00
Baptiste Augrain
578df58363
fix(linux): patch dependencies [skip ci] 2025-09-30 14:54:46 +02:00
Baptiste Augrain
20382726b4
fix(linux): patch dependencies [skip ci] 2025-09-30 14:32:06 +02:00
Baptiste Augrain
b943cab988
build(insider): update to commit 9f2fcb6 2025-09-30 11:32:47 +00:00
Baptiste Augrain
a69d10fa91
feat(1.105): update patches (#2529) 2025-09-30 12:35:06 +02:00
Ryan Brue
ac024726a3
docs(telemetry): fix a small typo (#2528) 2025-09-29 22:09:07 +02:00
Baptiste Augrain
e3c3b6fdf7
build(stable): update to commit e3a5acf 2025-09-25 18:27:53 +00:00
Baptiste Augrain
fbdc680c69
build(stable): update to commit 0f0d87f 2025-09-18 18:26:28 +00:00
Baptiste Augrain
dd8511cc6b
feat: set update.mode to none when updates are disabled (#2507) 2025-09-12 13:02:55 +02:00
Tiagoquix
f6b143dbd6
docs: improve telemetry page (#2504) 2025-09-12 12:27:22 +02:00
Baptiste Augrain
cde9fd233a
fix: gallery (#2506) 2025-09-12 12:18:47 +02:00
Baptiste Augrain
284d83b24e
fix: update api proposals [skip ci] 2025-09-12 11:16:02 +02:00
Baptiste Augrain
8cc366bb76
fix(telemetry): disable workbench.enableExperiments by default [skip ci] 2025-09-11 19:59:35 +02:00
Baptiste Augrain
4c2b2b8a79
build(stable): update to commit f220831 2025-09-11 17:49:46 +00:00
Baptiste Augrain
8e49f5f8b1
Merge branch 'insider' 2025-09-11 19:11:58 +02:00
Baptiste Augrain
0ac07d6fcc
enhance(icons): improve icons generator [skip ci] 2025-09-11 17:58:19 +02:00
Baptiste Augrain
bf53c50a5b
refactor(telemetry): use patch instead of script (#2502) 2025-09-10 12:43:36 +02:00
Baptiste Augrain
d0973e3104
build(insider): update to commit f220831 2025-09-10 07:29:10 +00:00
Baptiste Augrain
8e10409b4a
build(insider): update to commit d1d3e55 2025-09-09 07:30:16 +00:00
dependabot[bot]
bcd3d6bffa
build(deps): bump actions/setup-node from 4 to 5 (#2496) 2025-09-08 16:35:37 +02:00
dependabot[bot]
b3c1e8901a
build(deps): bump actions/setup-python from 5 to 6 (#2495) 2025-09-08 16:34:48 +02:00
dependabot[bot]
c2cff308aa
build(deps): bump actions/stale from 9 to 10 (#2494) 2025-09-08 16:33:49 +02:00
Baptiste Augrain
0d1fecf0d4
build(insider): update to commit e296bdf 2025-09-08 07:22:04 +00:00
Baptiste Augrain
5bf3fdcc05
build(insider): update to commit 06acd06 2025-09-06 07:20:26 +00:00
Baptiste Augrain
acf298a9c2
ci: use windows-2022 2025-09-05 17:40:45 +02:00
Baptiste Augrain
2d9bbfb2f3
build(insider): update to commit 7be2a0b 2025-09-05 07:24:14 +00:00
Baptiste Augrain
9d798626aa
build(insider): update to commit 8bdbcf0 2025-09-04 07:20:54 +00:00
Baptiste Augrain
f574039dc4
enhance: improve command filter (#2492) 2025-09-03 16:20:23 +02:00
Baptiste Augrain
e648323548
feat(1.104): update patch 2025-09-03 12:52:09 +02:00
Baptiste Augrain
bc2c678d47
feat(1.104): update patches (#2491) 2025-09-02 16:10:01 +02:00
Baptiste Augrain
69fe88f58c
Merge branch 'master' into insider 2025-08-31 11:18:00 +02:00
Baptiste Augrain
43d4061cec
feat: filters commands (#2487) 2025-08-31 11:00:00 +02:00
Baptiste Augrain
471a81e89f
feat(1.104): update patches (#2486) 2025-08-31 09:58:04 +02:00
Baptiste Augrain
e84017f36b
build(stable): update to commit 6f17636 2025-08-21 18:24:46 +00:00
dependabot[bot]
e494154c9b
build(deps): bump actions/checkout from 4 to 5 (#2472) 2025-08-18 21:12:19 +02:00
Baptiste Augrain
dc302f89af
fix(linux-reh-x64): rebuild node modules due to glibc2.17 node runtime (#2473) 2025-08-18 21:11:59 +02:00
Baptiste Augrain
0545b56f6f
chore: remove commented code [skip ci] 2025-08-18 16:03:43 +02:00
Baptiste Augrain
914f0da189
chore(linux-reh-x86): streamline to only necessary* changes (#2471) 2025-08-18 14:49:58 +02:00
Baptiste Augrain
a3bf4232ba
wip(linux-reh-x64): add cxx11 verification (#2467) 2025-08-18 11:50:53 +02:00
Baptiste Augrain
23683879d3
build(insider): update to commit 09401e7 2025-08-18 07:25:36 +00:00
Baptiste Augrain
177bb9032d
build(insider): update to commit 0ab18bd 2025-08-15 12:52:51 +00:00
Baptiste Augrain
7245ccb8bd
fix(linux-reh-x86): use unofficial nodejs to build archive (#2465) 2025-08-15 14:10:03 +02:00
Baptiste Augrain
166e10c23b
build(insider): update to commit 308b074 2025-08-15 07:23:20 +00:00
Baptiste Augrain
69fee0be29
build(insider): update to commit a61e381 2025-08-14 22:54:26 +00:00
Baptiste Augrain
68d5becf4d
fix(linux-reh-x86): rebuild libs (#2464) 2025-08-15 00:19:15 +02:00
Baptiste Augrain
a425c2ca5d
build(insider): update to commit 3b51103 2025-08-14 07:22:46 +00:00
Baptiste Augrain
9b20ef5f08
build(stable): update to commit 360a4e4 2025-08-13 18:22:15 +00:00
Baptiste Augrain
242a448627
chore: delete win32-app-container-tokens node modules (#2461) 2025-08-13 18:43:31 +02:00
Baptiste Augrain
e298421027
fix: retry 5 times not 3 2025-08-13 17:07:15 +02:00
Baptiste Augrain
51f1643852
fix: objdump (#2458) 2025-08-13 16:48:59 +02:00
Baptiste Augrain
279bb37012
build(insider): update to commit 97bc9a4 2025-08-13 07:28:25 +00:00
Baptiste Augrain
2af82b8c5b
build: use node-v22.17.0 2025-08-12 20:38:38 +02:00
Baptiste Augrain
930f570146
fix(linux-x86): match libstdc ABI between node and @parcel/watcher (#2457) 2025-08-12 19:07:10 +02:00
Baptiste Augrain
b1ee5b1428
feat(1.104): update patch 2025-08-12 17:12:11 +02:00
dependabot[bot]
23688ef492
build(deps): bump actions/download-artifact from 4 to 5 (#2454) 2025-08-12 16:33:06 +02:00
dependabot[bot]
fcffce5d9a
build(deps): bump actions/download-artifact from 4 to 5 (#2454) 2025-08-11 19:27:27 +02:00
Baptiste Augrain
3f44e3f4a3
feat(1.104): update patches (#2448) 2025-08-09 11:47:10 +02:00
Baptiste Augrain
9ffd0a3632
Merge branch 'master' into insider 2025-08-09 01:13:40 +02:00
Baptiste Augrain
57832e4688
feat(1.103): update to 1.103 (#2447) 2025-08-09 01:10:08 +02:00
Baptiste Augrain
418209fe92
build(insider): update to commit e3550cf 2025-08-07 07:28:15 +00:00
Baptiste Augrain
96af93b5de
build(insider): update to commit c661d0e 2025-08-06 07:29:35 +00:00
Baptiste Augrain
7bdf2348e1
build(insider): update to commit 34769c5 2025-08-05 07:29:06 +00:00
Baptiste Augrain
e114e120f3
fix(windows): regroup patches [skip ci] 2025-08-04 15:25:05 +02:00
Baptiste Augrain
e4091b268c
fix(windows): disable appx 2025-08-04 14:47:29 +02:00
Baptiste Augrain
ed516ab087
wip(windows): build appx [skip ci] 2025-08-04 14:02:21 +02:00
Baptiste Augrain
c6eec8f00d
docs(macos): remove troubleshooting link 2025-08-04 13:53:57 +02:00
Baptiste Augrain
4959ac2e25
fix(windows): update patch 2025-08-04 11:10:51 +02:00
Baptiste Augrain
2717404c48
build(insider): update to commit 994be41 2025-08-02 07:23:06 +00:00
Baptiste Augrain
ef86a20ce4
build(insider): update to commit 6977c2a 2025-08-01 07:28:01 +00:00
Baptiste Augrain
3c07d343da
build(insider): update to commit 724eea7 2025-07-31 07:31:06 +00:00
Baptiste Augrain
ae7ac2e35c
build(insider): update to commit 972d323 2025-07-30 07:27:16 +00:00
Baptiste Augrain
29424ad4fb
build(stable): update to commit 488a1f2 2025-07-29 18:26:56 +00:00
Baptiste Augrain
067a4d4e7d
feat(1.103): update patches (#2437) 2025-07-29 14:55:09 +02:00
Baptiste Augrain
c31bc7e230
build(insider): update to commit d8361fe 2025-07-25 07:27:58 +00:00
Baptiste Augrain
1d870bf372
feat(1.103): update patches (#2435) 2025-07-24 11:07:55 +02:00
Baptiste Augrain
bfdcc2257b
fix: retry gh install on failure 2025-07-24 08:57:00 +02:00
111 changed files with 5426 additions and 2070 deletions

View File

@ -7,5 +7,6 @@ version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
target-branch: insider
schedule:
interval: "weekly"

View File

@ -48,7 +48,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -85,7 +85,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@ -96,19 +96,19 @@ jobs:
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@ -137,7 +137,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: vscode
path: ./vscode.tar.gz
@ -172,7 +172,7 @@ jobs:
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
image: vscodium/vscodium-linux-build-agent:beige-loong64
image: vscodium/vscodium-linux-build-agent:crimson-loong64
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
@ -194,7 +194,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@ -206,7 +206,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@ -225,7 +225,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@ -260,7 +260,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@ -309,7 +309,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
@ -321,20 +321,20 @@ jobs:
if: env.DISABLED != 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.DISABLED != 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.DISABLED != 'yes'
@ -344,7 +344,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@ -355,7 +355,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@ -375,7 +375,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
@ -410,7 +410,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -420,13 +420,18 @@ jobs:
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@ -440,7 +445,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@ -460,7 +465,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
@ -512,7 +517,7 @@ jobs:
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -550,7 +555,7 @@ jobs:
steps:
- name: Trigger repository rebuild
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
repository: VSCodium/repositories-linux

View File

@ -44,13 +44,13 @@ jobs:
fail-fast: false
matrix:
include:
- runner: macos-13
- runner: macos-15-intel
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -60,12 +60,12 @@ jobs:
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'
@ -116,7 +116,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/

View File

@ -28,20 +28,21 @@ jobs:
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_ARCH: arm64
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
VSCODE_QUALITY: insider
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
- name: Clone VSCode repo
run: . get_repo.sh
@ -76,6 +77,13 @@ jobs:
run: ./prepare_src.sh
if: env.SHOULD_BUILD == 'yes'
- name: Upload sourcemaps
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./upload_sourcemaps.sh
if: env.SHOULD_BUILD == 'yes'
- name: Release source
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
@ -84,7 +92,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Dispatch builds
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
event-type: insider
if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true')

View File

@ -46,7 +46,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -72,7 +72,10 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-22.04
runs-on: windows-2022
defaults:
run:
shell: bash
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@ -83,7 +86,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@ -93,27 +96,27 @@ jobs:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
# - name: Setup GCC
# uses: egor-tensin/setup-gcc@v1
# with:
# version: 10
# platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
# - name: Install libkrb5-dev
# run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
# if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
@ -135,7 +138,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: vscode
path: ./vscode.tar.gz
@ -169,7 +172,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@ -181,13 +184,13 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@ -200,7 +203,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
@ -219,7 +222,7 @@ jobs:
- name: Upload unsigned artifacts
id: upload-unsigned-artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: unsigned-${{ matrix.vscode_arch }}
path: |
@ -229,7 +232,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Signing
uses: signpath/github-action-submit-signing-request@v1
uses: signpath/github-action-submit-signing-request@v2
with:
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
@ -263,7 +266,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@ -272,7 +275,7 @@ jobs:
winget:
needs: build
runs-on: windows-latest
runs-on: windows-2022
defaults:
run:
shell: bash
@ -282,7 +285,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}

View File

@ -1,4 +1,4 @@
name: Lock Issues
name: Lock Closed Threads
on:
schedule:
@ -8,9 +8,10 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5
- uses: dessant/lock-threads@v6
with:
github-token: ${{ github.token }}
issue-inactive-days: '90'
pr-inactive-days: '90'
discussion-inactive-days: '90'
log-output: true

View File

@ -47,7 +47,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -84,7 +84,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@ -96,20 +96,20 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@ -138,7 +138,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: vscode
path: ./vscode.tar.gz
@ -173,7 +173,7 @@ jobs:
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
image: vscodium/vscodium-linux-build-agent:beige-loong64
image: vscodium/vscodium-linux-build-agent:crimson-loong64
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
@ -195,7 +195,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@ -207,7 +207,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@ -226,7 +226,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@ -261,7 +261,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@ -310,7 +310,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
@ -322,20 +322,20 @@ jobs:
if: env.DISABLED != 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.DISABLED != 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.DISABLED != 'yes'
@ -345,7 +345,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@ -356,7 +356,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@ -376,7 +376,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
@ -411,7 +411,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -421,13 +421,18 @@ jobs:
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@ -441,7 +446,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@ -461,7 +466,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
@ -510,7 +515,7 @@ jobs:
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -581,7 +586,7 @@ jobs:
steps:
- name: Trigger repository rebuild
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
repository: VSCodium/repositories-linux

View File

@ -43,13 +43,13 @@ jobs:
fail-fast: false
matrix:
include:
- runner: macos-13
- runner: macos-15-intel
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -59,12 +59,12 @@ jobs:
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'
@ -114,7 +114,7 @@ jobs:
if: env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/

View File

@ -25,18 +25,19 @@ jobs:
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_ARCH: arm64
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
VSCODE_QUALITY: stable
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
- name: Clone VSCode repo
run: . get_repo.sh
@ -71,6 +72,13 @@ jobs:
run: ./prepare_src.sh
if: env.SHOULD_BUILD == 'yes'
- name: Upload sourcemaps
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./upload_sourcemaps.sh
if: env.SHOULD_BUILD == 'yes'
- name: Release source
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
@ -79,7 +87,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Dispatch builds
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
event-type: stable
if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true'

View File

@ -45,7 +45,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@ -71,7 +71,10 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-22.04
runs-on: windows-2022
defaults:
run:
shell: bash
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@ -82,7 +85,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@ -92,27 +95,27 @@ jobs:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
# - name: Setup GCC
# uses: egor-tensin/setup-gcc@v1
# with:
# version: 10
# platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
# - name: Install libkrb5-dev
# run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
# if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
@ -134,7 +137,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: vscode
path: ./vscode.tar.gz
@ -168,7 +171,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@ -180,13 +183,13 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@ -199,7 +202,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
@ -218,7 +221,7 @@ jobs:
- name: Upload unsigned artifacts
id: upload-unsigned-artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: unsigned-${{ matrix.vscode_arch }}
path: |
@ -228,7 +231,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Signing
uses: signpath/github-action-submit-signing-request@v1
uses: signpath/github-action-submit-signing-request@v2
with:
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
@ -261,7 +264,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@ -270,7 +273,7 @@ jobs:
winget:
needs: build
runs-on: windows-latest
runs-on: windows-2022
defaults:
run:
shell: bash
@ -279,7 +282,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}

View File

@ -11,7 +11,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
days-before-stale: 180
days-before-close: 30

1
.gitignore vendored
View File

@ -14,5 +14,6 @@ build/linux/appimage/VSCodium
build/windows/msi/releasedir
build/windows/msi/Files*.wxs
build/windows/msi/Files*.wixobj
sourcemaps/
stores/snapcraft/insider/*.snap
stores/snapcraft/stable/*.snap

2
.nvmrc
View File

@ -1 +1 @@
22.15.1
22.21.1

View File

@ -59,8 +59,6 @@ brew install --cask vscodium
brew install --cask vscodium@insiders
```
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#macos).*
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:

View File

@ -1,7 +1,7 @@
[
{
"id": "#2358",
"title": "Wanted! Feedback for new website :)",
"url": "https://github.com/VSCodium/vscodium/discussions/2358"
"id": "#2668",
"title": "[Windows] broken update on 1.107, need manual update",
"url": "https://github.com/VSCodium/vscodium/issues/2668"
}
]

View File

@ -23,8 +23,12 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
npm run gulp minify-vscode
if [[ "${OS_NAME}" == "osx" ]]; then
# remove win32 node modules
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
# generate Group Policy definitions
node build/lib/policies darwin
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc darwin
npm run gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
@ -34,13 +38,14 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
# generate Group Policy definitions
node build/lib/policies win32
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
. ../build/windows/rtf/make.sh
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc win32
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
@ -53,8 +58,15 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
VSCODE_PLATFORM="win32"
else # linux
# remove win32 node modules
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c

View File

@ -34,14 +34,14 @@ fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
PA_NAME="linux-alpine"

32
build/linux/install_gh.sh Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
set -ex
GH_ARCH="amd64"
for i in {1..5}; do
TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )
if [[ $? == 0 && "${TAG}" != "null" ]]; then
break
fi
if [[ $i == 5 ]]; then
echo "GH install failed too many times" >&2
exit 1
fi
echo "GH install failed $i, trying again..."
sleep $(( 15 * (i + 1)))
done
VERSION="${TAG#v}"
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
gh --version

13
build/linux/install_nodejs.sh Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -ex
NODEJS_VERSION=$( cat .nvmrc )
curl -fsSL "${NODEJS_SITE}${NODEJS_URLROOT}/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}.tar.xz" -o node.tar.xz
tar -xf node.tar.xz
sudo mv "node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}" /usr/local/node
echo "/usr/local/node/bin" >> $GITHUB_PATH

View File

@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="35.4.0"
export ELECTRON_VERSION="39.2.3"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@ -1,9 +1,9 @@
139fa3fda65865ee141b0f411945eff7b26c4bb35a2647e55d38aeedcc08e129 *chromedriver-v35.4.0-linux-loong64.zip
319dab705a38634e6b0c4090eaf17d171e493432cebdb96d0c6956f2dad4feba *electron-v35.4.0-linux-loong64-debug.zip
7cc0f0feeb987d22096a9d6c17b5ef35705b948d0814127eb666d3aefa989e79 *electron-v35.4.0-linux-loong64-symbols.zip
37d95342b35c20e36f85ef3cccf8d714e83ca8fd58f8413b0b6b46b251a0f47d *electron-v35.4.0-linux-loong64.zip
617060c7b79d3a311c750fb8795ef12679b3e522d70d29edd11f3f367ae2659c *hunspell-dictionaries.zip
be95f332f4d4760fde24ef88fb70dab1ef4bb059dfd0d740eaa8cbe10f6f6fbb *libcxx-headers.zip
0a0c40917b61afa3da0e1661dd78dad54c4ad1c0fc7d8c923a453d969638dd8b *libcxx-objects-v35.4.0-linux-loong64.zip
b3fdfe044f22c60de5589eb57be9d6d0fdbf30439ff2b67541318356dc331faa *libcxxabi-headers.zip
84dc28d1402a347db08a834228a27626bff8b853c21146141863ce8202a56e72 *mksnapshot-v35.4.0-linux-loong64.zip
d26b2189e7466a08c73861d0225c9b28730fdfc30918f3ea70853b43a2581dc4 *chromedriver-v39.2.3-linux-loong64.zip
8cc36f7468f5b2d98cde3f73c10c535555754c54be43e45c320a382c35b8e466 *electron-v39.2.3-linux-loong64.zip
f6e7462d6fd795ae2b08344ee0fdca817eba148b62a62717b3f512c845d96a64 *ffmpeg-v39.2.3-linux-loong64.zip
b122599dc84b81526ba4eecbca4794f3a2d25300242ad3829d1445cb6948f470 *hunspell-dictionaries.zip
76ef17d2810df5e77c5071863e2a375df914cfb7a362ad0582ee0eedca2441b9 *libcxx-headers.zip
9b61ba9f0780a57ee2749f7963759395784eadcaccc54af313de1a540240298e *libcxx-objects-v39.2.3-linux-loong64.zip
9ae64aff9e391eae401142e55654b5b8cf54d0611b1ecb540f2f4e89a2b4f772 *libcxxabi-headers.zip
7d7e6e08c84aa38b74037f5910534918bc792ffbe2ca6d667067f587f27f5118 *mksnapshot-v39.2.3-linux-loong64.zip
db48f8a9d2271e8b3a1c3f26ea1ae9bd489deb1b464b6ae424a15d5df7529fdc *node-v39.2.3-headers.tar.gz

View File

@ -22,7 +22,7 @@ export VSCODE_SYSROOT_PREFIX='-glibc-2.28-gcc-10.5.0'
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
export VSCODE_SKIP_SYSROOT=1
export USE_GNUPP2A=1
# export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
@ -101,7 +101,7 @@ fi
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@ -118,14 +118,21 @@ fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i -eq 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
# delete native files built in the `compile` step
find .build/extensions -type f -name '*.node' -print -delete
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"

View File

@ -18,20 +18,14 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
GLIBC_VERSION="2.28"
GLIBCXX_VERSION="3.4.26"
NODE_VERSION="22.15.1"
NODE_VERSION="22.21.1"
export VSCODE_NODEJS_URLROOT='/download/release'
export VSCODE_NODEJS_URLSUFFIX=''
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
GLIBC_VERSION="2.17"
GLIBCXX_VERSION="3.4.22"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-x64"
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
export VSCODE_NODEJS_URLSUFFIX='-glibc-217'
export VSCODE_SKIP_SETUPENV=1
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
EXPECTED_GLIBC_VERSION="2.30"
@ -48,6 +42,8 @@ elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
export VSCODE_SKIP_SYSROOT=1
export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
GLIBC_VERSION="2.28"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-ppc64le"
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
@ -66,6 +62,8 @@ elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
export VSCODE_SKIP_SETUPENV=1
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
GLIBC_VERSION="2.28"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
@ -130,12 +128,9 @@ EOF
echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
fi
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@ -148,11 +143,24 @@ if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
else
source ./build/azure-pipelines/linux/setup-env.sh
fi
export VSCODE_SYSROOT_DIR="${VSCODE_REMOTE_SYSROOT_DIR}"
else
mkdir -p .build/x86_64-linux-gnu/x86_64-linux-gnu/bin
ln -s $( which objdump ) .build/x86_64-linux-gnu/x86_64-linux-gnu/bin/objdump
export VSCODE_SYSROOT_DIR=".build"
fi
node build/npm/preinstall.ts
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@ -162,9 +170,26 @@ for i in {1..5}; do # try 5 times
rm -rf node_modules/@vscode node_modules/node-pty
done
# if [[ "${VSCODE_ARCH}" == "x64" ]]; then
# pushd "remote"
# for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
# do
# pushd "node_modules/${LIB}"
# CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild
# popd
# done
# popd
# VERIFY_CXX11=1
# fi
mv .npmrc.bak .npmrc
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
@ -175,6 +200,10 @@ if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
# if [[ -n "${VERIFY_CXX11}" ]]; then
# SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
# fi
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
@ -194,6 +223,10 @@ if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
# if [[ -n "${VERIFY_CXX11}" ]]; then
# SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
# fi
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then

View File

@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="35.4.0"
export ELECTRON_VERSION="39.2.7"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@ -1,11 +1,10 @@
c010d5d6e71b5e264fbf9c489793255a7f8eeaf052ee397f422beee69dc14142 *chromedriver-v35.4.0-linux-ppc64le.zip
a34c7355c47a401c32c0d4dfc2ed563ff34e7d3a21d81711742ede3e997c1120 *electron-v35.4.0-linux-ppc64le-debug.zip
41d6dce1d6f9708bb2e7ba8abb2c9634a1617f4efd499d184b31db4e2487b9c4 *electron-v35.4.0-linux-ppc64le-symbols.zip
9d2e29007fc1126ffca8c340531f3d8df7403fb0cfbe6301522dc3ee9d8ed8df *electron-v35.4.0-linux-ppc64le.zip
22c1723e008a8f2db879588d705ba528894c5d56053539f29de54de30cbe36a3 *electron.d.ts
29ffe919d9d7e6c4253f75bccfc8a56cb524dc4525a05b11f1b5d7a28b83fc77 *ffmpeg-v35.4.0-linux-ppc64le.zip
e14732b467e29f89231fe938a976e101ce9895e40eb3a837200f8f6e129b638b *hunspell_dictionaries.zip
dba6e62837a78f87bdc0c4acbbde2cdb88639d7ec5685e666a7b101e15d68d0c *libcxx-objects-v35.4.0-linux-ppc64le.zip
14916583d55720189f6afc9d55bb5e2ad81ab30fea8a1790026e64575c0b8dc4 *libcxx_headers.zip
0ce292706006d9e17c590f2704d844e2b837c37da28ff9baab36d7497c4917a0 *libcxxabi_headers.zip
962262bc16dc1d452f67656b897899c471b11d6e6e37bccd536bc0cb0b36ef47 *mksnapshot-v35.4.0-linux-ppc64le.zip
bacff46523cea806df9788d9e24f7f53fad2317f18afdcbc596b86863dd40805 *chromedriver-v39.2.7-linux-ppc64le.zip
b83820b37325c0a6ce0bbb98344b54f70ef7c2a949eea61bcb423b18c623a742 *electron-v39.2.7-linux-ppc64le-debug.zip
7d3b4ff4320a54572f9e1e0286702a0bed3e1596a2cb34f8fdc455acf3b9234f *electron-v39.2.7-linux-ppc64le-symbols.zip
6974cf1c8a550019b04762222742b8f1d9d76387594a191d3522cd65da075db1 *electron-v39.2.7-linux-ppc64le.zip
40c772eb189d100087b75da6c2ad1aeb044f1d661c90543592546a654b0b6d5b *electron.d.ts
0c923001d08e474d0dcd3b747b4f9a4bfca685d755ec08de8e44556a63f9ad3a *hunspell_dictionaries.zip
ee57f79e88f50f199a6aeb87fa45c83d1bd0f92eb72e00787cfdf4cf11863562 *libcxx-objects-v39.2.7-linux-ppc64le.zip
a8709029737d3073758ccb384161a37d91f16e5a3f8110ca8e2c30f83ef8d7e6 *libcxx_headers.zip
238dcec817528659a86b0cd3d7dabe301e65b4cab25e45c5bbab7642a8849c02 *libcxxabi_headers.zip
be033ed825bd8be92bb6ca86ff81f0907e60aa999aa011f5ddf1360abb19429b *mksnapshot-v39.2.7-linux-ppc64le.zip

View File

@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="35.4.0"
export ELECTRON_VERSION="39.2.7"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"

View File

@ -1,11 +1,11 @@
62a100f36cb8898ca4df50b6160c5fc72618f4447486a154b3521e2d5ca58a2a *chromedriver-v35.4.0-linux-riscv64.zip
92408a3b8a0fdb1be0cdf9473b97a4bb5a0ec3351d3519f5a15831b071eaad27 *electron-v35.4.0-linux-riscv64-debug.tar.zst
7a7fc08874d7dd9f24a27e06ce4f10223d0b81860408a5a6e67441ca7a7a0df9 *electron-v35.4.0-linux-riscv64-symbols.tar.zst
b61f163296cc498e459a71839d68f7f1e2d9a5e2cb0ac9e85b1e360f437f4ecc *electron-v35.4.0-linux-riscv64.zip
41cd1f566a422a59370fc8928a73a4255336f7d870f3eeeabed99b56eb482c6d *ffmpeg-v35.4.0-linux-riscv64.zip
53b80b77c753d06a01349f7cb1c4eec7d4565366a67fd94abb5748f3204b1bd4 *hunspell-dictionaries.zip
252d1279aeafe27e1e54f10fbf9cf07ef0ae49d5b1ff8c7c9876ebba616a878b *libcxx-headers.zip
522a5719369b66749cd966963a94db1c5837d5bc4aecf77caf32f99a8978bfaa *libcxx-objects-v35.4.0-linux-riscv64.zip
48fb04fb8616d48b9a7125e5b6a038b29b5858f170ae65c4e09b576b7931f7ae *libcxxabi-headers.zip
f2ab79663741550142623e7af5aa0fc62eff200c43a8c42d5476e06ff70858ca *mksnapshot-v35.4.0-linux-riscv64.zip
2f4c2d4212fd83f284fef12e1feae01d79bbbd1a68ee05128f1717e0ecfb2b17 *node-v35.4.0-headers.tar.gz
6759ef2bd69a2e31a3f0e17c4e4c0bf239b54f08525572201ae7760851168487 *chromedriver-v39.2.7-linux-riscv64.zip
89562e30982d8ac71fbc1e0f549a4a6e19abd5cb98ea904d5f3cfceb7c61e582 *electron-v39.2.7-linux-riscv64-debug.tar.zst
71c6f265a2ef065f478ef910a06466a21009c02783dcb7053767549a6dbeb80d *electron-v39.2.7-linux-riscv64-symbols.tar.zst
136804dbd04f1c6b9a6047c4e7bb648876214ff453b62fb3bdc81505b6f5aab2 *electron-v39.2.7-linux-riscv64.zip
1059d6cb97b87464b3bd415bb5f96fceaf91d6e3af1c9733724ab9f2e14e2a08 *ffmpeg-v39.2.7-linux-riscv64.zip
224a84d4aaceb5ed8be3c4f65f8404d492dc86ded8ab336c2562dfdd21752068 *hunspell-dictionaries.zip
b6cb4f8902aad5de811efd106ddbdbca79e43cb7c8fa67f7eeddaedf2efd82d5 *libcxx-headers.zip
0664e200ec1eab1ce1957bc6e17ad89f6c0d4d904a9492d64fcf4175cd81e537 *libcxx-objects-v39.2.7-linux-riscv64.zip
96f9b66be7ff11e79ec2e781a0025938eb5ef97cbab429c05e9b45d24d421abf *libcxxabi-headers.zip
be0774857454f81b9407f6b941200f8843a0b3ecb86e2bb072209ef9f9bfe74a *mksnapshot-v39.2.7-linux-riscv64.zip
a8fca541e8f9a18de73c78f6862cbf439723c80c5eb60fe50405dfb751d2ee13 *node-v39.2.7-headers.tar.gz

View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -e
FILES=$(
find "${SEARCH_PATH}" -type f -executable -name "node"
find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*"
)
echo "Verifying requirements for files: ${FILES}"
for FILE in ${FILES}; do
CXXABI_VERSION="0.0.0"
while IFS= read -r LINE; do
VERSION=${LINE#*_}
if [[ $( printf "%s\n%s" "${VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${VERSION}" ]]; then
CXXABI_VERSION="${VERSION}"
fi
done < <( strings "${FILE}" | grep -i ^CXXABI )
if [[ $( printf "%s\n%s" "${EXPECTED_CXXABI_VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${EXPECTED_CXXABI_VERSION}" ]]; then
echo "File ${FILE} has dependency on ABI ${CXXABI_VERSION} <= ${EXPECTED_CXXABI_VERSION}"
else
echo "Error: File ${FILE} has dependency on ABI ${CXXABI_VERSION} > ${EXPECTED_CXXABI_VERSION}"
exit 1
fi
done

View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -e
FILES=$( find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*" )
echo "Verifying requirements for files: ${FILES}"
for FILE in ${FILES}; do
if [[ -n "$( strings "${FILE}" | grep cxx11 | tail -n1 )" ]]; then
echo "Error: File ${FILE} has dependency on CXX11"
exit 1
fi
done

14
build/windows/appx/build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ex
# Add Windows SDK to path
SDK='/C/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64'
export PATH="${SDK}:${PATH}"
APPX_NAME="${BINARY_NAME//-/_}"
makeappx pack /d "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest" /p "../../../VSCode-win32-${VSCODE_ARCH}/appx/${APPX_NAME}_${VSCODE_ARCH}.appx" /nv
# Remove the raw manifest folder
rm -rf "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest"

View File

@ -13,17 +13,24 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i -eq 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
# delete native files built in the `compile` step
find .build/extensions -type f -name '*.node' -print -delete
. ../build/windows/rtf/make.sh
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc win32
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
. ../build_cli.sh

View File

@ -32,6 +32,8 @@ if [[ "${OS_NAME}" == "osx" ]]; then
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/lib"
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/include"
rustup target add "${VSCODE_CLI_TARGET}"
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-darwin-${VSCODE_ARCH}/${NAME_SHORT}.app/Contents/Resources/app/bin/${TUNNEL_APPLICATION_NAME}"

View File

@ -112,6 +112,10 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then
git add .
git reset -q --hard HEAD
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
rm -rf .build out*
cd ..

View File

@ -2,7 +2,19 @@
set -e
echo "$#"
normalize_file() {
if [[ "${1}" == *patch ]]; then
FILE="${1}"
else
FILE="${1}.patch"
fi
if [[ "${FILE}" == patches/* ]]; then
FILE="../${FILE}"
else
FILE="../patches/${FILE}"
fi
}
cd vscode || { echo "'vscode' dir not found"; exit 1; }
@ -13,30 +25,28 @@ while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
git apply --reject "../patches/helper/settings.patch"
normalize_file "${1}"
while [ $# -gt 1 ]; do
echo "Parameter: $1"
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
fi
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
git apply --reject "../patches/helper/settings.patch"
git apply --reject "${FILE}"
while [ $# -gt 1 ]; do
echo "Parameter: $1"
normalize_file "${1}"
shift
done
git apply --reject "${FILE}"
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
shift
done
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
normalize_file "${1}"
fi
echo "FILE: ${FILE}"
if [[ -f "${FILE}" ]]; then
if [[ -f "${FILE}.bak" ]]; then
mv -f $FILE{.bak,}
@ -47,8 +57,18 @@ fi
read -rp "Press any key when the conflict have been resolved..." -n1 -s
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
echo
read -rp "Press any key when the conflict have been resolved..." -n1 -s
done
git add .
git diff --staged -U1 > "${FILE}"
git reset -q --hard HEAD~
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
git reset -q --hard HEAD
else
git reset -q --hard HEAD~
fi
echo "The patch has been generated."

View File

@ -14,7 +14,6 @@ while getopts ":i" opt; do
esac
done
URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
# echo "url: ${URL}"
FILE="${URL##*/}"
@ -30,10 +29,17 @@ if [[ ! -d "${DIRECTORY}" ]]; then
unzip "${FILE}" -d "${DIRECTORY}"
fi
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/resources/app/product.json" )
BIN_PATH=$(find "${DIRECTORY}/bin" -type f ! -name "*.*")
LINE="$( grep -E '^[[:space:]]*(export[[:space:]]+)?VERSIONFOLDER[[:space:]]*=' "$BIN_PATH" | tail -n1 )"
VERSIONFOLDER="${LINE#*=}"
VERSIONFOLDER="${VERSIONFOLDER#\"}"
VERSIONFOLDER="${VERSIONFOLDER%\"}"
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/${VERSIONFOLDER}/resources/app/product.json" )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
echo "$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )" > product.json
jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp
APIS=$( jq -r '.extensionsEnabledWithApiProposalVersion' "${DIRECTORY}/${VERSIONFOLDER}/resources/app/product.json" )
echo "$( jq --argjson v "${APIS}" 'setpath(["extensionsEnabledWithApiProposalVersion"]; $v)' product.json )" > product.json

View File

@ -12,6 +12,75 @@ while getopts ":i" opt; do
esac
done
generate_rejects() {
local PATCH_FILE="$1"
if ! command -v python3 >/dev/null 2>&1; then
echo "python3 not found; cannot create reject files for ${PATCH_FILE}"
return 1
fi
PATCH_FOR_REJECT="${PATCH_FILE}" python3 <<'PY'
import os
import pathlib
import re
import subprocess
def chunk_needs_reject(raw_chunk: str) -> bool:
"""Return True when a patch chunk cannot be applied nor reversed."""
chunk = raw_chunk if raw_chunk.endswith("\n") else raw_chunk + "\n"
def _run_git(extra_args):
return subprocess.run(
["git", "apply", "--check", "--ignore-whitespace", *extra_args],
input=chunk,
text=True,
capture_output=True,
)
forward = _run_git([])
if forward.returncode == 0:
return False
reverse = _run_git(["--reverse"])
if reverse.returncode == 0:
return False
return True
patch_path = os.environ["PATCH_FOR_REJECT"]
with open(patch_path, "r", encoding="utf-8", errors="ignore") as src:
content = src.read()
chunks = re.split(r'(?m)^diff --git ', content)
for chunk in chunks:
chunk = chunk.strip()
if not chunk:
continue
chunk = "diff --git " + chunk
match = re.search(r'^diff --git a/(.*?) b/(.*?)$', chunk, re.MULTILINE)
if not match:
continue
a_path, b_path = match.groups()
candidate = b_path if b_path != "/dev/null" else a_path
if candidate in ("/dev/null", ""):
continue
if candidate.startswith("../") or candidate.startswith("..\\") or candidate.startswith("/"):
continue
dest = pathlib.Path(candidate + ".rej")
if not chunk_needs_reject(chunk):
continue
dest.parent.mkdir(parents=True, exist_ok=True)
with dest.open("w", encoding="utf-8") as fh:
fh.write(chunk)
if not chunk.endswith("\n"):
fh.write("\n")
print(f"generated reject: {dest}")
PY
}
check_file() {
while [ $# -gt 1 ]; do
git apply --reject "${1}"
@ -33,9 +102,26 @@ check_file() {
if ! git apply --ignore-whitespace "${1}"; then
echo failed to apply patch "${1}"
git apply --reject "${1}"
git apply --reject --verbose "${1}"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
if [[ -z "$( find . -name '*.rej' -print )" ]]; then
echo "no .rej generated by git; creating fallback rejects for ${1}"
if ! generate_rejects "${1}"; then
echo "failed to generate reject files for ${1}"
exit 1
fi
if [[ -z "$( find . -name '*.rej' -print )" ]]; then
echo "still no .rej after attempting to create them for ${1}"
exit 1
fi
fi
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
read -rp "Press any key when the conflict have been resolved..." -n1 -s
echo
done
git restore .vscode/settings.json
git add .
@ -52,8 +138,16 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
for FILE in ../patches/*.patch; do
check_file "${FILE}"
if [[ "${FILE}" == *"/fix-policies.patch" ]]; then
check_file "../patches/fix-keymap.patch" "../patches/fix-policies.patch"
else
check_file "${FILE}"
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
@ -64,7 +158,7 @@ fi
for ARCH in alpine linux osx windows; do
for FILE in "../patches/${ARCH}/"*.patch; do
if [[ "${ARCH}" == "linux" && "${FILE}" == *"/arch-"* ]] || [[ "${ARCH}" == "windows" && "${FILE}" == *"/cli"* ]]; then
if [[ "${ARCH}" == "linux" && "${FILE}" == *"/arch-"* ]] || [[ "${ARCH}" == "linux" && "${FILE}" == *"/fix-dependencies.patch" ]] || [[ "${ARCH}" == "windows" && "${FILE}" == *"/cli"* ]]; then
echo "skip ${FILE}"
else
check_file "${FILE}"
@ -72,6 +166,8 @@ for ARCH in alpine linux osx windows; do
done
if [[ "${ARCH}" == "linux" ]]; then
check_file "../patches/optional-tree-sitter.patch" "../patches/linux/fix-dependencies.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"

View File

@ -0,0 +1,22 @@
<!-- order: 16 -->
# Extension: GitHub Copilot
Unlike Visual Studio Code, in VSCodium, Copilot features are disabled and not configured.
## Update your settings
In your settings, sets:
```
"chat.disableAIFeatures": false,
```
## Configure product.json
You need to create a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
- macOS: `~/Library/Application Support/VSCodium`
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
Then you will need to follow the guide [Running with Code OSS](https://github.com/microsoft/vscode-copilot-chat/blob/main/CONTRIBUTING.md#running-with-code-oss) with the `product.json` file created previously.
You will need to add the properties: `trustedExtensionAuthAccess` and `defaultChatAgent`.

View File

@ -25,6 +25,7 @@
- [Proprietary Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-extensions)
- [Using the "VSIX Manager" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#vsix-manager)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
- [Ext: GitHub Copilot](https://github.com/VSCodium/vscodium/blob/master/docs/ext-github-copilot.md)
- [Migration](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md)
- [Manual Migration from Visual Studio Code to VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#manual-migration)
- [Semi-Automatic Migration with "Sync Settings" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#semi-automatic-migration)

View File

@ -1,41 +1,62 @@
<!-- order: 10 -->
# Getting all the Telemetry Out
# Getting all telemetry out
This page explains how VSCodium handles telemetry and how to ensure your privacy.
This page explains how VSCodium handles telemetry and how it enhances your privacy.
## Table of Contents
## Table of contents
- [Telemetry in VSCodium](#telemetry)
- [Replacements to Microsoft Online Services](#replacements)
- [Checking for Telemetry](#checking)
- [Additional Privacy Settings](#additional-settings)
- [VSCodium Announcements](#announcements)
- [Malicious & Deprecated Extensions](#malicious-extensions)
- [Checking for telemetry](#checking)
- [VSCodium announcements](#announcements)
- [Malicious & deprecated extensions](#malicious-extensions)
## <a id="telemetry"></a>Telemetry in VSCodium
Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
Even though we do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry, Microsoft still can track usage by default depending on your settings.
We do however set the default `telemetry.enableTelemetry` and `telemetry.enableCrashReporter` values to `false`. You can see those by viewing your VSCodium `settings.json` and searching for `telemetry`.
We disable all the following telemetry-related settings by default to enhance your privacy:
```
telemetry.telemetryLevel
telemetry.enableCrashReporter
telemetry.enableTelemetry
telemetry.editStats.enabled
workbench.enableExperiments
workbench.settings.enableNaturalLanguageSearch
workbench.commandPalette.experimental.enableNaturalLanguageSearch
```
It is also recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). You can use the search filter `@tag:usesOnlineServices` to show such settings and review what to change.
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__
For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft. Be sure to check each extension's settings page to disable their telemetry if applicable.
- Extensions auto check for updates and auto install updates
- Searches within the app are sent to an online service for "natural language processing"
- Updates to the app are fetched in the background
### Update services
By default, the app periodically fetches connections to check for the latest version available to download and install.
Extensions are also checked for updates automatically from time to time.
These can all be disabled.
If you want to prevent such behaviors, modify the following preferences:
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
For the app itself:
- `update.mode` -> `manual` (or `none`)
- `update.enableWindowsBackgroundUpdates` -> `false` (only applicable for Microsoft Windows)
For extensions:
- `extensions.autoUpdate` -> `false`
- `extensions.autoCheckUpdates` -> `false`
*Note: on Linux, the app update service is disabled completely at build-time even if the `update.mode` preference is configured. This is because users will more likely use their package managers to update the app rather than updating via the app itself.*
### Feedback telemetry
By default, we keep the preference `telemetry.feedback.enabled` enabled. It's used to allow the button `Report Issue...` to be used on the app depending on the context. It does not send any data by having it enabled (other options already cover it). If you want, you can disable this behavior by toggling the preference value.
## <a id="replacements"></a>Replacements to Microsoft Online Services
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L135) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to Microsoft online service.
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L132-L133) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to the Microsoft online service.
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L121) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft, either.
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L119) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft either.
## <a id="checking"></a>Checking for Telemetry
## <a id="checking"></a>Checking for telemetry
If you want to verify that no telemetry is being sent, you can use network monitoring tools like:
@ -45,34 +66,16 @@ If you want to verify that no telemetry is being sent, you can use network monit
Look for connections to Microsoft domains and telemetry endpoints.
## <a id="additional-settings"></a>Additional Privacy Settings
## <a id="announcements"></a>VSCodium anouncements
For maximum privacy, you can add these settings to your `settings.json`:
The welcome page in VSCodium displays announcements that are fetched via the internet from the project's GitHub repository.
```json
{
"telemetry.enableTelemetry": false,
"telemetry.enableCrashReporter": false,
"telemetry.feedback.enabled": false,
"update.enableWindowsBackgroundUpdates": false,
"update.mode": "manual",
"workbench.enableExperiments": false,
"workbench.settings.enableNaturalLanguageSearch": false
}
```
If you prefer to disable this feature, you can disable the preference `workbench.welcomePage.extraAnnouncements`.
These settings will disable various telemetry and tracking features.
## <a id="announcements"></a>VSCodium Announcements
The Welcome page in VSCodium displays announcements that are fetched from the project's GitHub repository.
If you prefer to disable this feature, you can set the `workbench.welcomePage.extraAnnouncements` setting to `false` in your `settings.json`.
## <a id="malicious-extensions"></a>Malicious & Deprecated Extensions
## <a id="malicious-extensions"></a>Malicious & deprecated extensions
The definitions for malicious and deprecated extensions are dynamically loaded from the following URL:
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json.
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json
If you prefer to avoid any external connections, you can set the`extensions.excludeUnsafes` setting to `false` in your `settings.json`.
If you prefer to avoid any external connections, you can disable the preference `extensions.excludeUnsafes`.
However, this is not recommended as it may reduce the safety of your environment.

View File

@ -10,6 +10,7 @@
- [Global menu workaround for KDE](#linux-kde-global-menu)
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
- [Remote SSH doesn't work](#linux-remote-ssh)
- [The window doesn't show up](#linux-no-window)
## <a id="linux"></a>Linux
@ -70,3 +71,10 @@ Use the VSCodium's compatible extension [Open Remote - SSH](https://open-vsx.org
On the server, in the `sshd` config, `AllowTcpForwarding` need to be set to `yes`.
It might requires additional dependencies due to the OS/distro (alpine).
### <a id="linux-no-window"></a>*The window doesn't show up*
If you are under Wayland:
- try the command `codium --verbose`
- if you see an error like `:ERROR:ui/gl/egl_util.cc:92] EGL Driver message (Error) eglCreateContext: Requested version is not supported`
- try `codium --ozone-platform=x11`

View File

@ -6,20 +6,22 @@ set -e
# DEBUG
# set -o xtrace
QUALITY="stable"
COLOR="blue1"
while getopts ":i" opt; do
case "$opt" in
i)
export QUALITY="insider"
export COLOR="orange1"
QUALITY="insider"
[[ -z "${COLOR}" ]] && COLOR="orange1"
;;
*)
;;
esac
done
[[ -z "${COLOR}" ]] && COLOR="blue1"
[[ -z "${QUALITY}" ]] && QUALITY="stable"
[[ -z "${SRC_PREFIX}" ]] && SRC_PREFIX=""
[[ -z "${VSCODE_PREFIX}" ]] && VSCODE_PREFIX=""
check_programs() { # {{{
for arg in "$@"; do
if ! command -v "${arg}" &> /dev/null; then
@ -31,27 +33,47 @@ check_programs() { # {{{
check_programs "icns2png" "composite" "convert" "png2icns" "icotool" "rsvg-convert" "sed"
. ./utils.sh
. "./${VSCODE_PREFIX}utils.sh"
SRC_PREFIX=""
VSCODE_PREFIX=""
if ! declare -F load_linux_png &>/dev/null; then
load_linux_png() {
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "$1"
}
fi
if ! declare -F load_windows_ico &>/dev/null; then
load_windows_ico() {
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "$1"
}
fi
build_darwin_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]]; then
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center "icons/template_macos.png" "code_1024.png"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/darwin"
if [[ "$1" == "no-template" ]]; then
rsvg-convert -w 1024 -h 1024 "icons/${QUALITY}/codium_cnl.svg" -o "code_1024.png"
else
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center "${VSCODE_PREFIX}icons/template_macos.png" "code_1024.png"
fi
convert "code_1024.png" -resize 512x512 code_512.png
convert "code_1024.png" -resize 256x256 code_256.png
convert "code_1024.png" -resize 128x128 code_128.png
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_1024.png code_512.png code_256.png code_128.png
rm code_1024.png code_512.png code_256.png code_128.png code_logo.png
rm -f code_1024.png code_512.png code_256.png code_128.png code_logo.png
fi
} # }}}
build_darwin_types() { # {{{
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
if [[ "$1" == "no-border" ]]; then
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
else
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
fi
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*; do
if [[ -f "${file}" ]]; then
@ -60,7 +82,7 @@ build_darwin_types() { # {{{
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]]; then
icns2png -x -s 512x512 "${file}" -o .
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
composite -blend 100% -geometry +323+365 "${VSCODE_PREFIX}icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
composite -geometry +359+374 "code_logo.png" "${name}.png" "${name}.png"
convert "${name}.png" -resize 256x256 "${name}_256.png"
@ -77,26 +99,32 @@ build_darwin_types() { # {{{
build_linux_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux"
load_linux_png "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
fi
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]]; then
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm"
fi
} # }}}
build_media() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]]; then
mkdir -p "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media"
cp "icons/${QUALITY}/codium_clt.svg" "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
gsed -i 's|width="100" height="100"|width="1024" height="1024"|' "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
fi
} # }}}
build_server() { # {{{
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/server"
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico"
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico"
fi
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png" ]]; then
@ -110,7 +138,9 @@ build_server() { # {{{
build_windows_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
fi
} # }}}
@ -132,12 +162,16 @@ build_windows_type() { # {{{
rsvg-convert -w "${LOGO_SIZE}" -h "${LOGO_SIZE}" "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
if [[ "${GRAVITY}" == "center" ]]; then
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
else
composite -gravity NorthWest -geometry "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
fi
fi
} # }}}
build_windows_types() { # {{{
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}"
rsvg-convert -b "#F5F6F7" -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
@ -148,11 +182,11 @@ build_windows_types() { # {{{
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]]; then
icotool -x -w 256 "${file}"
composite -geometry +150+185 "code_logo.png" "${name}_9_256x256x32.png" "${name}.png"
composite -geometry +150+185 "code_logo.png" "${name}_1_256x256x32.png" "${name}.png"
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico"
rm "${name}_9_256x256x32.png" "${name}.png"
rm "${name}_1_256x256x32.png" "${name}.png"
fi
fi
done

View File

@ -1,22 +0,0 @@
#!/usr/bin/env bash
set -ex
GH_ARCH="amd64"
TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )
if [[ $? -ne 0 ]] || [[ "${TAG}" == "null" ]]; then
echo "Error: Failed to retrieve the latest tag from GitHub CLI releases."
exit 1
fi
VERSION="${TAG#v}"
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
gh --version

View File

@ -1,18 +1,18 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c1d64c0..3e60e80 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -321,3 +321,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index cb1a0a5..dacedc3 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -323,3 +323,3 @@ function packageTask(type: string, platform: string, arch: string, sourceFolderN
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), version }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
- .pipe(jsonEditor({ commit, date: readISODate('out-build'), version }))
+ .pipe(jsonEditor({ commit, date: readISODate('out-build'), version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 7046ee0..9aa7bb0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -288,3 +288,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d3ab651..1000abc 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -272,3 +272,3 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
- .pipe(jsonEditor({ commit, date: readISODate('out-build'), checksums, version }))
+ .pipe(jsonEditor({ commit, date: readISODate('out-build'), checksums, version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
.pipe(es.through(function (file) {

View File

@ -1,9 +1,9 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e12a33e..9300d62 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -188,5 +188,16 @@ function getNodeChecksum(expectedName) {
function extractAlpinefromDocker(nodeVersion, platform, arch) {
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index cb1a0a5..375851e 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -159,5 +159,16 @@ function getNodeChecksum(expectedName: string): string | undefined {
function extractAlpinefromDocker(nodeVersion: string, platform: string, arch: string) {
- const imageName = arch === 'arm64' ? 'arm64v8/node' : 'node';
+ let imageName = 'node';
+ let dockerPlatform = '';
@ -20,4 +20,4 @@ index e12a33e..9300d62 100644
log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageName}`);
- const contents = cp.execSync(`docker run --rm ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
+ const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 200 * 1024 * 1024, encoding: 'buffer' });
return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]);
// eslint-disable-next-line local/code-no-dangerous-type-assertions

View File

@ -1,22 +1,22 @@
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 7046ee0..faca888 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -376,3 +376,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d3ab651..63cd71f 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -369,3 +369,3 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(replace('@@APPNAME@@', product.applicationName))
- .pipe(rename('bin/code'));
+ .pipe(rename('bin/' + product.applicationName));
const policyDest = gulp.src('.build/policies/darwin/**', { base: '.build/policies/darwin' })
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
index 6324e98..3d2fba3 100644
index 2c3b710..8041f08 100644
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
@@ -445,3 +445,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
@@ -503,3 +503,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
- const target = resolve(this.environmentMainService.appRoot, 'bin', 'code');
+ const target = resolve(this.environmentMainService.appRoot, 'bin', this.productService.applicationName);
const source = `/usr/local/bin/${this.productService.applicationName}`;
@@ -680,3 +680,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
@@ -772,3 +772,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
if (this.environmentMainService.isBuilt) {
- return join(this.environmentMainService.appRoot, 'bin', 'code');
+ return join(this.environmentMainService.appRoot, 'bin', `${this.productService.applicationName}`);

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +0,0 @@
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
index 56220de..68d708f 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -142,3 +142,3 @@ configurationRegistry.registerConfiguration({
markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control Copilot (requires {0}).", '`#window.commandCenter#`'),
- default: true
+ default: false
},

View File

@ -1,13 +1,13 @@
diff --git a/cli/src/commands/serve_web.rs b/cli/src/commands/serve_web.rs
index 2ddefe1..ab9c658 100644
index d3f7db8..988024b 100644
--- a/cli/src/commands/serve_web.rs
+++ b/cli/src/commands/serve_web.rs
@@ -730,3 +730,3 @@ impl ConnectionManager {
@@ -756,3 +756,3 @@ impl ConnectionManager {
let dir_fut = cache.create(&args.release.commit, |target_dir| async move {
- info!(log_for_fut, "Downloading server {}", release_for_fut.commit);
+ info!(log_for_fut, "Downloading server {}/{}", release_for_fut.commit, release_for_fut.name);
let tmpdir = tempfile::tempdir().unwrap();
@@ -758,3 +758,3 @@ impl ConnectionManager {
@@ -784,3 +784,3 @@ impl ConnectionManager {
.join("bin")
- .join(args.release.quality.server_entrypoint());
+ .join(args.release.quality.server_entrypoint().unwrap());
@ -58,10 +58,10 @@ index 7d152c0..c0f2fb2 100644
+ Ok(server_name)
}
diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs
index cf00bc4..b564330 100644
index bbabadc..b454d0e 100644
--- a/cli/src/tunnels/code_server.rs
+++ b/cli/src/tunnels/code_server.rs
@@ -457,3 +457,3 @@ impl<'a> ServerBuilder<'a> {
@@ -462,3 +462,3 @@ impl<'a> ServerBuilder<'a> {
.join("bin")
- .join(self.server_params.release.quality.server_entrypoint()),
+ .join(self.server_params.release.quality.server_entrypoint().unwrap()),
@ -76,7 +76,7 @@ index 3d7d718..98529bc 100644
+ .join(self.quality.server_entrypoint().unwrap())
},
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 9033914..a39bbf7 100644
index 55f1dad..3b7ef5c 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -10,3 +10,3 @@ use serde::{Deserialize, Serialize};
@ -89,7 +89,7 @@ index 9033914..a39bbf7 100644
- },
+ }
};
@@ -58,4 +58,12 @@ fn quality_download_segment(quality: options::Quality) -> &'static str {
@@ -58,2 +58,10 @@ fn quality_download_segment(quality: options::Quality) -> &'static str {
+fn get_app_name() -> Result<&'static str, CodeError> {
+ VSCODE_CLI_APP_NAME.ok_or_else(|| CodeError::UpdatesNotConfigured("no app name"))
@ -99,17 +99,19 @@ index 9033914..a39bbf7 100644
+ VSCODE_CLI_DOWNLOAD_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no download url"))
+}
+
fn get_update_endpoint() -> Result<&'static str, CodeError> {
- VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no service url"))
+ VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no update url"))
fn get_update_endpoint() -> Result<String, CodeError> {
@@ -66,3 +74,3 @@ fn get_update_endpoint() -> Result<String, CodeError> {
.map(|s| s.to_string())
- .ok_or_else(|| CodeError::UpdatesNotConfigured("no service url"))
+ .ok_or_else(|| CodeError::UpdatesNotConfigured("no update url"))
}
@@ -67,3 +75,4 @@ impl UpdateService {
@@ -74,3 +82,4 @@ impl UpdateService {
- pub async fn get_release_by_semver_version(
+ /// Gets the latest commit for the target of the given quality.
+ pub async fn get_latest_commit(
&self,
@@ -72,14 +81,10 @@ impl UpdateService {
@@ -79,14 +88,10 @@ impl UpdateService {
quality: options::Quality,
- version: &str,
) -> Result<Release, AnyError> {
@ -120,19 +122,19 @@ index 9033914..a39bbf7 100644
let download_url = format!(
- "{}/api/versions/{}/{}/{}",
+ "{}/{}/{}/{}/latest.json",
update_endpoint,
&update_endpoint,
- version,
- download_segment,
quality_download_segment(quality),
+ platform.os(),
+ platform.arch(),
);
@@ -97,3 +102,3 @@ impl UpdateService {
@@ -104,3 +109,3 @@ impl UpdateService {
let res = response.json::<UpdateServerVersion>().await?;
- debug!(self.log, "Resolved version {} to {}", version, res.version);
+ debug!(self.log, "Resolved quality {} to {}", quality, res.version);
@@ -108,40 +113,17 @@ impl UpdateService {
@@ -115,40 +120,17 @@ impl UpdateService {
- /// Gets the latest commit for the target of the given quality.
- pub async fn get_latest_commit(
@ -151,7 +153,7 @@ index 9033914..a39bbf7 100644
+
let download_url = format!(
- "{}/api/latest/{}/{}",
- update_endpoint,
- &update_endpoint,
- download_segment,
- quality_download_segment(quality),
+ "{}/download/{}/{}-reh-web-{}-{}-{}.tar.gz",
@ -185,7 +187,7 @@ index 9033914..a39bbf7 100644
- })
+ Ok(download_url)
}
@@ -150,15 +132,3 @@ impl UpdateService {
@@ -157,15 +139,3 @@ impl UpdateService {
pub async fn get_download_stream(&self, release: &Release) -> Result<SimpleResponse, AnyError> {
- let update_endpoint = get_update_endpoint()?;
- let download_segment = release
@ -195,14 +197,14 @@ index 9033914..a39bbf7 100644
-
- let download_url = format!(
- "{}/commit:{}/{}/{}",
- update_endpoint,
- &update_endpoint,
- release.commit,
- download_segment,
- quality_download_segment(release.quality),
- );
+ let download_url = self.get_download_url(release)?;
@@ -196,13 +166,2 @@ pub enum TargetKind {
@@ -203,13 +173,2 @@ pub enum TargetKind {
-impl TargetKind {
- fn download_segment(&self, platform: Platform) -> Option<String> {
@ -216,7 +218,7 @@ index 9033914..a39bbf7 100644
-}
-
#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)]
@@ -225,30 +184,17 @@ pub enum Platform {
@@ -232,30 +191,17 @@ pub enum Platform {
impl Platform {
- pub fn archive(&self) -> Option<String> {
- match self {
@ -261,7 +263,7 @@ index 9033914..a39bbf7 100644
+ Platform::WindowsX86 => "ia42",
+ Platform::WindowsARM64 => "arm64",
}
@@ -257,17 +203,17 @@ impl Platform {
@@ -264,17 +210,17 @@ impl Platform {
- pub fn cli(&self) -> String {
+ pub fn os(&self) -> String {
@ -293,10 +295,19 @@ index 9033914..a39bbf7 100644
+ Platform::WindowsX86 => "win32",
+ Platform::WindowsARM64 => "win32",
}
@@ -276,6 +222,2 @@ impl Platform {
@@ -283,6 +229,2 @@ impl Platform {
- pub fn web(&self) -> String {
- format!("{}-web", self.headless())
- }
-
pub fn env_default() -> Option<Platform> {
diff --git a/extensions/tunnel-forwarding/src/extension.ts b/extensions/tunnel-forwarding/src/extension.ts
index 299c728..9fb635d 100644
--- a/extensions/tunnel-forwarding/src/extension.ts
+++ b/extensions/tunnel-forwarding/src/extension.ts
@@ -28,3 +28,3 @@ const cliPath = process.env.VSCODE_FORWARDING_IS_DEV
process.platform === 'darwin' ? 'bin' : '../../bin',
- vscode.env.appQuality === 'stable' ? 'code-tunnel' : 'code-tunnel-insiders',
+ '!!TUNNEL_APP_NAME!!'
) + (process.platform === 'win32' ? '.exe' : '');

View File

@ -0,0 +1,116 @@
diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
index 2543324..338c0ca 100644
--- a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
+++ b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
@@ -170,3 +170,4 @@ abstract class OpenChatGlobalAction extends Action2 {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
)
@@ -734,3 +735,3 @@ export function registerChatActions() {
precondition: ContextKeyExpr.and(
- ChatContextKeys.Setup.installed,
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Setup.disabled.negate(),
@@ -947,3 +948,4 @@ MenuRegistry.appendMenuItem(MenuId.CommandCenter, {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
),
@@ -964,3 +966,4 @@ MenuRegistry.appendMenuItem(MenuId.TitleBar, {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
),
@@ -981,3 +984,4 @@ registerAction2(class ToggleCopilotControl extends ToggleTitleBarConfigAction {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
),
@@ -1119,3 +1123,4 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
)
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
index fac472c..107a3b1 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -186,3 +186,3 @@ configurationRegistry.registerConfiguration({
markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control chat (requires {0}).", '`#window.commandCenter#`'),
- default: true
+ default: false
},
@@ -802,3 +802,3 @@ configurationRegistry.registerConfiguration({
description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."),
- default: false,
+ default: true,
scope: ConfigurationScope.WINDOW
diff --git a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
index 8953884..cf0c2d2 100644
--- a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
@@ -67,10 +67,9 @@ const chatViewDescriptor: IViewDescriptor = {
ctorDescriptor: new SyncDescriptor(ChatViewPane),
- when: ContextKeyExpr.or(
- ContextKeyExpr.or(
- ChatContextKeys.Setup.hidden,
- ChatContextKeys.Setup.disabled
- )?.negate(),
- ChatContextKeys.panelParticipantRegistered,
- ChatContextKeys.extensionInvalid
- )
+ when: ContextKeyExpr.and(
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
+ ChatContextKeys.Setup.disabled.negate(),
+ ChatContextKeys.Setup.hidden.negate(),
+ ChatContextKeys.panelParticipantRegistered,
+ ChatContextKeys.extensionInvalid.negate()
+ )
};
diff --git a/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts b/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts
index 62efc91..12e97c6 100644
--- a/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts
+++ b/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts
@@ -119,3 +119,3 @@ export namespace ChatContextKeyExprs {
export const chatSetupTriggerContext = ContextKeyExpr.or(
- ChatContextKeys.Setup.installed.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Entitlement.canSignUp
diff --git a/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts b/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
index 7f4dfea..5957267 100644
--- a/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
+++ b/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
@@ -540,3 +540,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
ctorDescriptor: new SyncDescriptor(DefaultBrowseMcpServersView, [{}]),
- when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyExpr.or(ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`), ProductQualityContext.notEqualsTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))),
+ when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ContextKeyExpr.has('config.chat.disableAIFeatures').negate(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyExpr.or(ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`), ProductQualityContext.notEqualsTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))),
weight: 40,
@@ -555,3 +555,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
ctorDescriptor: new SyncDescriptor(DefaultBrowseMcpServersView, [{ showWelcome: true }]),
- when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`).negate(), ProductQualityContext.isEqualTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`).negate()),
+ when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ContextKeyExpr.has('config.chat.disableAIFeatures').negate(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`).negate(), ProductQualityContext.isEqualTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`).negate()),
weight: 40,
diff --git a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
index 6f533f1..56c8f9d 100644
--- a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
+++ b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
@@ -685,3 +685,3 @@ registerAction2(class extends Action2 {
ChatContextKeys.Setup.disabled.negate(),
- ChatContextKeys.Setup.installed.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ContextKeyExpr.in(ResourceContextKey.Resource.key, 'git.mergeChanges'),
diff --git a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts
index cfea087..5f3efe3 100644
--- a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts
+++ b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts
@@ -1391,3 +1391,3 @@ registerAction2(class extends Action2 {
ChatContextKeys.Setup.disabled.negate(),
- ChatContextKeys.Setup.installed.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ContextKeyExpr.equals('scmProvider', 'git')

View File

@ -0,0 +1,128 @@
diff --git a/src/vs/platform/sign/browser/signService.ts b/src/vs/platform/sign/browser/signService.ts
index c288b2e..8303040 100644
--- a/src/vs/platform/sign/browser/signService.ts
+++ b/src/vs/platform/sign/browser/signService.ts
@@ -5,6 +5,2 @@
-import { importAMDNodeModule, resolveAmdNodeModulePath } from '../../../amdX.js';
-import { WindowIntervalTimer } from '../../../base/browser/dom.js';
-import { mainWindow } from '../../../base/browser/window.js';
-import { memoize } from '../../../base/common/decorators.js';
import { IProductService } from '../../product/common/productService.js';
@@ -13,30 +9,4 @@ import { ISignService } from '../common/sign.js';
-declare namespace vsdaWeb {
- export function sign(salted_message: string): string;
-
- // eslint-disable-next-line @typescript-eslint/naming-convention
- export class validator {
- free(): void;
- constructor();
- createNewMessage(original: string): string;
- validate(signed_message: string): 'ok' | 'error';
- }
-
- export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
- export function init(module_or_path?: InitInput | Promise<InitInput>): Promise<unknown>;
-}
-
-// Initialized if/when vsda is loaded
-declare const vsda_web: {
- default: typeof vsdaWeb.init;
- sign: typeof vsdaWeb.sign;
- validator: typeof vsdaWeb.validator;
-};
-
-const KEY_SIZE = 32;
-const IV_SIZE = 16;
-const STEP_SIZE = KEY_SIZE + IV_SIZE;
-
export class SignService extends AbstractSignService implements ISignService {
- constructor(@IProductService private readonly productService: IProductService) {
+ constructor(@IProductService _productService: IProductService) {
super();
@@ -44,53 +14,7 @@ export class SignService extends AbstractSignService implements ISignService {
protected override getValidator(): Promise<IVsdaValidator> {
- return this.vsda().then(vsda => {
- const v = new vsda.validator();
- return {
- createNewMessage: arg => v.createNewMessage(arg),
- validate: arg => v.validate(arg),
- dispose: () => v.free(),
- };
- });
- }
-
- protected override signValue(arg: string): Promise<string> {
- return this.vsda().then(vsda => vsda.sign(arg));
- }
-
- @memoize
- private async vsda(): Promise<typeof vsda_web> {
- const checkInterval = new WindowIntervalTimer();
- let [wasm] = await Promise.all([
- this.getWasmBytes(),
- new Promise<void>((resolve, reject) => {
- importAMDNodeModule('vsda', 'rust/web/vsda.js').then(() => resolve(), reject);
-
- // todo@connor4312: there seems to be a bug(?) in vscode-loader with
- // require() not resolving in web once the script loads, so check manually
- checkInterval.cancelAndSet(() => {
- if (typeof vsda_web !== 'undefined') {
- resolve();
- }
- }, 50, mainWindow);
- }).finally(() => checkInterval.dispose()),
- ]);
-
- const keyBytes = new TextEncoder().encode(this.productService.serverLicense?.join('\n') || '');
- for (let i = 0; i + STEP_SIZE < keyBytes.length; i += STEP_SIZE) {
- const key = await crypto.subtle.importKey('raw', keyBytes.slice(i + IV_SIZE, i + IV_SIZE + KEY_SIZE), { name: 'AES-CBC' }, false, ['decrypt']);
- wasm = await crypto.subtle.decrypt({ name: 'AES-CBC', iv: keyBytes.slice(i, i + IV_SIZE) }, key, wasm);
- }
-
- await vsda_web.default(wasm);
-
- return vsda_web;
+ throw new Error('error loading vsda');
}
- private async getWasmBytes(): Promise<ArrayBuffer> {
- const url = resolveAmdNodeModulePath('vsda', 'rust/web/vsda_bg.wasm');
- const response = await fetch(url);
- if (!response.ok) {
- throw new Error('error loading vsda');
- }
-
- return response.arrayBuffer();
+ protected override signValue(_arg: string): Promise<string> {
+ throw new Error('error loading vsda');
}
diff --git a/src/vs/server/node/remoteExtensionHostAgentServer.ts b/src/vs/server/node/remoteExtensionHostAgentServer.ts
index 269cc38..a53fca9 100644
--- a/src/vs/server/node/remoteExtensionHostAgentServer.ts
+++ b/src/vs/server/node/remoteExtensionHostAgentServer.ts
@@ -8,3 +8,2 @@ import type * as http from 'http';
import * as net from 'net';
-import { createRequire } from 'node:module';
import { performance } from 'perf_hooks';
@@ -41,3 +40,2 @@ import { setupServerServices, SocketServer } from './serverServices.js';
import { CacheControl, serveError, serveFile, WebClientServer } from './webClientServer.js';
-const require = createRequire(import.meta.url);
@@ -736,14 +734,3 @@ export async function createServer(address: string | net.AddressInfo | null, arg
- const vsdaMod = instantiationService.invokeFunction((accessor) => {
- const logService = accessor.get(ILogService);
- const hasVSDA = fs.existsSync(join(FileAccess.asFileUri('').fsPath, '../node_modules/vsda'));
- if (hasVSDA) {
- try {
- return require('vsda');
- } catch (err) {
- logService.error(err);
- }
- }
- return null;
- });
+ const vsdaMod = instantiationService.invokeFunction(() => null);

View File

@ -0,0 +1,9 @@
diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.contribution.ts
index d96926b..43f5d90 100644
--- a/src/vs/platform/update/common/update.config.contribution.ts
+++ b/src/vs/platform/update/common/update.config.contribution.ts
@@ -20,3 +20,3 @@ configurationRegistry.registerConfiguration({
enum: ['none', 'manual', 'start', 'default'],
- default: 'default',
+ default: 'none',
scope: ConfigurationScope.APPLICATION,

View File

@ -0,0 +1,185 @@
diff --git a/extensions/github/package.json b/extensions/github/package.json
index 726a882..b9a4969 100644
--- a/extensions/github/package.json
+++ b/extensions/github/package.json
@@ -44,19 +44,2 @@
},
- {
- "command": "github.copyVscodeDevLink",
- "title": "%command.copyVscodeDevLink%"
- },
- {
- "command": "github.copyVscodeDevLinkFile",
- "title": "%command.copyVscodeDevLink%"
- },
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "title": "%command.copyVscodeDevLink%"
- },
- {
- "command": "github.openOnVscodeDev",
- "title": "%command.openOnVscodeDev%",
- "icon": "$(globe)"
- },
{
@@ -72,11 +55,2 @@
],
- "continueEditSession": [
- {
- "command": "github.openOnVscodeDev",
- "when": "github.hasGitHubRepo",
- "qualifiedName": "Continue Working in vscode.dev",
- "category": "Remote Repositories",
- "remoteGroup": "virtualfs_44_vscode-vfs_2_web@2"
- }
- ],
"menus": {
@@ -91,18 +65,2 @@
},
- {
- "command": "github.copyVscodeDevLink",
- "when": "false"
- },
- {
- "command": "github.copyVscodeDevLinkFile",
- "when": "false"
- },
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "when": "false"
- },
- {
- "command": "github.openOnVscodeDev",
- "when": "false"
- },
{
@@ -112,42 +70,2 @@
],
- "file/share": [
- {
- "command": "github.copyVscodeDevLinkFile",
- "when": "github.hasGitHubRepo && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
- "editor/context/share": [
- {
- "command": "github.copyVscodeDevLink",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
- "explorer/context/share": [
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
- "editor/lineNumber/context": [
- {
- "command": "github.copyVscodeDevLink",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'",
- "group": "1_cutcopypaste@2"
- },
- {
- "command": "github.copyVscodeDevLink",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'",
- "group": "1_cutcopypaste@2"
- }
- ],
- "editor/title/context/share": [
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
"scm/historyItem/context": [
diff --git a/extensions/github/src/commands.ts b/extensions/github/src/commands.ts
index 48e9574..aa853a5 100644
--- a/extensions/github/src/commands.ts
+++ b/extensions/github/src/commands.ts
@@ -9,28 +9,3 @@ import { publishRepository } from './publish.js';
import { DisposableStore, getRepositoryFromUrl } from './util.js';
-import { LinkContext, getCommitLink, getLink, getVscodeDevHost } from './links.js';
-
-async function copyVscodeDevLink(gitAPI: GitAPI, useSelection: boolean, context: LinkContext, includeRange = true) {
- try {
- const permalink = await getLink(gitAPI, useSelection, true, getVscodeDevHost(), 'headlink', context, includeRange);
- if (permalink) {
- return vscode.env.clipboard.writeText(permalink);
- }
- } catch (err) {
- if (!(err instanceof vscode.CancellationError)) {
- vscode.window.showErrorMessage(err.message);
- }
- }
-}
-
-async function openVscodeDevLink(gitAPI: GitAPI): Promise<vscode.Uri | undefined> {
- try {
- const headlink = await getLink(gitAPI, true, false, getVscodeDevHost(), 'headlink');
- return headlink ? vscode.Uri.parse(headlink) : undefined;
- } catch (err) {
- if (!(err instanceof vscode.CancellationError)) {
- vscode.window.showErrorMessage(err.message);
- }
- return undefined;
- }
-}
+import { getCommitLink } from './links.js';
@@ -70,14 +45,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLink', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, true, context);
- }));
-
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLinkFile', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, false, context);
- }));
-
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLinkWithoutRange', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, true, context, false);
- }));
-
disposables.add(vscode.commands.registerCommand('github.openOnGitHub', async (url: string, historyItemId: string) => {
@@ -113,6 +76,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
- disposables.add(vscode.commands.registerCommand('github.openOnVscodeDev', async () => {
- return openVscodeDevLink(gitAPI);
- }));
-
return disposables;
diff --git a/extensions/github/src/extension.ts b/extensions/github/src/extension.ts
index 17906c5..86a0ca8 100644
--- a/extensions/github/src/extension.ts
+++ b/extensions/github/src/extension.ts
@@ -17,3 +17,2 @@ import { GitHubBranchProtectionProviderManager } from './branchProtection.js';
import { GitHubCanonicalUriProvider } from './canonicalUriProvider.js';
-import { VscodeDevShareProvider } from './shareProviders.js';
import { GitHubSourceControlHistoryItemDetailsProvider } from './historyItemDetailsProvider.js';
@@ -109,3 +108,2 @@ function initializeGitExtension(context: ExtensionContext, octokitService: Octok
disposables.add(new GitHubCanonicalUriProvider(gitAPI));
- disposables.add(new VscodeDevShareProvider(gitAPI));
setGitHubContext(gitAPI, disposables);
diff --git a/extensions/github/src/remoteSourceProvider.ts b/extensions/github/src/remoteSourceProvider.ts
index 291a3f1..6304ed8 100644
--- a/extensions/github/src/remoteSourceProvider.ts
+++ b/extensions/github/src/remoteSourceProvider.ts
@@ -10,3 +10,3 @@ import { Octokit } from '@octokit/rest';
import { getRepositoryFromQuery, getRepositoryFromUrl } from './util.js';
-import { getBranchLink, getVscodeDevHost } from './links.js';
+import { getBranchLink } from './links.js';
@@ -129,9 +129,2 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider {
}
- }, {
- label: l10n.t('Checkout on vscode.dev'),
- icon: 'globe',
- run(branch: string) {
- const link = getBranchLink(url, branch, getVscodeDevHost());
- env.openExternal(Uri.parse(link));
- }
}];

View File

@ -1,15 +1,5 @@
diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js
index 249777c..129af8a 100644
--- a/build/lib/builtInExtensions.js
+++ b/build/lib/builtInExtensions.js
@@ -87,5 +87,2 @@ function getExtensionDownloadStream(extension) {
}
- else if (productjson.extensionsGallery?.serviceUrl) {
- input = ext.fromMarketplace(productjson.extensionsGallery.serviceUrl, extension);
- }
else {
diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts
index e9a1180..b8348e3 100644
index d52567b..fe5b988 100644
--- a/build/lib/builtInExtensions.ts
+++ b/build/lib/builtInExtensions.ts
@@ -75,4 +75,2 @@ function getExtensionDownloadStream(extension: IExtensionDefinition) {

View File

@ -0,0 +1,167 @@
diff --git a/src/vs/workbench/contrib/commands/common/commands.contribution.ts b/src/vs/workbench/contrib/commands/common/commands.contribution.ts
index 3fd6b59..97a0e04 100644
--- a/src/vs/workbench/contrib/commands/common/commands.contribution.ts
+++ b/src/vs/workbench/contrib/commands/common/commands.contribution.ts
@@ -9,2 +9,3 @@ import { Action2, registerAction2 } from '../../../../platform/actions/common/ac
import { ICommandService } from '../../../../platform/commands/common/commands.js';
+import { ConfigurationScope, IConfigurationRegistry } from '../../../../platform/configuration/common/configurationRegistry.js';
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
@@ -12,2 +13,3 @@ import { ILogService } from '../../../../platform/log/common/log.js';
import { INotificationService } from '../../../../platform/notification/common/notification.js';
+import { Registry } from '../../../../platform/registry/common/platform.js';
@@ -156,2 +158,30 @@ class RunCommands extends Action2 {
+Registry.as<IConfigurationRegistry>('base.contributions.configuration')
+ .registerConfiguration({
+ id: 'commands',
+ order: 30,
+ title: nls.localize('commandsConfigurationTitle', "Commands"),
+ type: 'object',
+ properties: {
+ 'commands.filters': {
+ additionalProperties: {
+ type: 'string',
+ enum: ['ask', 'off', 'on'],
+ enumDescriptions: [
+ nls.localize('commands.filters.ask', 'Ask the user before executing the command.'),
+ nls.localize('commands.filters.off', 'The command is never authorized.'),
+ nls.localize('commands.filters.on', 'The command is always authorized.'),
+ ],
+ description: nls.localize('commands.filters.value', "Authorization for the command."),
+ },
+ description: nls.localize('commands.filters', "Controls which commands are authorized to be executed."),
+ default: {
+ 'workbench.action.terminal.newLocal': 'off'
+ },
+ scope: ConfigurationScope.APPLICATION,
+ tags: []
+ },
+ }
+ });
+
registerAction2(RunCommands);
diff --git a/src/vs/workbench/services/commands/common/commandService.ts b/src/vs/workbench/services/commands/common/commandService.ts
index 93d1631..0533cf0 100644
--- a/src/vs/workbench/services/commands/common/commandService.ts
+++ b/src/vs/workbench/services/commands/common/commandService.ts
@@ -8,3 +8,6 @@ import { Emitter, Event } from '../../../../base/common/event.js';
import { Disposable } from '../../../../base/common/lifecycle.js';
+import Severity from '../../../../base/common/severity.js';
import { CommandsRegistry, ICommandEvent, ICommandService } from '../../../../platform/commands/common/commands.js';
+import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
+import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
@@ -20,2 +23,3 @@ export class CommandService extends Disposable implements ICommandService {
private _starActivation: CancelablePromise<void> | null;
+ private _commandFilters: Record<string, "ask" | "off" | "on">
@@ -30,3 +34,5 @@ export class CommandService extends Disposable implements ICommandService {
@IExtensionService private readonly _extensionService: IExtensionService,
- @ILogService private readonly _logService: ILogService
+ @ILogService private readonly _logService: ILogService,
+ @IConfigurationService private readonly _configurationService: IConfigurationService,
+ @IDialogService private readonly _dialogService: IDialogService
) {
@@ -35,2 +41,9 @@ export class CommandService extends Disposable implements ICommandService {
this._starActivation = null;
+ this._commandFilters = this._configurationService.getValue('commands.filters') ?? { 'workbench.action.terminal.newLocal': 'off' };
+
+ this._configurationService.onDidChangeConfiguration(async (event) => {
+ if (event.affectsConfiguration('commands.filters')) {
+ this._commandFilters = this._configurationService.getValue('commands.filters') ?? { 'workbench.action.terminal.newLocal': 'off' };
+ }
+ })
}
@@ -57,2 +70,27 @@ export class CommandService extends Disposable implements ICommandService {
+ const filter = this._commandFilters[id];
+ if (filter === 'off') {
+ return Promise.reject(new Error(`command '${id}' not authorized`));
+ }
+ else if (filter === 'ask') {
+ const { result } = await this._dialogService.prompt({
+ type: Severity.Error,
+ message: `Are you sure you want to execute the command "${id}"?`,
+ buttons: [
+ {
+ label: 'Yes',
+ run: () => true
+ },
+ {
+ label: 'No',
+ run: () => false
+ }
+ ],
+ });
+
+ if (!result) {
+ return Promise.reject(new Error(`command '${id}' not authorized`));
+ }
+ }
+
if (commandIsRegistered) {
diff --git a/src/vs/workbench/services/commands/test/common/commandService.test.ts b/src/vs/workbench/services/commands/test/common/commandService.test.ts
index ca3be11..fb456a3 100644
--- a/src/vs/workbench/services/commands/test/common/commandService.test.ts
+++ b/src/vs/workbench/services/commands/test/common/commandService.test.ts
@@ -12,2 +12,7 @@ import { NullExtensionService } from '../../../extensions/common/extensions.js';
import { CommandService } from '../../common/commandService.js';
+import { NullPolicyService } from '../../../../../platform/policy/common/policy.js';
+import { FileService } from '../../../../../platform/files/common/fileService.js';
+import { URI } from '../../../../../base/common/uri.js';
+import { ConfigurationService } from '../../../../../platform/configuration/common/configurationService.js';
+import { TestDialogService } from '../../../../../platform/dialogs/test/common/testDialogService.js';
@@ -16,4 +21,16 @@ suite('CommandService', function () {
const store = ensureNoDisposablesAreLeakedInTestSuite();
+ const testDisposables = ensureNoDisposablesAreLeakedInTestSuite();
+ let nullConfigService: ConfigurationService
setup(function () {
+ const nullPolicyService = new NullPolicyService();
+ const nullLogService = testDisposables.add(new NullLogService());
+ const nullFileService = testDisposables.add(new FileService(nullLogService));
+ nullConfigService = testDisposables.add(new ConfigurationService(
+ URI.file('/config.json'),
+ nullFileService,
+ nullPolicyService,
+ nullLogService,
+ ));
+
store.add(CommandsRegistry.registerCommand('foo', function () { }));
@@ -30,3 +47,3 @@ suite('CommandService', function () {
}
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -50,3 +67,3 @@ suite('CommandService', function () {
- const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService()));
+ const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -68,3 +85,3 @@ suite('CommandService', function () {
}
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -85,3 +102,3 @@ suite('CommandService', function () {
}
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -125,3 +142,3 @@ suite('CommandService', function () {
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -166,3 +183,3 @@ suite('CommandService', function () {
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -187,3 +204,3 @@ suite('CommandService', function () {
};
- const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService()));
+ const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService(), nullConfigService, new TestDialogService()));

View File

@ -0,0 +1,107 @@
diff --git a/src/cli.ts b/src/cli.ts
index b643e34..2f228ef 100644
--- a/src/cli.ts
+++ b/src/cli.ts
@@ -5,2 +5,4 @@
+import * as path from 'node:path';
+import { createRequire } from 'node:module';
import './bootstrap-cli.js'; // this MUST come before other imports as it changes global state
@@ -10,3 +12,5 @@ import { resolveNLSConfiguration } from './vs/base/node/nls.js';
import { product } from './bootstrap-meta.js';
+import { getUserDataPath } from './vs/platform/environment/node/userDataPath.js';
+const require = createRequire(import.meta.url);
// NLS
@@ -21,2 +25,4 @@ process.env['VSCODE_CLI'] = '1';
+resolveUserProduct();
+
// Bootstrap ESM
@@ -26 +32,14 @@ await bootstrapESM();
await import('./vs/code/node/cli.js');
+
+function resolveUserProduct() {
+ const userDataPath = getUserDataPath({_:[]}, product.nameShort ?? 'code-oss-dev');
+ const userProductPath = path.join(userDataPath, 'product.json');
+
+ try {
+ // Assign the product configuration to the global scope
+ const productJson = require(userProductPath);
+
+ globalThis._VSCODE_USER_PRODUCT_JSON = productJson;
+ } catch (ex) {
+ }
+}
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
index ec188d0..0160be6 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -8,2 +8,3 @@ import * as fs from 'original-fs';
import * as os from 'node:os';
+import { createRequire } from 'node:module';
import { performance } from 'node:perf_hooks';
@@ -22,2 +23,4 @@ import { NativeParsedArgs } from './vs/platform/environment/common/argv.js';
+const require = createRequire(import.meta.url);
+
perf.mark('code/didStartMain');
@@ -109,2 +112,14 @@ registerListeners();
+function resolveUserProduct() {
+ const userProductPath = path.join(userDataPath, 'product.json');
+
+ try {
+ // Assign the product configuration to the global scope
+ const productJson = require(userProductPath);
+
+ globalThis._VSCODE_USER_PRODUCT_JSON = productJson;
+ } catch (ex) {
+ }
+}
+
/**
@@ -205,2 +220,3 @@ async function startup(codeCachePath: string | undefined, nlsConfig: INLSConfigu
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
+ resolveUserProduct();
diff --git a/src/typings/vscode-globals-product.d.ts b/src/typings/vscode-globals-product.d.ts
index ab169bd..2155f5c 100644
--- a/src/typings/vscode-globals-product.d.ts
+++ b/src/typings/vscode-globals-product.d.ts
@@ -43,2 +43,4 @@ declare global {
var _VSCODE_USE_RELATIVE_IMPORTS: boolean | undefined;
+
+ var _VSCODE_USER_PRODUCT_JSON: Record<string, any>;
}
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 6f093e9..b63af55 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,25 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ // Merge user-customized product.json
+ try {
+ const merge = (...objects: any[]) =>
+ objects.reduce((result, current) => {
+ Object.keys(current).forEach((key) => {
+ if (Array.isArray(result[key]) && Array.isArray(current[key])) {
+ result[key] = current[key];
+ } else if (typeof result[key] === 'object' && typeof current[key] === 'object') {
+ result[key] = merge(result[key], current[key]);
+ } else {
+ result[key] = current[key];
+ }
+ });
+
+ return result;
+ }, {}) as any;
+
+ const userProduct = globalThis._VSCODE_USER_PRODUCT_JSON || {};
+
+ product = merge(product, userProduct);
+ } catch (ex) {
+ }
+
// Running out of sources

View File

@ -0,0 +1,280 @@
diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts
index 24462a3..ecb43fd 100644
--- a/build/lib/extensions.ts
+++ b/build/lib/extensions.ts
@@ -94,3 +94,3 @@ function fromLocal(extensionPath: string, forWeb: boolean, disableMangle: boolea
function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string, disableMangle: boolean): Stream {
- const vsce = require('@vscode/vsce') as typeof import('@vscode/vsce');
+ const vsce = require('@vscodium/vsce') as typeof import('@vscodium/vsce');
const webpack = require('webpack');
@@ -208,3 +208,3 @@ function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string,
function fromLocalNormal(extensionPath: string): Stream {
- const vsce = require('@vscode/vsce') as typeof import('@vscode/vsce');
+ const vsce = require('@vscodium/vsce') as typeof import('@vscodium/vsce');
const result = es.through();
diff --git a/build/package-lock.json b/build/package-lock.json
index fe9be0c..9747dca 100644
--- a/build/package-lock.json
+++ b/build/package-lock.json
@@ -51,3 +51,3 @@
"@vscode/ripgrep": "^1.15.13",
- "@vscode/vsce": "3.6.1",
+ "@vscodium/vsce": "3.6.1-258428",
"ansi-colors": "^3.2.3",
@@ -1944,6 +1944,6 @@
},
- "node_modules/@vscode/vsce": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.6.1.tgz",
- "integrity": "sha512-UXtMgeCBl/t5zjn1TX1v1sl5L/oIv3Xc3pkKPGzaqeFCIkp5+wfFFDBXTWDt3d5uUulHnZKORHkMIsKNe9+k5A==",
+ "node_modules/@vscodium/vsce": {
+ "version": "3.6.1-258428",
+ "resolved": "https://registry.npmjs.org/@vscodium/vsce/-/vsce-3.6.1-258428.tgz",
+ "integrity": "sha512-B2uys5YU5MGNmzQPHsMsRXxzlQvZanhxE8Sfkd4Sr/LBN9BaV5yhMCppV7jyLUOQajj9K3YZThLqUYm4CCBy3A==",
"dev": true,
@@ -1956,3 +1956,2 @@
"@secretlint/secretlint-rule-preset-recommend": "^10.1.2",
- "@vscode/vsce-sign": "^2.0.0",
"azure-devops-node-api": "^12.5.0",
@@ -1991,148 +1990,3 @@
},
- "node_modules/@vscode/vsce-sign": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.7.tgz",
- "integrity": "sha512-cz0GFW8qCxpypOy3y509u26K1FIPMlDIHBwGmDyvEbgoma2v3y5YIHHuijr8zCYBp9kzCCOJd28s/0PG7cA7ew==",
- "dev": true,
- "hasInstallScript": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optionalDependencies": {
- "@vscode/vsce-sign-alpine-arm64": "2.0.6",
- "@vscode/vsce-sign-alpine-x64": "2.0.6",
- "@vscode/vsce-sign-darwin-arm64": "2.0.6",
- "@vscode/vsce-sign-darwin-x64": "2.0.6",
- "@vscode/vsce-sign-linux-arm": "2.0.6",
- "@vscode/vsce-sign-linux-arm64": "2.0.6",
- "@vscode/vsce-sign-linux-x64": "2.0.6",
- "@vscode/vsce-sign-win32-arm64": "2.0.6",
- "@vscode/vsce-sign-win32-x64": "2.0.6"
- }
- },
- "node_modules/@vscode/vsce-sign-alpine-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz",
- "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "alpine"
- ]
- },
- "node_modules/@vscode/vsce-sign-alpine-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz",
- "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "alpine"
- ]
- },
- "node_modules/@vscode/vsce-sign-darwin-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz",
- "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@vscode/vsce-sign-darwin-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz",
- "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@vscode/vsce-sign-linux-arm": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz",
- "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@vscode/vsce-sign-linux-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz",
- "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@vscode/vsce-sign-linux-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz",
- "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@vscode/vsce-sign-win32-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz",
- "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@vscode/vsce-sign-win32-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz",
- "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@vscode/vsce/node_modules/ansi-styles": {
+ "node_modules/@vscodium/vsce/node_modules/ansi-styles": {
"version": "4.3.0",
@@ -2152,3 +2006,3 @@
},
- "node_modules/@vscode/vsce/node_modules/chalk": {
+ "node_modules/@vscodium/vsce/node_modules/chalk": {
"version": "4.1.2",
@@ -2169,3 +2023,3 @@
},
- "node_modules/@vscode/vsce/node_modules/color-convert": {
+ "node_modules/@vscodium/vsce/node_modules/color-convert": {
"version": "2.0.1",
@@ -2182,3 +2036,3 @@
},
- "node_modules/@vscode/vsce/node_modules/color-name": {
+ "node_modules/@vscodium/vsce/node_modules/color-name": {
"version": "1.1.4",
@@ -2189,3 +2043,3 @@
},
- "node_modules/@vscode/vsce/node_modules/glob": {
+ "node_modules/@vscodium/vsce/node_modules/glob": {
"version": "11.1.0",
@@ -2213,3 +2067,3 @@
},
- "node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": {
+ "node_modules/@vscodium/vsce/node_modules/glob/node_modules/minimatch": {
"version": "10.1.1",
@@ -2229,3 +2083,3 @@
},
- "node_modules/@vscode/vsce/node_modules/has-flag": {
+ "node_modules/@vscodium/vsce/node_modules/has-flag": {
"version": "4.0.0",
@@ -2239,3 +2093,3 @@
},
- "node_modules/@vscode/vsce/node_modules/jsonc-parser": {
+ "node_modules/@vscodium/vsce/node_modules/jsonc-parser": {
"version": "3.3.1",
@@ -2243,9 +2097,11 @@
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@vscode/vsce/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@vscodium/vsce/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
@@ -2257,3 +2113,3 @@
},
- "node_modules/@vscode/vsce/node_modules/supports-color": {
+ "node_modules/@vscodium/vsce/node_modules/supports-color": {
"version": "7.2.0",
@@ -2270,12 +2126,2 @@
},
- "node_modules/@vscode/vsce/node_modules/yazl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
- "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-crc32": "~0.2.3"
- }
- },
"node_modules/@xmldom/xmldom": {
@@ -6955,2 +6801,12 @@
},
+ "node_modules/yazl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
+ "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3"
+ }
+ },
"node_modules/yocto-queue": {
diff --git a/build/package.json b/build/package.json
index 39db6b7..55beb4a 100644
--- a/build/package.json
+++ b/build/package.json
@@ -45,3 +45,3 @@
"@vscode/ripgrep": "^1.15.13",
- "@vscode/vsce": "3.6.1",
+ "@vscodium/vsce": "3.6.1-258428",
"ansi-colors": "^3.2.3",

42
patches/fix-gallery.patch Normal file
View File

@ -0,0 +1,42 @@
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index 3954823..f8026cd 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -112,2 +112,4 @@ export interface IProductConfiguration {
readonly accessSKUs?: string[];
+ readonly itemUrl: string;
+ readonly latestUrlTemplate?: string;
};
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
index 658219e..d1bf7a9 100644
--- a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
@@ -19,2 +19,3 @@ type ExtensionGalleryConfig = {
readonly nlsBaseUrl: string;
+ readonly latestUrlTemplate?: string;
};
@@ -49,3 +50,3 @@ export class ExtensionGalleryManifestService extends Disposable implements IExte
{
- id: `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
+ id: extensionsGallery.latestUrlTemplate ?? `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
type: ExtensionGalleryResourceType.ExtensionLatestVersionUri
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 5a6c171..112b31b 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,15 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ const { serviceUrl, controlUrl, itemUrl, latestUrlTemplate, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ latestUrlTemplate: env['VSCODE_GALLERY_LATEST_URL_TEMPLATE'] || latestUrlTemplate,
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
+ }
+ });
+
// Running out of sources

131
patches/fix-keymap.patch Normal file
View File

@ -0,0 +1,131 @@
diff --git a/.npmrc b/.npmrc
index 060337b..9292787 100644
--- a/.npmrc
+++ b/.npmrc
@@ -5,2 +5,3 @@ runtime="electron"
build_from_source="true"
+build_from_source_native_keymap="no"
legacy-peer-deps="true"
diff --git a/build/.moduleignore b/build/.moduleignore
index fc7c538..7aece0d 100644
--- a/build/.moduleignore
+++ b/build/.moduleignore
@@ -65,7 +65,7 @@ fsevents/test/**
-native-keymap/binding.gyp
-native-keymap/build/**
-native-keymap/src/**
-native-keymap/deps/**
-!native-keymap/build/Release/*.node
+@vscodium/native-keymap/binding.gyp
+@vscodium/native-keymap/build/**
+@vscodium/native-keymap/src/**
+@vscodium/native-keymap/deps/**
+!@vscodium/native-keymap/build/Release/*.node
diff --git a/eslint.config.js b/eslint.config.js
index e9809e6..6065336 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -1465,3 +1465,3 @@ export default tseslint.config(
'node:module',
- 'native-keymap',
+ '@vscodium/native-keymap',
'native-watchdog',
diff --git a/package-lock.json b/package-lock.json
index b7ae476..93692b8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -29,2 +29,3 @@
"@vscode/windows-registry": "^1.1.0",
+ "@vscodium/native-keymap": "3.3.7-258424",
"@xterm/addon-clipboard": "^0.3.0-beta.91",
@@ -46,3 +47,2 @@
"native-is-elevated": "0.8.0",
- "native-keymap": "^3.3.5",
"native-watchdog": "^1.4.1",
@@ -3300,2 +3300,9 @@
},
+ "node_modules/@vscodium/native-keymap": {
+ "version": "3.3.7-258424",
+ "resolved": "https://registry.npmjs.org/@vscodium/native-keymap/-/native-keymap-3.3.7-258424.tgz",
+ "integrity": "sha512-HZ20QfExV0kE2l939yE3wn0LezSV7BcpxOFmlUMUHBQbdANMSLkwzo6Zw1xOEZDoYm3VTDHt8/+WwLBR2MpA3A==",
+ "hasInstallScript": true,
+ "license": "MIT"
+ },
"node_modules/@webassemblyjs/ast": {
@@ -12516,5 +12523,6 @@
"node_modules/napi-build-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
- "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
+ "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
+ "license": "MIT"
},
@@ -12527,9 +12535,2 @@
},
- "node_modules/native-keymap": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/native-keymap/-/native-keymap-3.3.7.tgz",
- "integrity": "sha512-07n5kF0L9ERC9pilqEFucnhs1XG4WttbHAMWhhOSqQYXhB8mMNTSCzP4psTaVgDSp6si2HbIPhTIHuxSia6NPQ==",
- "hasInstallScript": true,
- "license": "MIT"
- },
"node_modules/native-watchdog": {
@@ -13922,5 +13923,6 @@
"node_modules/prebuild-install": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
- "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
+ "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
+ "license": "MIT",
"dependencies": {
@@ -13931,3 +13933,3 @@
"mkdirp-classic": "^0.5.3",
- "napi-build-utils": "^1.0.1",
+ "napi-build-utils": "^2.0.0",
"node-abi": "^3.3.0",
diff --git a/package.json b/package.json
index b9978d4..bffe52e 100644
--- a/package.json
+++ b/package.json
@@ -108,3 +108,3 @@
"native-is-elevated": "0.8.0",
- "native-keymap": "^3.3.5",
+ "@vscodium/native-keymap": "3.3.7-258424",
"native-watchdog": "^1.4.1",
diff --git a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
index d4ce18a..9db7f76 100644
--- a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
+++ b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
@@ -44,8 +44,8 @@ flakySuite('Native Modules (all platforms)', () => {
test('native-keymap', async () => {
- const keyMap = await import('native-keymap');
- assert.ok(typeof keyMap.onDidChangeKeyboardLayout === 'function', testErrorMessage('native-keymap'));
- assert.ok(typeof keyMap.getCurrentKeyboardLayout === 'function', testErrorMessage('native-keymap'));
+ const keyMap = await import('@vscodium/native-keymap');
+ assert.ok(typeof keyMap.onDidChangeKeyboardLayout === 'function', testErrorMessage('@vscodium/native-keymap'));
+ assert.ok(typeof keyMap.getCurrentKeyboardLayout === 'function', testErrorMessage('@vscodium/native-keymap'));
const result = keyMap.getCurrentKeyboardLayout();
- assert.ok(result, testErrorMessage('native-keymap'));
+ assert.ok(result, testErrorMessage('@vscodium/native-keymap'));
});
diff --git a/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts b/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts
index 8950ce2..f31cea6 100644
--- a/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts
+++ b/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts
@@ -5,3 +5,3 @@
-import type * as nativeKeymap from 'native-keymap';
+import type * as nativeKeymap from '@vscodium/native-keymap';
import * as platform from '../../../base/common/platform.js';
@@ -48,3 +48,3 @@ export class KeyboardLayoutMainService extends Disposable implements INativeKeyb
private async _doInitialize(): Promise<void> {
- const nativeKeymapMod = await import('native-keymap');
+ const nativeKeymapMod = await import('@vscodium/native-keymap');

View File

@ -0,0 +1,14 @@
diff --git a/build/npm/preinstall.ts b/build/npm/preinstall.ts
index 3476fca..e23329f 100644
--- a/build/npm/preinstall.ts
+++ b/build/npm/preinstall.ts
@@ -129,3 +129,3 @@ function installHeaders() {
// Refs https://chromium-review.googlesource.com/c/v8/v8/+/6879784
- if (process.platform === 'linux') {
+ if (process.platform === 'linux' && local) {
const homedir = os.homedir();
@@ -133,3 +133,3 @@ function installHeaders() {
const nodeGypCache = path.join(cachePath, 'node-gyp');
- const localHeaderPath = path.join(nodeGypCache, local!.target, 'include', 'node');
+ const localHeaderPath = path.join(nodeGypCache, local.target, 'include', 'node');
if (fs.existsSync(localHeaderPath)) {

View File

@ -1,8 +1,8 @@
diff --git a/build/.moduleignore b/build/.moduleignore
index 3e654cf..d9ee9f5 100644
index 7aece0d..baebcd5 100644
--- a/build/.moduleignore
+++ b/build/.moduleignore
@@ -126,9 +126,11 @@ vsda/**
@@ -128,9 +128,11 @@ vsda/**
-@vscode/policy-watcher/build/**
-@vscode/policy-watcher/.husky/**
@ -21,61 +21,33 @@ index 3e654cf..d9ee9f5 100644
+@vscodium/policy-watcher/index.d.ts
+!@vscodium/policy-watcher/build/Release/vscodium-policy-watcher.node
diff --git a/build/lib/policies.js b/build/lib/policies.js
index b6b5200..ae80196 100644
--- a/build/lib/policies.js
+++ b/build/lib/policies.js
@@ -81,3 +81,3 @@ class BasePolicy {
return [
- `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
+ `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
` <parentCategory ref="${this.category.name.nlsKey}" />`,
@@ -501,3 +501,3 @@ function renderADMX(regKey, versions, categories, policies) {
<policyNamespaces>
- <target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
+ <target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
</policyNamespaces>
diff --git a/build/lib/policies.ts b/build/lib/policies.ts
index 381d2f4..9cdec71 100644
--- a/build/lib/policies.ts
+++ b/build/lib/policies.ts
@@ -107,3 +107,3 @@ abstract class BasePolicy implements Policy {
return [
- `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
+ `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
` <parentCategory ref="${this.category.name.nlsKey}" />`,
@@ -703,3 +703,3 @@ function renderADMX(regKey: string, versions: string[], categories: Category[],
<policyNamespaces>
- <target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
+ <target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
</policyNamespaces>
diff --git a/eslint.config.js b/eslint.config.js
index dde2477..3701668 100644
index 6065336..1d36678 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -788,3 +788,3 @@ export default tseslint.config(
@@ -1448,3 +1448,3 @@ export default tseslint.config(
'@vscode/iconv-lite-umd',
- '@vscode/policy-watcher',
+ '@vscodium/policy-watcher',
'@vscode/proxy-agent',
diff --git a/package-lock.json b/package-lock.json
index f86132d..5f92dd2 100644
index 93692b8..fd1d22a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,3 +18,2 @@
"@vscode/iconv-lite-umd": "0.7.0",
@@ -17,3 +17,2 @@
"@vscode/iconv-lite-umd": "0.7.1",
- "@vscode/policy-watcher": "^1.3.2",
"@vscode/proxy-agent": "^0.32.0",
@@ -29,2 +28,3 @@
"@vscode/windows-registry": "^1.1.0",
"@vscode/proxy-agent": "^0.36.0",
@@ -30,2 +29,3 @@
"@vscodium/native-keymap": "3.3.7-258424",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@xterm/addon-clipboard": "^0.2.0-beta.95",
@@ -2943,22 +2943,2 @@
"@xterm/addon-clipboard": "^0.3.0-beta.91",
@@ -2952,22 +2952,2 @@
},
- "node_modules/@vscode/policy-watcher": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.2.tgz",
- "integrity": "sha512-fmNPYysU2ioH99uCaBPiRblEZSnir5cTmc7w91hAxAoYoGpHt2PZPxT5eIOn7FGmPOsjLdQcd6fduFJGYVD4Mw==",
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.5.tgz",
- "integrity": "sha512-k1n9gaDBjyVRy5yJLABbZCnyFwgQ8OA4sR3vXmXnmB+mO9JA0nsl/XOXQfVCoLasBu3UHCOfAnDWGn2sRzCR+A==",
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
@ -93,7 +65,7 @@ index f86132d..5f92dd2 100644
- }
- },
"node_modules/@vscode/proxy-agent": {
@@ -3361,2 +3341,22 @@
@@ -3307,2 +3287,22 @@
},
+ "node_modules/@vscodium/policy-watcher": {
+ "version": "1.3.2-252465",
@ -117,14 +89,14 @@ index f86132d..5f92dd2 100644
+ },
"node_modules/@webassemblyjs/ast": {
diff --git a/package.json b/package.json
index 5501dd8..f3f6b15 100644
index bffe52e..d0e04d0 100644
--- a/package.json
+++ b/package.json
@@ -77,3 +77,3 @@
"@vscode/iconv-lite-umd": "0.7.0",
@@ -79,3 +79,3 @@
"@vscode/iconv-lite-umd": "0.7.1",
- "@vscode/policy-watcher": "^1.3.2",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@vscode/proxy-agent": "^0.32.0",
"@vscode/proxy-agent": "^0.36.0",
diff --git a/src/vs/base/test/node/uri.perf.data.txt b/src/vs/base/test/node/uri.perf.data.txt
index ee0a24b..881ce36 100644
--- a/src/vs/base/test/node/uri.perf.data.txt
@ -225,7 +197,7 @@ index ee0a24b..881ce36 100644
+/Users/example/node_modules/@vscodium/policy-watcher/src/windows/NumberPolicy.hh
/Users/example/node_modules/@vscode/vscode-languagedetection/CODE_OF_CONDUCT.md
diff --git a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
index 2a6acba..167d759 100644
index 9db7f76..33beb8c 100644
--- a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
+++ b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
@@ -62,5 +62,5 @@ flakySuite('Native Modules (all platforms)', () => {
@ -238,7 +210,7 @@ index 2a6acba..167d759 100644
+ assert.ok(typeof watcher.createWatcher === 'function', testErrorMessage('@vscodium/policy-watcher'));
});
diff --git a/src/vs/platform/policy/node/nativePolicyService.ts b/src/vs/platform/policy/node/nativePolicyService.ts
index 67f7892..840d655 100644
index 5b08cd9..728d7bd 100644
--- a/src/vs/platform/policy/node/nativePolicyService.ts
+++ b/src/vs/platform/policy/node/nativePolicyService.ts
@@ -8,3 +8,3 @@ import { IStringDictionary } from '../../../base/common/collections.js';
@ -254,5 +226,5 @@ index 67f7892..840d655 100644
@@ -31,3 +31,3 @@ export class NativePolicyService extends AbstractPolicyService implements IPolic
try {
- this.watcher.value = createWatcher(this.productName, policyDefinitions, update => {
+ this.watcher.value = createWatcher('!!ORG_NAME!!', this.productName, policyDefinitions, update => {
+ this.watcher.value = createWatcher('VSCodium', this.productName, policyDefinitions, update => {
this._onDidPolicyChange(update);

View File

@ -1,12 +1,8 @@
diff --git a/remote/package-lock.json b/remote/package-lock.json
index f0ed1cc..a973af3 100644
index 30a7391..94f839a 100644
--- a/remote/package-lock.json
+++ b/remote/package-lock.json
@@ -40,2 +40,3 @@
"tas-client-umd": "0.2.0",
+ "tslib": "^2.6.3",
"vscode-oniguruma": "1.7.0",
@@ -1109,2 +1110,8 @@
@@ -1155,2 +1155,8 @@
},
+ "node_modules/tslib": {
+ "version": "2.7.0",
@ -16,10 +12,10 @@ index f0ed1cc..a973af3 100644
+ },
"node_modules/tunnel-agent": {
diff --git a/remote/package.json b/remote/package.json
index 33afee9..525ed07 100644
index 119d62c..9ef9624 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -35,2 +35,3 @@
"tas-client-umd": "0.2.0",
@@ -37,2 +37,3 @@
"tas-client": "0.3.1",
+ "tslib": "^2.6.3",
"vscode-oniguruma": "1.7.0",

View File

@ -0,0 +1,10 @@
diff --git a/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts b/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts
index 0eaa650..43eeee6 100644
--- a/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts
+++ b/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts
@@ -152,2 +152,5 @@ export class RemoteTunnelWorkbenchContribution extends Disposable implements IWo
const shouldRecommend = async () => {
+ if (!Boolean(remoteExtension)) {
+ return false;
+ }
if (this.storageService.getBoolean(REMOTE_TUNNEL_EXTENSION_RECOMMENDED_KEY, StorageScope.APPLICATION)) {

View File

@ -1,8 +1,30 @@
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 99e495a..996044a 100644
index 514edcd..9aa6920 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -10,5 +10,5 @@
@@ -26,3 +26,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
@@ -30,3 +30,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
@@ -34,3 +34,3 @@
"editor.defaultFormatter": "rust-lang.rust-analyzer",
- "editor.formatOnSave": true,
+ // "editor.formatOnSave": true,
},
@@ -41,4 +41,4 @@
// --- Files ---
- "files.trimTrailingWhitespace": true,
- "files.insertFinalNewline": true,
+ // "files.trimTrailingWhitespace": true,
+ // "files.insertFinalNewline": true,
"files.exclude": {
@@ -51,5 +51,5 @@
"build/**/*.js.map": true,
- "build/**/*.js": {
- "when": "$(basename).ts"
@ -11,27 +33,3 @@ index 99e495a..996044a 100644
+ // "when": "$(basename).ts"
+ // }
},
@@ -59,2 +59,3 @@
"build/npm/*.js": true,
+ "build/**/*.js": true,
"build/*.js": true
@@ -108,3 +109,3 @@
"gulp.autoDetect": "off",
- "files.insertFinalNewline": true,
+ // "files.insertFinalNewline": true,
"[plaintext]": {
@@ -114,3 +115,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
@@ -118,3 +119,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
@@ -122,3 +123,3 @@
"editor.defaultFormatter": "rust-lang.rust-analyzer",
- "editor.formatOnSave": true,
+ // "editor.formatOnSave": true,
},

View File

@ -1,15 +0,0 @@
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 5adfdfb..dfdb2af 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -115,6 +115,6 @@ function buildWin32Setup(arch, target) {
- if (quality === 'insider') {
- definitions['AppxPackage'] = `code_insiders_explorer_${arch}.appx`;
- definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
- }
+ // if (quality === 'insider') {
+ // definitions['AppxPackage'] = `code_insiders_explorer_${arch}.appx`;
+ // definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
+ // }

View File

@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index a148d51..fb2f8ff 100755
index 2f25764..742aaef 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -2,3 +2,3 @@
@ -9,17 +9,17 @@ index a148d51..fb2f8ff 100755
@@ -22,3 +22,3 @@ else
echo "Downloading remote sysroot"
- SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
+ SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
- SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e 'import { getVSCodeSysroot } from "./build/linux/debian/install-sysroot.ts"; (async () => { await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
+ SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e 'import { getVSCodeSysroot } from "./build/linux/debian/install-sysroot.ts"; (async () => { await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
fi
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c1d64c0..5ac9f95 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -232,9 +232,23 @@ function nodejs(platform, arch) {
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index cb1a0a5..6c21dd2 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -235,9 +235,23 @@ function nodejs(platform: string, arch: string): NodeJS.ReadWriteStream | undefi
case 'linux':
- return (product.nodejsRepository !== 'https://nodejs.org' ?
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 }) :
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName!, checksumSha256 }) :
- fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
- ).pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
- .pipe(filter('**/node'))
@ -33,7 +33,7 @@ index c1d64c0..5ac9f95 100644
+ .pipe(rename('node'));
+ }
+ if (product.nodejsRepository !== 'https://nodejs.org') {
+ return fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 })
+ return fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName!, checksumSha256 })
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
@ -47,13 +47,13 @@ index c1d64c0..5ac9f95 100644
+ .pipe(rename('node'));
+ }
case 'alpine':
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 26a6287..004417f 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -366,2 +366,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d3ab651..9dbe6f3 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -375,2 +375,12 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
+ const electronOverride = {};
+ const electronOverride: { repo?: string; tag?: string } = {};
+ if (process.env.VSCODE_ELECTRON_REPOSITORY) {
+ // official electron doesn't support all arch, override the repo with `VSCODE_ELECTRON_REPOSITORY`.
+ electronOverride.repo = process.env.VSCODE_ELECTRON_REPOSITORY;
@ -63,58 +63,33 @@ index 26a6287..004417f 100644
+ electronOverride.tag = process.env.VSCODE_ELECTRON_TAG;
+ }
+
let result = all
@@ -370,3 +380,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
let result: NodeJS.ReadWriteStream = all
@@ -379,3 +389,3 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523
- .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
+ .pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
- .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false, ...customElectronConfig }))
+ .pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false, ...customElectronConfig }))
.pipe(filter(['**', '!LICENSE', '!version'], { dot: true }));
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 4ef448d..057961c 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -140,3 +140,3 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
- ]
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 5b7ccd5..707129f 100644
index d00eb59..34ecdf1 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -140,3 +140,3 @@ export const referenceGeneratedDepsByArch = {
@@ -141,3 +141,3 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
- ]
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 612d0a3..8fbdf3d 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -74,3 +74,5 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -83,3 +85,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repository} @ ${actualVersion}`);
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 8a61159..9f3fd15 100644
index 2cab657..0d9dc55 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -83,3 +83,5 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
@@ -82,3 +82,5 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -92,3 +94,3 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
@@ -91,3 +93,3 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repository} @ ${actualVersion}`);

View File

@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index c27358a..3e33f75 100755
index 2c98e50..6ff90d4 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -76,2 +76,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
@ -18,7 +18,7 @@ index c27358a..3e33f75 100755
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
fi
diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
index 5294177..1e33aeb 100755
index 3db9047..1418fee 100755
--- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
+++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
@@ -9,2 +9,4 @@ elif [ "$VSCODE_ARCH" == "armhf" ]; then
@ -33,122 +33,65 @@ index 5744a5f..3fedbe9 100644
@@ -7 +7,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
84acc5a15566c98ddf80631731d672e0ce9febcf3f2e969101e0dfd7ef2405e3 x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz
+fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 5ac9f95..cd04bdf 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -50,2 +50,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index 6c21dd2..f986b4e 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index aafc64e..484d5f4 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index 19e50c0..47b25cf 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -24,2 +24,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 004417f..c38fc1a 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -475,2 +475,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index cd8610d..707581d 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
}
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
}
@@ -304,2 +304,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index c5d2163..da4fc1f 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -32,2 +32,3 @@ function getDebPackageArch(arch: string): string {
case 'arm64': return 'arm64';
+ case 'ppc64le': return 'ppc64el';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -142,2 +143,3 @@ function getRpmPackageArch(arch: string): string {
case 'arm64': return 'aarch64';
+ case 'ppc64le': return 'ppc64le';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -286,2 +288,3 @@ const BUILD_TARGETS = [
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index 34276ce..fdae163 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -54,2 +54,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'ppc64el':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
}
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d5efbdb..1d7e9d5 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -517,2 +517,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index addc386..423c415 100644
index 98a9630..6c6bbf5 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -61,2 +61,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -61,2 +61,9 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 'ppc64el':
+ case 'ppc64le':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`,
+ `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`,
+ `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 057961c..ed10661 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -141,2 +141,41 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.9.14)',
+ 'libdrm2 (>= 2.4.75)',
+ 'libexpat1 (>= 2.1~beta3)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.37.3)',
+ 'libgssapi-krb5-2 (>= 1.17)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libkrb5-3 (>= 1.6.dfsg.2)',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.30)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.5.0)',
+ 'libxkbfile1 (>= 1:1.1.0)',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 707129f..7fe60be 100644
index 34ecdf1..73d451f 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -141,2 +141,41 @@ export const referenceGeneratedDepsByArch = {
@@ -142,2 +142,41 @@ export const referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
@ -190,162 +133,35 @@ index 707129f..7fe60be 100644
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 8fbdf3d..011b36f 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -146,2 +146,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 9f3fd15..756b7fd 100644
index 0d9dc55..3086928 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -159,2 +159,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
@@ -158,2 +158,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index ce21d50..2c56b9c 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485e..43f2434 100644
index e97485e..c56d067 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
index 1f19c85..43ac5a0 100644
--- a/build/linux/rpm/dep-lists.js
+++ b/build/linux/rpm/dep-lists.js
@@ -316,2 +316,102 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index db52338..4231f09 100644
index 783923f..fba6ee4 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -315,2 +315,102 @@ export const referenceGeneratedDepsByArch = {
@@ -316,2 +316,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
@ -448,15 +264,6 @@ index db52338..4231f09 100644
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index a20b9c2..7b58961 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index c6a01da..3f3c3f5 100644
--- a/build/linux/rpm/types.ts
@ -471,27 +278,27 @@ index c6a01da..3f3c3f5 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index a39bbf7..84d3efe 100644
index 3b7ef5c..ec97760 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -176,2 +176,3 @@ pub enum Platform {
@@ -183,2 +183,3 @@ pub enum Platform {
LinuxARM32Legacy,
+ LinuxPPC64LE,
DarwinX64,
@@ -194,2 +195,3 @@ impl Platform {
@@ -201,2 +202,3 @@ impl Platform {
Platform::LinuxARM32Legacy => "armhf",
+ Platform::LinuxPPC64LE => "ppc64le",
Platform::DarwinX64 => "x64",
@@ -213,2 +215,3 @@ impl Platform {
@@ -220,2 +222,3 @@ impl Platform {
Platform::LinuxARM32Legacy => "linux",
+ Platform::LinuxPPC64LE => "linux",
Platform::DarwinX64 => "darwin",
@@ -241,2 +244,4 @@ impl Platform {
@@ -248,2 +251,4 @@ impl Platform {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "powerpc64")) {
+ Some(Platform::LinuxPPC64LE)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -268,2 +273,3 @@ impl fmt::Display for Platform {
@@ -275,2 +280,3 @@ impl fmt::Display for Platform {
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
Platform::DarwinX64 => "DarwinX64",
@ -505,36 +312,36 @@ index 44c8597..679aacb 100644
+ Platform::LinuxPPC64LE
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 8ea4c0b..b9d3b47 100644
index 8ea4c0b..94028e3 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -55,2 +55,3 @@ case $ARCH in
;;
+ ppc64el) LDCONFIG_ARCH="64bit";;
+ ppc64le) LDCONFIG_ARCH="64bit";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index e91310f..a28beef 100644
index 34eaca0..a754ff3 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -48,2 +48,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
@@ -70,2 +71,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -71,2 +72,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
@@ -105,2 +107,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -106,2 +108,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 0b42527..69d6eb3 100644
index 8961b90..b605be0 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -329,2 +329,3 @@ export const enum TargetPlatform {
@@ -331,2 +331,3 @@ export const enum TargetPlatform {
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',

View File

@ -1,60 +1,48 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index cd04bdf..e284026 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -51,2 +51,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index f986b4e..557990e 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 484d5f4..66c8e1f 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index 47b25cf..dd5bb56 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -25,2 +25,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 3ed2182..f0614d0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -492,2 +492,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 707581d..298181d 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
}
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
@@ -305,2 +305,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index da4fc1f..b64dd9a 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -33,2 +33,3 @@ function getDebPackageArch(arch: string): string {
case 'ppc64le': return 'ppc64el';
+ case 'riscv64': return 'riscv64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -144,2 +145,3 @@ function getRpmPackageArch(arch: string): string {
case 'ppc64le': return 'ppc64le';
+ case 'riscv64': return 'riscv64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -289,2 +291,3 @@ const BUILD_TARGETS = [
{ arch: 'ppc64le' },
+ { arch: 'riscv64' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index fdae163..a08ebda 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -57,2 +57,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`, `-l${chromiumSysroot}/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 1d7e9d5..3a5a9ca 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -518,2 +518,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 423c415..88ee2f0 100644
index 6c6bbf5..5ee005e 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -67,2 +67,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -68,2 +68,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`,
@ -63,58 +51,11 @@ index 423c415..88ee2f0 100644
+ `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index a85352e..4ccdcd9 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -178,2 +178,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 0d0f11b..b765492 100644
index 73d451f..7ea5910 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -178,2 +178,42 @@ export const referenceGeneratedDepsByArch = {
@@ -181,2 +181,42 @@ export const referenceGeneratedDepsByArch = {
],
+ 'riscv64': [
+ 'ca-certificates',
@ -157,58 +98,29 @@ index 0d0f11b..b765492 100644
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index ab6b826..fc2817a 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -144,2 +144,6 @@ async function getVSCodeSysroot(arch) {
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index c23db0f..50c28b2 100644
index 3086928..6e5246c 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -158,2 +158,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
@@ -162,2 +162,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index 2c56b9c..cadefc2 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index 43f2434..24fe452 100644
index c56d067..5d63ed2 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le' | 'riscv64';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index 7b58961..99a8cff 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index 3f3c3f5..d94537e 100644
@ -224,27 +136,27 @@ index 3f3c3f5..d94537e 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 84d3efe..4f2c8c2 100644
index ec97760..de9ca72 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -177,2 +177,3 @@ pub enum Platform {
@@ -184,2 +184,3 @@ pub enum Platform {
LinuxPPC64LE,
+ LinuxRISCV64,
DarwinX64,
@@ -196,2 +197,3 @@ impl Platform {
@@ -203,2 +204,3 @@ impl Platform {
Platform::LinuxPPC64LE => "ppc64le",
+ Platform::LinuxRISCV64 => "riscv64",
Platform::DarwinX64 => "x64",
@@ -216,2 +218,3 @@ impl Platform {
@@ -223,2 +225,3 @@ impl Platform {
Platform::LinuxPPC64LE => "linux",
+ Platform::LinuxRISCV64 => "linux",
Platform::DarwinX64 => "darwin",
@@ -246,2 +249,4 @@ impl Platform {
@@ -253,2 +256,4 @@ impl Platform {
Some(Platform::LinuxPPC64LE)
+ } else if cfg!(all(target_os = "linux", target_arch = "riscv64")) {
+ Some(Platform::LinuxRISCV64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -274,2 +279,3 @@ impl fmt::Display for Platform {
@@ -281,2 +286,3 @@ impl fmt::Display for Platform {
Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
@ -258,36 +170,36 @@ index 679aacb..1a37552 100644
+ Platform::LinuxRISCV64
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index b9d3b47..b18e402 100644
index 94028e3..c41cce7 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -56,2 +56,3 @@ case $ARCH in
ppc64el) LDCONFIG_ARCH="64bit";;
ppc64le) LDCONFIG_ARCH="64bit";;
+ riscv64) LDCONFIG_ARCH="RISC-V";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 5400065..be95b04 100644
index a754ff3..b607327 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -45,2 +45,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -49,2 +49,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
@@ -69,2 +70,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -73,2 +74,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
@@ -107,2 +109,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -111,2 +113,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'riscv64') {
+ return TargetPlatform.LINUX_RISCV64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 23f1bea..10152de 100644
index b605be0..22d2206 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -320,2 +320,3 @@ export const enum TargetPlatform {
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',

View File

@ -1,49 +1,65 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e284026..52f9a12 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index ff202a7..74bd1bc 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -54,2 +54,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 66c8e1f..8a8c1eb 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -28,2 +28,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index dd5bb56..e7881de 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index f0614d0..1438867 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -493,2 +493,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index b64dd9a..e146586 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -34,2 +34,3 @@ function getDebPackageArch(arch: string): string {
case 'riscv64': return 'riscv64';
+ case 'loong64': return 'loong64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -146,2 +147,3 @@ function getRpmPackageArch(arch: string): string {
case 'riscv64': return 'riscv64';
+ case 'loong64': return 'loong64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -292,2 +294,3 @@ const BUILD_TARGETS = [
{ arch: 'riscv64' },
+ { arch: 'loong64' },
];
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 15bd141..cabe16f 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -509,2 +509,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 4f2c8c2..4ea1bd2 100644
index f1afd87..0a5e6df 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -178,2 +178,3 @@ pub enum Platform {
@@ -188,2 +188,3 @@ pub enum Platform {
LinuxRISCV64,
+ LinuxLoong64,
DarwinX64,
@@ -198,2 +199,3 @@ impl Platform {
@@ -208,2 +209,3 @@ impl Platform {
Platform::LinuxRISCV64 => "riscv64",
+ Platform::LinuxLoong64 => "loong64",
Platform::DarwinX64 => "x64",
@@ -219,2 +221,3 @@ impl Platform {
@@ -229,2 +231,3 @@ impl Platform {
Platform::LinuxRISCV64 => "linux",
+ Platform::LinuxLoong64 => "linux",
Platform::DarwinX64 => "darwin",
@@ -251,2 +254,4 @@ impl Platform {
@@ -261,2 +264,4 @@ impl Platform {
Some(Platform::LinuxRISCV64)
+ } else if cfg!(all(target_os = "linux", target_arch = "loongarch64")) {
+ Some(Platform::LinuxLoong64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -280,2 +285,3 @@ impl fmt::Display for Platform {
@@ -290,2 +295,3 @@ impl fmt::Display for Platform {
Platform::LinuxRISCV64 => "LinuxRISCV64",
+ Platform::LinuxLoong64 => "LinuxLoong64",
Platform::DarwinX64 => "DarwinX64",
@ -65,28 +81,28 @@ index b18e402..0b7aa4e 100644
+ loongarch64) LDCONFIG_ARCH="double-float";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index be95b04..1a0decd 100644
index b607327..7162d83 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -46,2 +46,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
+ case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
@@ -71,2 +72,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -75,2 +76,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
+ case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
@@ -112,2 +114,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -116,2 +118,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'loong64') {
+ return TargetPlatform.LINUX_LOONG64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 10152de..3eb0412 100644
index 96d08cb..51e67ea 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -321,2 +321,3 @@ export const enum TargetPlatform {
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
LINUX_RISCV64 = 'linux-riscv64',
+ LINUX_LOONG64 = 'linux-loong64',

View File

@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index 3e33f75..052b38f 100755
index 6ff90d4..381150d 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -88,2 +88,14 @@ elif [ "$npm_config_arch" == "ppc64" ]; then
@ -24,63 +24,51 @@ index 3fedbe9..3c4e291 100644
@@ -8 +8,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
+7055f3d40e7195fb1e13f0fbaf5ffadf781bddaca5fd5e0d9972f4157a203fb5 s390x-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 52f9a12..4b890f4 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index af8403a..a697f8c 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -55,2 +55,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 8a8c1eb..1ef390b 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -29,2 +29,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index e7881de..affa8df 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ee66585..c9f9ceb 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -478,2 +478,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 298181d..dcc42a8 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64', s390x: 's390x' }[arch];
}
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64', s390x: 's390x' }[arch];
}
@@ -306,2 +306,3 @@ const BUILD_TARGETS = [
{ arch: 'riscv64' },
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index e146586..ca18865 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -35,2 +35,3 @@ function getDebPackageArch(arch: string): string {
case 'loong64': return 'loong64';
+ case 's390x': return 's390x';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -148,2 +149,3 @@ function getRpmPackageArch(arch: string): string {
case 'loong64': return 'loong64';
+ case 's390x': return 's390x';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -295,2 +297,3 @@ const BUILD_TARGETS = [
{ arch: 'loong64' },
+ { arch: 's390x' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index a08ebda..9527119 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -60,2 +60,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 's390x':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`, `-l${chromiumSysroot}/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/usr/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
+ break;
}
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d5f3ed8..ac87a54 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -520,2 +520,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 88ee2f0..8037cf2 100644
index 5ee005e..71fb92e 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -73,2 +73,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -74,2 +74,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 's390x':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`,
@ -89,58 +77,11 @@ index 88ee2f0..8037cf2 100644
+ `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 13cf8f0..9ffd805 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -220,2 +220,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 7e6938a..8a314ec 100644
index 7ea5910..9498993 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -220,2 +220,42 @@ export const referenceGeneratedDepsByArch = {
@@ -221,2 +221,42 @@ export const referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
@ -183,55 +124,35 @@ index 7e6938a..8a314ec 100644
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index e510426..ce7c75b 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -154,2 +154,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
+ triple = 's390x-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 42841f6..cffae59 100644
index 6e5246c..89fac34 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -167,2 +167,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
@@ -166,2 +166,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
+ triple = 's390x-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index cadefc2..8132812 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index 24fe452..9efba5b 100644
index 5d63ed2..5f793e2 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64' | 's390x';
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le' | 'riscv64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le' | 'riscv64' | 's390x';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index 4231f09..fc70433 100644
index fba6ee4..33efc80 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -415,2 +415,102 @@ export const referenceGeneratedDepsByArch = {
@@ -416,2 +416,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "s390x": [
@ -334,15 +255,6 @@ index 4231f09..fc70433 100644
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index 99a8cff..e2f3548 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index d94537e..3834b94 100644
--- a/build/linux/rpm/types.ts
@ -357,7 +269,7 @@ index d94537e..3834b94 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 0b7aa4e..e8b7ce0 100644
index dc9faac..9078cc9 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -58,2 +58,3 @@ case $ARCH in
@ -365,28 +277,28 @@ index 0b7aa4e..e8b7ce0 100644
+ s390x) LDCONFIG_ARCH="64bit";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index dedea4c..1043fe4 100644
index 7162d83..f6bb8fd 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -51,2 +51,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
+ case TargetPlatform.LINUX_S390X: return 'Linux S390X';
@@ -76,2 +77,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -77,2 +78,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
+ case TargetPlatform.LINUX_S390X: return TargetPlatform.LINUX_S390X;
@@ -120,2 +122,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -121,2 +123,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 's390x') {
+ return TargetPlatform.LINUX_S390X;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 6d554ce..51d23fa 100644
index f93e0ca..c4cc8c9 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
@@ -334,2 +334,3 @@ export const enum TargetPlatform {
LINUX_LOONG64 = 'linux-loong64',
+ LINUX_S390X = 'linux-s390x',

26
patches/linux/cli.patch Normal file
View File

@ -0,0 +1,26 @@
diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs
index bbabadc..08af0df 100644
--- a/cli/src/tunnels/code_server.rs
+++ b/cli/src/tunnels/code_server.rs
@@ -4,2 +4,4 @@
*--------------------------------------------------------------------------------------------*/
+#![allow(unused_imports)]
+
use super::paths::{InstalledServer, ServerPaths};
diff --git a/cli/src/tunnels/dev_tunnels.rs b/cli/src/tunnels/dev_tunnels.rs
index 0168ee6..5d0d8d4 100644
--- a/cli/src/tunnels/dev_tunnels.rs
+++ b/cli/src/tunnels/dev_tunnels.rs
@@ -4,2 +4,4 @@
*--------------------------------------------------------------------------------------------*/
+#![allow(unused_imports)]
+
use super::protocol::{self, PortPrivacy, PortProtocol};
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 55f1dad..f22a83c 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -4,2 +4,3 @@
*--------------------------------------------------------------------------------------------*/
+#![allow(unused_imports)]

View File

@ -1,13 +1,13 @@
diff --git a/build/npm/dirs.js b/build/npm/dirs.js
index b9645e6..22f3450 100644
--- a/build/npm/dirs.js
+++ b/build/npm/dirs.js
@@ -47,4 +47,2 @@ const dirs = [
diff --git a/build/npm/dirs.ts b/build/npm/dirs.ts
index 48d76e2..270b078 100644
--- a/build/npm/dirs.ts
+++ b/build/npm/dirs.ts
@@ -53,4 +53,2 @@ export const dirs = [
'extensions/vscode-test-resolver',
- 'remote',
- 'remote/web',
'test/automation',
@@ -59,4 +57,2 @@ if (fs.existsSync(`${__dirname}/../../.build/distro/npm`)) {
@@ -66,4 +64,2 @@ if (existsSync(`${import.meta.dirname}/../../.build/distro/npm`)) {
dirs.push('.build/distro/npm');
- dirs.push('.build/distro/npm/remote');
- dirs.push('.build/distro/npm/remote/web');

View File

@ -0,0 +1,123 @@
diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts
index 4a14c83..59c963b 100644
--- a/src/vs/platform/environment/common/environment.ts
+++ b/src/vs/platform/environment/common/environment.ts
@@ -137,2 +137,3 @@ export interface INativeEnvironmentService extends IEnvironmentService {
userDataPath: string;
+ userStatePath: string;
diff --git a/src/vs/platform/environment/common/environmentService.ts b/src/vs/platform/environment/common/environmentService.ts
index 535132f..edd76bc 100644
--- a/src/vs/platform/environment/common/environmentService.ts
+++ b/src/vs/platform/environment/common/environmentService.ts
@@ -28,2 +28,4 @@ export interface INativeEnvironmentPaths {
+ userStateDir: string;
+
/**
@@ -54,2 +56,5 @@ export abstract class AbstractNativeEnvironmentService implements INativeEnviron
+ @memoize
+ get userStatePath(): string { return this.paths.userStateDir; }
+
@memoize
@@ -75,3 +80,3 @@ export abstract class AbstractNativeEnvironmentService implements INativeEnviron
const key = toLocalISOString(new Date()).replace(/-|:|\.\d+Z$/g, '');
- this.args.logsPath = join(this.userDataPath, 'logs', key);
+ this.args.logsPath = join(this.userStatePath, key);
}
diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts
index ae9e7e1..3c6c6c5 100644
--- a/src/vs/platform/environment/node/environmentService.ts
+++ b/src/vs/platform/environment/node/environmentService.ts
@@ -11,2 +11,3 @@ import { getUserDataPath } from './userDataPath.js';
import { IProductService } from '../../product/common/productService.js';
+import { getUserStatePath } from './userStatePath.js';
@@ -18,3 +19,4 @@ export class NativeEnvironmentService extends AbstractNativeEnvironmentService {
tmpDir: tmpdir(),
- userDataDir: getUserDataPath(args, productService.nameShort)
+ userDataDir: getUserDataPath(args, productService.nameShort),
+ userStateDir: getUserStatePath(args, productService.nameShort)
}, productService);
diff --git a/src/vs/platform/environment/node/userStatePath.ts b/src/vs/platform/environment/node/userStatePath.ts
new file mode 100644
index 0000000..53f9e2f
--- /dev/null
+++ b/src/vs/platform/environment/node/userStatePath.ts
@@ -0,0 +1,42 @@
+import { homedir } from 'os';
+import { NativeParsedArgs } from '../common/argv.js';
+
+import { resolve, isAbsolute, join } from 'path';
+
+const cwd = process.env['VSCODE_CWD'] || process.cwd();
+
+export function getUserStatePath(cliArgs: NativeParsedArgs, productName: string): string {
+ const userStatePath = doGetUserStatePath(cliArgs, productName);
+ const pathsToResolve = [userStatePath];
+
+ if (!isAbsolute(userStatePath)) {
+ pathsToResolve.unshift(cwd);
+ }
+
+ return resolve(...pathsToResolve);
+}
+
+function doGetUserStatePath(cliArgs: NativeParsedArgs, productName: string): string {
+
+ // 0. Running out of sources has a fixed productName
+ if (process.env['VSCODE_DEV']) {
+ productName = 'code-oss-dev';
+ }
+
+ // 1. Support portable mode
+ const portablePath = process.env['VSCODE_PORTABLE'];
+ if (portablePath) {
+ return join(portablePath, 'user-state');
+ }
+
+ // 2. Support global VSCODE_APPSTATE environment variable
+ let appStatePath = process.env['VSCODE_APPSTATE'];
+ if (appStatePath) {
+ return join(appStatePath, productName);
+ }
+
+ // 4. Otherwise
+ appStatePath = process.env['XDG_STATE_HOME'] || join(homedir(), '.local', 'state');
+
+ return join(appStatePath, productName);
+}
diff --git a/src/vs/platform/window/common/window.ts b/src/vs/platform/window/common/window.ts
index fa297d1..839fd60 100644
--- a/src/vs/platform/window/common/window.ts
+++ b/src/vs/platform/window/common/window.ts
@@ -443,2 +443,3 @@ export interface INativeWindowConfiguration extends IWindowConfiguration, Native
userDataDir: string;
+ userStateDir: string;
diff --git a/src/vs/platform/windows/electron-main/windowsMainService.ts b/src/vs/platform/windows/electron-main/windowsMainService.ts
index 117dfd2..6b0458b 100644
--- a/src/vs/platform/windows/electron-main/windowsMainService.ts
+++ b/src/vs/platform/windows/electron-main/windowsMainService.ts
@@ -1511,2 +1511,3 @@ export class WindowsMainService extends Disposable implements IWindowsMainServic
userDataDir: this.environmentMainService.userDataPath,
+ userStateDir: this.environmentMainService.userStatePath,
diff --git a/src/vs/workbench/services/environment/electron-browser/environmentService.ts b/src/vs/workbench/services/environment/electron-browser/environmentService.ts
index 6cfa517..46286c6 100644
--- a/src/vs/workbench/services/environment/electron-browser/environmentService.ts
+++ b/src/vs/workbench/services/environment/electron-browser/environmentService.ts
@@ -153,3 +153,3 @@ export class NativeWorkbenchEnvironmentService extends AbstractNativeEnvironment
) {
- super(configuration, { homeDir: configuration.homeDir, tmpDir: configuration.tmpDir, userDataDir: configuration.userDataDir }, productService);
+ super(configuration, { homeDir: configuration.homeDir, tmpDir: configuration.tmpDir, userDataDir: configuration.userDataDir, userStateDir: configuration.userStateDir }, productService);
}
diff --git a/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts b/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts
index 6b7307e..c74476a 100644
--- a/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts
+++ b/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts
@@ -74,2 +74,3 @@ const TestNativeWindowConfiguration: INativeWindowConfiguration = {
userDataDir: joinPath(homeDir, product.nameShort).fsPath,
+ userStateDir: joinPath(homeDir, product.nameShort).fsPath,
profiles: { profile: NULL_PROFILE, all: [NULL_PROFILE], home: homeDir },

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
diff --git a/src/vs/base/common/policy.ts b/src/vs/base/common/policy.ts
index 8141b0f..33599d9 100644
--- a/src/vs/base/common/policy.ts
+++ b/src/vs/base/common/policy.ts
@@ -11,3 +11,3 @@ import { IDefaultAccount } from './defaultAccount.js';
*/
-export const LINUX_SYSTEM_POLICY_FILE_PATH = '/etc/vscode/policy.json';
+export const LINUX_SYSTEM_POLICY_FILE_PATH = '/etc/!!GLOBAL_DIRNAME!!/policy.json';

View File

@ -0,0 +1,14 @@
diff --git a/build/npm/postinstall.ts b/build/npm/postinstall.ts
index c4bbbf5..2a1c6c5 100644
--- a/build/npm/postinstall.ts
+++ b/build/npm/postinstall.ts
@@ -52,5 +52,6 @@ function npmInstall(dir: string, opts?: child_process.SpawnSyncOptions) {
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64') {
- run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
- }
+ const emulateArchList = ['arm64', 'arm', 'ppc64', 'riscv64', 's390x', 'loong64'];
+ if (process.env['DISABLE_QEMU'] !== 'true' && !!process.env['npm_config_arch'] && emulateArchList.includes(process.env['npm_config_arch'])) {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'tonistiigi/binfmt:latest', '--install', 'all'], opts);
+ }
run('sudo', [

View File

@ -1,25 +1,18 @@
diff --git a/src/bootstrap-esm.ts b/src/bootstrap-esm.ts
index f2cf101..d974f65 100644
index 54681a2..39f72ad 100644
--- a/src/bootstrap-esm.ts
+++ b/src/bootstrap-esm.ts
@@ -8,3 +8,3 @@ import * as fs from 'fs';
import { fileURLToPath } from 'url';
-import { createRequire, register } from 'node:module';
@@ -6,3 +6,3 @@
import * as fs from 'node:fs';
-import { register } from 'node:module';
+import * as Module from 'node:module';
import { product, pkg } from './bootstrap-meta.js';
@@ -14,3 +14,4 @@ import { INLSConfiguration } from './vs/nls.js';
-const require = createRequire(import.meta.url);
+// @ts-ignore
+const require = Module.createRequire(import.meta.url);
const __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -18,3 +19,4 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -13,3 +13,3 @@ import { INLSConfiguration } from './vs/nls.js';
// Install a hook to module resolution to map 'fs' to 'original-fs'
-if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) {
+// @ts-ignore
+if (Module.register && (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron'])) {
const jsCode = `
@@ -33,3 +35,4 @@ if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) {
@@ -28,3 +28,4 @@ if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) {
}`;
- register(`data:text/javascript;base64,${Buffer.from(jsCode).toString('base64')}`, import.meta.url);
+ // @ts-ignore

View File

@ -12,11 +12,11 @@ index a7142fe..526ca17 100644
+ }
}
diff --git a/src/vs/base/parts/ipc/node/ipc.net.ts b/src/vs/base/parts/ipc/node/ipc.net.ts
index 629f2c4..ec1acba 100644
index e58f678..add8048 100644
--- a/src/vs/base/parts/ipc/node/ipc.net.ts
+++ b/src/vs/base/parts/ipc/node/ipc.net.ts
@@ -774,3 +774,3 @@ function unmask(buffer: VSBuffer, mask: number): void {
@@ -839,3 +839,3 @@ function unmask(buffer: VSBuffer, mask: number): void {
// Related to https://github.com/microsoft/vscode/issues/30624
-export const XDG_RUNTIME_DIR = <string | undefined>process.env['XDG_RUNTIME_DIR'];
+export const XDG_RUNTIME_DIR = <string | undefined>(!!process.env.FLATPAK_ID ? join(process.env['XDG_RUNTIME_DIR'] as string, 'app', process.env.FLATPAK_ID) : process.env['XDG_RUNTIME_DIR']);
-export const XDG_RUNTIME_DIR = process.env['XDG_RUNTIME_DIR'];
+export const XDG_RUNTIME_DIR = !!process.env.FLATPAK_ID ? join(process.env['XDG_RUNTIME_DIR'] as string, 'app', process.env.FLATPAK_ID) : process.env['XDG_RUNTIME_DIR'];

View File

@ -1,17 +0,0 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index c1f22aa5002..a6fb2728b1f 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -53,8 +53,10 @@ function npmInstall(dir, opts) {
log(dir, `Installing dependencies inside container ${process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME']}...`);
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64') {
- run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
+ if ((process.env['npm_config_arch'] === 'arm64' || process.env['npm_config_arch'] === 'arm' || process.env['npm_config_arch'] === 'ppc64' || process.env['npm_config_arch'] === 'riscv64' || process.env['npm_config_arch'] === 's390x') && process.env['DISABLE_QEMU'] !== 'true') {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'tonistiigi/binfmt:latest', '--install', 'all'], opts);
+ } else if (process.env['npm_config_arch'] === 'loong64') {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'loongcr.lcpu.dev/multiarch/archlinux', '--reset', '-p', 'yes'], opts);
}
run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/root/vscode`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/root/.netrc`, '-w', path.resolve('/root/vscode', dir), process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'sh', '-c', `\"chown -R root:root ${path.resolve('/root/vscode', dir)} && npm i -g node-gyp-build && npm ci\"`], opts);
run('sudo', ['chown', '-R', `${userinfo.uid}:${userinfo.gid}`, `${path.resolve(root, dir)}`], opts);

View File

@ -1,72 +0,0 @@
diff --git a/src/main.ts b/src/main.ts
index fdc424e..46b014b 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -8,2 +8,3 @@ import * as fs from 'original-fs';
import * as os from 'os';
+import { createRequire } from 'node:module';
import { performance } from 'perf_hooks';
@@ -24,2 +25,3 @@ import { NativeParsedArgs } from './vs/platform/environment/common/argv.js';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
+const require = createRequire(import.meta.url);
@@ -112,2 +114,14 @@ registerListeners();
+function resolveUserProduct() {
+ const userProductPath = path.join(userDataPath, 'product.json');
+
+ try {
+ // Assign the product configuration to the global scope
+ const productJson = require(userProductPath);
+ // @ts-expect-error
+ globalThis._VSCODE_USER_PRODUCT_JSON = productJson;
+ } catch (ex) {
+ }
+}
+
/**
@@ -208,2 +222,3 @@ async function startup(codeCachePath: string | undefined, nlsConfig: INLSConfigu
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
+ resolveUserProduct();
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index d27cdce..d758c5e 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,36 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ const { serviceUrl, controlUrl, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
+ }
+ });
+
+ // Merge user-customized product.json
+ try {
+ const merge = (...objects: any[]) =>
+ objects.reduce((result, current) => {
+ Object.keys(current).forEach((key) => {
+ if (Array.isArray(result[key]) && Array.isArray(current[key])) {
+ result[key] = current[key];
+ } else if (typeof result[key] === 'object' && typeof current[key] === 'object') {
+ result[key] = merge(result[key], current[key]);
+ } else {
+ result[key] = current[key];
+ }
+ });
+
+ return result;
+ }, {}) as any;
+
+ const userProduct = (globalThis as Record<string, any>)._VSCODE_USER_PRODUCT_JSON || {};
+
+ product = merge(product, userProduct);
+ } catch (ex) {
+ }
+
// Running out of sources

View File

@ -1,51 +1,17 @@
diff --git a/build/lib/compilation.js b/build/lib/compilation.js
index 61a6d28..831b7c2 100644
--- a/build/lib/compilation.js
+++ b/build/lib/compilation.js
@@ -145,24 +145,3 @@ function compileTask(src, out, build, options = {}) {
}
- // mangle: TypeScript to TypeScript
- let mangleStream = event_stream_1.default.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new index_1.Mangler(compile.projectPath, (...data) => (0, fancy_log_1.default)(ansi_colors_1.default.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = event_stream_1.default.through(async function write(data) {
- const tsNormalPath = ts.normalizePath(data.path);
- const newContents = (await newContentsByFileName).get(tsNormalPath);
- if (newContents !== undefined) {
- data.contents = Buffer.from(newContents.out);
- data.sourceMap = newContents.sourceMap && JSON.parse(newContents.sourceMap);
- }
- this.push(data);
- }, async function end() {
- // free resources
- (await newContentsByFileName).clear();
- this.push(null);
- ts2tsMangler = undefined;
- });
- }
return srcPipe
- .pipe(mangleStream)
.pipe(generator.stream)
diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts
index a1de9f1..084fd2f 100644
index 948c6b4..66ecdd3 100644
--- a/build/lib/compilation.ts
+++ b/build/lib/compilation.ts
@@ -18,4 +18,2 @@ import File from 'vinyl';
import * as task from './task';
-import { Mangler } from './mangle/index';
-import { RawSourceMap } from 'source-map';
import ts = require('typescript');
@@ -133,27 +131,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
@@ -131,27 +131,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
- // mangle: TypeScript to TypeScript
- let mangleStream = es.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- let ts2tsMangler: Mangler | undefined = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = es.through(async function write(data: File & { sourceMap?: RawSourceMap }) {
- type TypeScriptExt = typeof ts & { normalizePath(path: string): string };
- const tsNormalPath = (<TypeScriptExt>ts).normalizePath(data.path);
- const tsNormalPath = (ts as TypeScriptExt).normalizePath(data.path);
- const newContents = (await newContentsByFileName).get(tsNormalPath);
- if (newContents !== undefined) {
- data.contents = Buffer.from(newContents.out);
@ -57,7 +23,7 @@ index a1de9f1..084fd2f 100644
- (await newContentsByFileName).clear();
-
- this.push(null);
- (<any>ts2tsMangler) = undefined;
- ts2tsMangler = undefined;
- });
- }
-

36
patches/sourcemaps.patch Normal file
View File

@ -0,0 +1,36 @@
diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts
index 24462a3..1daa855 100644
--- a/build/lib/extensions.ts
+++ b/build/lib/extensions.ts
@@ -33,4 +33,5 @@ const require = createRequire(import.meta.url);
const root = path.dirname(path.dirname(import.meta.dirname));
+const product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
const commit = getVersion(root);
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
@@ -181,3 +182,3 @@ function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string,
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
- return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
+ return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
}), 'utf8');
diff --git a/build/lib/optimize.ts b/build/lib/optimize.ts
index 58b8e07..f452614 100644
--- a/build/lib/optimize.ts
+++ b/build/lib/optimize.ts
@@ -229,3 +229,3 @@ export function bundleTask(opts: IBundleTaskOpts): () => NodeJS.ReadWriteStream
export function minifyTask(src: string, sourceMapBaseUrl?: string): (cb: any) => void {
- const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
+ const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
const target = getBuildTarget();
diff --git a/build/lib/util.ts b/build/lib/util.ts
index f1354b8..dda8c37 100644
--- a/build/lib/util.ts
+++ b/build/lib/util.ts
@@ -285,4 +285,4 @@ export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.Re
const contents = (f.contents as Buffer).toString('utf8');
- const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path.dirname(f.relative).replace(/\\/g, '/')}/$1`;
- f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
+ const fp = path.dirname(f.relative).replace(/\\/g, '/').replaceAll('/', '-');
+ f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, (_m, p) => `//# sourceMappingURL=${sourceMappingURLBase}/${fp}-${p.replaceAll('/', '-')}`));
return f;

59
patches/telemetry.patch Normal file
View File

@ -0,0 +1,59 @@
diff --git a/src/vs/platform/telemetry/common/telemetryService.ts b/src/vs/platform/telemetry/common/telemetryService.ts
index ef676bd..4feb98b 100644
--- a/src/vs/platform/telemetry/common/telemetryService.ts
+++ b/src/vs/platform/telemetry/common/telemetryService.ts
@@ -219,3 +219,3 @@ configurationRegistry.registerConfiguration({
'markdownDescription': getTelemetryLevelSettingDescription(),
- 'default': TelemetryConfiguration.ON,
+ 'default': TelemetryConfiguration.OFF,
'restricted': true,
@@ -245,3 +245,3 @@ configurationRegistry.registerConfiguration({
localize('telemetry.enableTelemetryMd', "Enable diagnostic data to be collected. This helps us to better understand how {0} is performing and where improvements need to be made. [Read more]({1}) about what we collect and our privacy statement.", product.nameLong, product.privacyStatementUrl),
- 'default': true,
+ 'default': false,
'restricted': true,
diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts
index d09ab3f..f37edd6 100644
--- a/src/vs/workbench/browser/workbench.contribution.ts
+++ b/src/vs/workbench/browser/workbench.contribution.ts
@@ -496,3 +496,3 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
'description': localize('enableNaturalLanguageSearch', "Controls whether the command palette should include similar commands. You must have an extension installed that provides Natural Language support."),
- 'default': true
+ 'default': false
},
diff --git a/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts b/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts
index 16fd396..587e1e3 100644
--- a/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts
+++ b/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts
@@ -28,3 +28,3 @@ configurationRegistry.registerConfiguration({
type: 'boolean',
- default: true,
+ default: false,
tags: ['experimental'],
diff --git a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts
index e5cec6f..9c9e169 100644
--- a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts
+++ b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts
@@ -113,3 +113,3 @@ registry.registerConfiguration({
'description': nls.localize('enableNaturalLanguageSettingsSearch', "Controls whether to enable the natural language search mode for settings. The natural language search is provided by a Microsoft online service."),
- 'default': true,
+ 'default': false,
'scope': ConfigurationScope.WINDOW,
diff --git a/src/vs/workbench/electron-browser/desktop.contribution.ts b/src/vs/workbench/electron-browser/desktop.contribution.ts
index 3517cc1..7b365fa 100644
--- a/src/vs/workbench/electron-browser/desktop.contribution.ts
+++ b/src/vs/workbench/electron-browser/desktop.contribution.ts
@@ -342,3 +342,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
'description': localize('telemetry.enableCrashReporting', "Enable crash reports to be collected. This helps us improve stability. \nThis option requires restart to take effect."),
- 'default': true,
+ 'default': false,
'tags': ['usesOnlineServices', 'telemetry'],
diff --git a/src/vs/workbench/services/assignment/common/assignmentService.ts b/src/vs/workbench/services/assignment/common/assignmentService.ts
index 4a3d96b..e587d5b 100644
--- a/src/vs/workbench/services/assignment/common/assignmentService.ts
+++ b/src/vs/workbench/services/assignment/common/assignmentService.ts
@@ -277,3 +277,3 @@ registry.registerConfiguration({
'description': localize('workbench.enableExperiments', "Fetches experiments to run from a Microsoft online service."),
- 'default': true,
+ 'default': false,
'scope': ConfigurationScope.APPLICATION,

View File

@ -29,16 +29,16 @@ index 0000000..1daa1fe
+
+export default codiumCompletionSpec;
diff --git a/extensions/terminal-suggest/src/terminalSuggestMain.ts b/extensions/terminal-suggest/src/terminalSuggestMain.ts
index 863cd21..a33e440 100644
index 95654ff..202474b 100644
--- a/extensions/terminal-suggest/src/terminalSuggestMain.ts
+++ b/extensions/terminal-suggest/src/terminalSuggestMain.ts
@@ -30,2 +30,4 @@ import codeTunnelCompletionSpec from './completions/code-tunnel';
import codeTunnelInsidersCompletionSpec from './completions/code-tunnel-insiders';
@@ -13,2 +13,4 @@ import codeCompletionSpec from './completions/code';
import codeInsidersCompletionSpec from './completions/code-insiders';
+import codiumCompletionSpec from './completions/codium';
+import codiumInsidersCompletionSpec from './completions/codium-insiders';
@@ -50,2 +52,4 @@ export const availableSpecs: Fig.Spec[] = [
import codeTunnelCompletionSpec from './completions/code-tunnel';
@@ -76,2 +78,4 @@ export const availableSpecs: Fig.Spec[] = [
npxCompletionSpec,
+ codiumInsidersCompletionSpec,
+ codiumCompletionSpec,
setLocationSpec,
pnpmCompletionSpec,

View File

@ -1,9 +1,9 @@
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index a2561be..a50958e 100644
index ae4fd9c..3744826 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -56,3 +56,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -58,3 +58,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
get cachePath(): Promise<string> {
- const result = path.join(tmpdir(), `vscode-${this.productService.quality}-${this.productService.target}-${process.arch}`);
+ const result = path.join(tmpdir(), `${this.productService.applicationName}-${this.productService.quality}-${this.productService.target}-${process.arch}`);
return fs.promises.mkdir(result, { recursive: true }).then(() => result);
return mkdir(result, { recursive: true }).then(() => result);

View File

@ -1,206 +1,203 @@
diff --git a/.npmrc b/.npmrc
index 05f84f8..62dbfd8 100644
index e4a5cc2..e3be238 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,3 +1,3 @@
disturl="https://electronjs.org/headers"
-target="34.5.1"
+target="34.5.4"
ms_build_id="11369351"
-target="39.2.3"
+target="39.2.7"
ms_build_id="12895514"
diff --git a/build/checksums/electron.txt b/build/checksums/electron.txt
index 9bfbc95..086fa93 100644
index ace84ba..5da4475 100644
--- a/build/checksums/electron.txt
+++ b/build/checksums/electron.txt
@@ -1,75 +1,75 @@
-249f89d35cb6bd74edc07551b141bffc2045847c4cf9e57e21089d5082bdb4b4 *chromedriver-v34.5.1-darwin-arm64.zip
-7ff68fd26f225deaa8c6fbcd76dc80a00f9ef73f9118075f3e2ab54dfb0c810e *chromedriver-v34.5.1-darwin-x64.zip
-749f692603527e8743c81d05eb2de2e281e2b03b148ec00379f13e8da17ca7a4 *chromedriver-v34.5.1-linux-arm64.zip
-14bcc062457cf31d606451aa7fae1baae720a944dead06231fe2a55f17d39966 *chromedriver-v34.5.1-linux-armv7l.zip
-57cf85eb9dafe28ccdd8ba4a095cb1fd5b8c71f0743bf532b132bc45e56630ef *chromedriver-v34.5.1-linux-x64.zip
-e90e10cf45f4aaba1d8b763279b7c4b85e1132bdc9faef834ffda41ee1460df8 *chromedriver-v34.5.1-mas-arm64.zip
-1206e1c71ec0360be9531e48c0292ffac37e40d8d7a48dd38f1108d3d3ccc0c0 *chromedriver-v34.5.1-mas-x64.zip
-1b226994cfa02663f23edfb0c8a4d3e218b7c4d037a90bbb4800a7c396b67d9f *chromedriver-v34.5.1-win32-arm64.zip
-dc38291ccad6f715a82cc2ce0cfffe3bb37612fa86013d405e878ea74e4c5fb8 *chromedriver-v34.5.1-win32-ia32.zip
-3ccc7e4b65adde12e26b7affeea30b9597b8841fc2a4d3c50c042e80b85853ac *chromedriver-v34.5.1-win32-x64.zip
-71fe75d29208ca9e38754d903af4d5d6e80c62b04097605c36ebf722c2447842 *electron-api.json
-009c833bd014b6f873974c5d3189905e705ebcb188a90ae05b60ea252319a46e *electron-v34.5.1-darwin-arm64-dsym-snapshot.zip
-c5f5722c55e75e9860cb203e03626c04f30f272ef17b735946fd723600ee07ea *electron-v34.5.1-darwin-arm64-dsym.zip
-06de49512ac4b0b4e374bdcd296e8c70584fb47207bb6caed9122e3cef5da8f7 *electron-v34.5.1-darwin-arm64-symbols.zip
-78411442b5bd2252cf4605b6a44c35ad6a06807d03c63c61726ad7693c6d5893 *electron-v34.5.1-darwin-arm64.zip
-e90b292974251336ae8990a74977065ac4dd6388836ccd1cfee3a1599a37bd39 *electron-v34.5.1-darwin-x64-dsym-snapshot.zip
-35a0ac52f6036cd0a7d4bc9848477b653095b210497e36797427ff8fe3194c7f *electron-v34.5.1-darwin-x64-dsym.zip
-0457bb7413c770245912342a6dd07c3588f586e8d868e0dd534179e22b07898c *electron-v34.5.1-darwin-x64-symbols.zip
-8d4bc5f4495ef952589891b6c70a86d8a9d143a1d4d90d15dd81926639822031 *electron-v34.5.1-darwin-x64.zip
-73be60acd1f3773f87b283eef8c26e257f16efd46a179c143311b1b9fcb4a61a *electron-v34.5.1-linux-arm64-debug.zip
-53677a8f437b36b79481eb6c6f9f7557606af04ef94cce751620e8206dad36a8 *electron-v34.5.1-linux-arm64-symbols.zip
-4c0d5833faa01cc3a586087b82f719c2fe331515d26bb3fa098dc79bd3ea153f *electron-v34.5.1-linux-arm64.zip
-73be60acd1f3773f87b283eef8c26e257f16efd46a179c143311b1b9fcb4a61a *electron-v34.5.1-linux-armv7l-debug.zip
-6eb39e79bd52f566d18a1140242c7484b89d7cd77573b92fc2e2993b51d6fbf1 *electron-v34.5.1-linux-armv7l-symbols.zip
-7ed517eeaff56960a01fe53fc445e4118135eeb8267d61c37ef9df943dcc35fb *electron-v34.5.1-linux-armv7l.zip
-582a2206cf1e09baa8511ca21b697cc49fddd76ef7723406b449b130b3d21730 *electron-v34.5.1-linux-x64-debug.zip
-7b5d60f3d6c4ef84b0855148f14295624527cc27ab395bf54640a06eb3f7a5b0 *electron-v34.5.1-linux-x64-symbols.zip
-3ae6f75fa08f5c1bdb7bbcec4dc9cf7d7f53ffcf6a4292e4a482b2ce515505e7 *electron-v34.5.1-linux-x64.zip
-e6ff5c411167c0cf8c82cd737f8d0c863f4371e8e1fe213d04b502584411d239 *electron-v34.5.1-mas-arm64-dsym-snapshot.zip
-8d1cb700f23d8ac7ec078d4d5d07018dfae594346e7bc5652356a5fe242a2b44 *electron-v34.5.1-mas-arm64-dsym.zip
-3b74614ef81382e63f189aceb87f6c3830a23ffed046d06f672d0c1a1b361e96 *electron-v34.5.1-mas-arm64-symbols.zip
-eabc29959b914f623f5f2e4011cb4e35182ed9528dc30664e59ca37c806c1d7d *electron-v34.5.1-mas-arm64.zip
-ee3de3f5a96efb0197022557ec2de36d92d7423426636577864b1ae744053dea *electron-v34.5.1-mas-x64-dsym-snapshot.zip
-a3db9cc489720701e3f35d2f7425c97e24f74fdb78a38bc0950b68b3f82aebb2 *electron-v34.5.1-mas-x64-dsym.zip
-a9131003b1ac4a3c3327ff405e1cd8f3e61dc8a73cfae3e05cb5eb0f2d872bee *electron-v34.5.1-mas-x64-symbols.zip
-1b44d42dbe9cb6bc5c2fb77f708d639e01f8ec6f74b95710fc6c8dbd70181f3b *electron-v34.5.1-mas-x64.zip
-4495d8bf4d3dbb5ebc3ad135f4658e09d706368d002af9f24d236e1a0a28e994 *electron-v34.5.1-win32-arm64-pdb.zip
-2c31fa61d24e736f3e327eba4d354c09471fba5aa277e215f7e2ea275b323a80 *electron-v34.5.1-win32-arm64-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-arm64-toolchain-profile.zip
-c0cff1c83094a430f1b202bb5035b51ebcefa54cd53d798bb63de9cb96abf223 *electron-v34.5.1-win32-arm64.zip
-d662fb7afc288aa15d929fecbb391c7067448ea86b4bf01e941fa8da744a8167 *electron-v34.5.1-win32-ia32-pdb.zip
-2cd1f41a3297fc271e426bd0cc5f8c3474f73438a7a303186701cb7d8b26bdb6 *electron-v34.5.1-win32-ia32-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-ia32-toolchain-profile.zip
-cf86edf6cdb47d5cfb00c4eb68f7a18d70bf9e33f1f6a0481d51673cf6af7050 *electron-v34.5.1-win32-ia32.zip
-9dd0e6f6ef53f8bd4d7ecd97a3bfc7e8a98de8771986071692afc57d57d199d6 *electron-v34.5.1-win32-x64-pdb.zip
-f50ab96420bddd43bd5dbd56130cfcd69eea2dba18bfd3c8c3b4bb189bb033e6 *electron-v34.5.1-win32-x64-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-x64-toolchain-profile.zip
-da606d1a085a52ddf5592110b58284fc3bf49f273f6f2e7d6a8341c98af8498e *electron-v34.5.1-win32-x64.zip
-793ae7822cbdad6270c318f3c93c0e8b4f9276dea6dd87db2d1297cadc7381c6 *electron.d.ts
-1d1465b4f6a3919a6e8e2fb8612b29f61b09d80f386a8fa2b806859b9be0d0bf *ffmpeg-v34.5.1-darwin-arm64.zip
-e138b6422dd1648cbe817b99f59476c65ed9946d50e50094124eae660b416378 *ffmpeg-v34.5.1-darwin-x64.zip
-346101611df565cabcfaa3515b1db3f70d0891ba8f1241074dd09b69e12630d2 *ffmpeg-v34.5.1-linux-arm64.zip
-5c77c712ee93bd26706daa78f0651d9b4ba8e4b46a115908f29d2742a2e1b9f0 *ffmpeg-v34.5.1-linux-armv7l.zip
-f5ab70d399d528450c9499966e88ce02a368bb8c7dd7ac0676a6628fa29b3f14 *ffmpeg-v34.5.1-linux-x64.zip
-10e3424c01b946274fa8c651d4ea79032637feca4c8712ebb1c00f392711594f *ffmpeg-v34.5.1-mas-arm64.zip
-4db0373915c2c2a055bd04755acdbcd08e00456f1fb92fefc0e05cd7fb48e4fa *ffmpeg-v34.5.1-mas-x64.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-arm64.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-ia32.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-x64.zip
-9ae3a56bf29d9704cd8cf32924aad89414f28d439e61dd54bdd8b4259b8d0b1d *hunspell_dictionaries.zip
-691e23913b7dbde1f9c9b6e9f13f06353d5c7927cbab6d48b7de43e76e5eacd8 *libcxx-objects-v34.5.1-linux-arm64.zip
-eaaa18779a96873daeece21c7c823d1f5d4759f8eca79dbbbf2055635df6112f *libcxx-objects-v34.5.1-linux-armv7l.zip
-6a2e3dfcea9d0582ecbc2a6be124f0e830e2194111bd9aa6a9843cb956c946c4 *libcxx-objects-v34.5.1-linux-x64.zip
-d4b70d94523ebd770009dba04c842450539a9bdc856de660a7391620d3bcc1fb *libcxx_headers.zip
-0ed01bc1908fd8f7519ccdf636b5732c6fe2c095a6dc35a13eb6c79b9e87d7d1 *libcxxabi_headers.zip
-f633cd0df0b08a15938ccdc77480bc28eb96fd85936ef76c343cc3f47fe74f3c *mksnapshot-v34.5.1-darwin-arm64.zip
-a8643285a2386960ceb608ff34d6dac33942142e821e2e0c670b282389a87e53 *mksnapshot-v34.5.1-darwin-x64.zip
-70863b79d4b7ab75d013a9192f7b23165e3e523b243632c7b55418767527e022 *mksnapshot-v34.5.1-linux-arm64-x64.zip
-c30319434ea16416c38bbdf847432fd37fd8e1aa78c1c22b6345d02e3743c016 *mksnapshot-v34.5.1-linux-armv7l-x64.zip
-e882e32b67501d36710da396167274158c1940afe67459ffa1d9df534a8f6df1 *mksnapshot-v34.5.1-linux-x64.zip
-af1d08dbd3c572ae10db0d24203a28d83c87e92e966064134ec5d7770c74e3ac *mksnapshot-v34.5.1-mas-arm64.zip
-238058875abebcb9233e609fadad76e85b79530f1bdfb60498b144fec82ff8fc *mksnapshot-v34.5.1-mas-x64.zip
-779e494cf2088ee386bb3ffd68d5efc2de3d43e5a2e6a5a768638799c460fdab *mksnapshot-v34.5.1-win32-arm64-x64.zip
-9f9790fab86209ca76ecfae3e20dc028bc0e49574872f6ac17b8856093811357 *mksnapshot-v34.5.1-win32-ia32.zip
-5c39077fd59426108f15e4981c7be5ebe56aa706b9d166853225de882fee8d6e *mksnapshot-v34.5.1-win32-x64.zip
+f68064647df820d9f207d039850cb055fddb2539a8b01838a5af787d9413dde1 *chromedriver-v34.5.4-darwin-arm64.zip
+7bf6fe1aa4be3a9b8a6583667a8c81c1bb7e01ec62a886c2fecd1fac108fa8ab *chromedriver-v34.5.4-darwin-x64.zip
+d5eb1a8e1748b74341acab18eb928a5e139f9a530e153c1c59b6e8383ff284bd *chromedriver-v34.5.4-linux-arm64.zip
+5d8f205a4b326b65528bf24988457129d40f5c393b0af43410d28e252bc2170d *chromedriver-v34.5.4-linux-armv7l.zip
+08d86fb4cd0a2ae190ef43de117fa8a1b02079b302709fc0d3d7df5b60869429 *chromedriver-v34.5.4-linux-x64.zip
+8ef6b029dbb939162ef43bfceffd14f36f4674c6ac28daf2be9f29fd58eab343 *chromedriver-v34.5.4-mas-arm64.zip
+53318dcb6d29f9e23efe88fda1fc88bc9d22aaa588538bfde42ecbc9f8c61306 *chromedriver-v34.5.4-mas-x64.zip
+130d0fc9f96c83486ee8e37121dc1a412bfa71f65aa8ad67f6f4e4ed30cc4d1e *chromedriver-v34.5.4-win32-arm64.zip
+00ef5fc423142150758fdb1968f0b0db996ae035c211df164e7af9422743dfae *chromedriver-v34.5.4-win32-ia32.zip
+01f6371487d173f0b2d8b41d7aab5affa9ac7f0cc5154f1ee39ba2120e36026d *chromedriver-v34.5.4-win32-x64.zip
+7cfbc13990047fe5917ad9cf3269f83c4759551a5c300011bf8eda3af96efabb *electron-api.json
+194074a282320343e0997c9071f70f64cafcd6113f7741a628c45249105a0801 *electron-v34.5.4-darwin-arm64-dsym-snapshot.zip
+cb2deebc1596cfdea6889f37c7827bcd31af9645209288b3a92d0f25b78761e8 *electron-v34.5.4-darwin-arm64-dsym.zip
+f2402094acdc73d8123a8535f623934948662316a340ec767c3ddfd75c73dd9b *electron-v34.5.4-darwin-arm64-symbols.zip
+92dc77f80fde9267ce2db8e7094c6e49b1766a19c3da90c25e2b5024b7a4501b *electron-v34.5.4-darwin-arm64.zip
+8ef7c227cce20a4da7dbfc85f83f4d1af0a8d698cc9e8cea8487571e412b1591 *electron-v34.5.4-darwin-x64-dsym-snapshot.zip
+276dce4418ad0c630c82757a5242575eff67793a10151a65c0ed81965cbf2b1c *electron-v34.5.4-darwin-x64-dsym.zip
+a7a57b5e02f86e545dadf479e5c2652760c1cb2f9738e0f75f3d3db06e40ee1d *electron-v34.5.4-darwin-x64-symbols.zip
+c631318672a1b6ecc9835ccf1501562380728a044a78de2fa105608a6610fa01 *electron-v34.5.4-darwin-x64.zip
+fd49778abd8eb28b00241137db97c5c9eaf27a52aadcbff3b8832d1eedfec954 *electron-v34.5.4-linux-arm64-debug.zip
+cef68467ee2d5e4ed0f60c44168b0e1c885582e6ff2dc6773848b6983fee5c08 *electron-v34.5.4-linux-arm64-symbols.zip
+f4b4dcc92a0f4bf92c68571868dd13d49b33bca51f7b1352319f55f5abbf3505 *electron-v34.5.4-linux-arm64.zip
+fd49778abd8eb28b00241137db97c5c9eaf27a52aadcbff3b8832d1eedfec954 *electron-v34.5.4-linux-armv7l-debug.zip
+2a3a78b068ac2cbe223d9aec30012125586ea84e357ba05cab9def032ce649c5 *electron-v34.5.4-linux-armv7l-symbols.zip
+048256f513e036df0f056c32b249b0ca48f6c3c0481b1e6bdc686df409289f8d *electron-v34.5.4-linux-armv7l.zip
+6e108ee8b073619bf0760947f4a71c0846602aa18820593566362eaadc4f8ff5 *electron-v34.5.4-linux-x64-debug.zip
+cc962ac6ec063d6cb222892e0e0dc1d9efdb64ac2086790e35d61f035b6d31fd *electron-v34.5.4-linux-x64-symbols.zip
+c8c871ef0cf83e1e937afa620e9eb2fa7fc22f5a1302e9ec666923fc22bc0bd0 *electron-v34.5.4-linux-x64.zip
+4131d194d5e7be6e1c2b6e43fd115f679264df397a1bbf653c1bbbbb83109cc0 *electron-v34.5.4-mas-arm64-dsym-snapshot.zip
+c252bc1b97bcc50615ac3b1296152481b4deaa7f79f6b0e42a56614991695413 *electron-v34.5.4-mas-arm64-dsym.zip
+1a435e5c0db5a52b607b57e5627d2862d67826a732ce4c2db9ecc86ff843ffd0 *electron-v34.5.4-mas-arm64-symbols.zip
+a309cc5d77994e27c2bdd2d753642dd217e909ca0d1de336d2f72f4f89bdac6f *electron-v34.5.4-mas-arm64.zip
+4388832d22a4f10ced28ed15daa254cb3805dbb0e33f2816a74c7b82dca93926 *electron-v34.5.4-mas-x64-dsym-snapshot.zip
+c6d7c1b5c605db62b25bb5ee0bd6159b9e063019d970e418e3c5773c8074e6b6 *electron-v34.5.4-mas-x64-dsym.zip
+539cd04e89ad98afa71159ba6e7e001387a5fc22ca9a1421890d8be0e1cbf8bd *electron-v34.5.4-mas-x64-symbols.zip
+c8319f49a04c9de7792225847f0f52358c0cdeedbc83dd8edc1949d917d3d377 *electron-v34.5.4-mas-x64.zip
+e5331a5cf9d100982ae15dddad4abdaedf5d7976f325af4c39d5bdd094122880 *electron-v34.5.4-win32-arm64-pdb.zip
+3e87f89afc24ce72b8dd8b7df56561dd7a5474cfe8df3788a94bbc5cf446fd87 *electron-v34.5.4-win32-arm64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-arm64-toolchain-profile.zip
+912346508a25c56a0f4a5eeda466bb145cabcbff9e68b0f8759bf8847e01dab3 *electron-v34.5.4-win32-arm64.zip
+f98be086997be9534e991a1374755cfcfbbf9f53a95ab17e9291ef224370da79 *electron-v34.5.4-win32-ia32-pdb.zip
+aaa12a153b0bb2746cf7acd8f994a2c714d27791393383e1e78403de16388131 *electron-v34.5.4-win32-ia32-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-ia32-toolchain-profile.zip
+19f272b112ad2b2468caa3a01ceaa0f4ab83e100a0decdda36b261c0b584e848 *electron-v34.5.4-win32-ia32.zip
+2bac4be5bed9eff8a7adb3732c112beaf06a643f8c8b91c02cf226101bee2ca3 *electron-v34.5.4-win32-x64-pdb.zip
+3eb34ea1553ccfbd33a95c65827dac1d07119ede1749b8010a113a1693b80394 *electron-v34.5.4-win32-x64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-x64-toolchain-profile.zip
+42c05407af7584c9b8134647b7f217ae683c3a04991d3de7524094cceff95505 *electron-v34.5.4-win32-x64.zip
+9a321b11432efca3d64439b1a398911de27c33fab0d6c3458924f5c71088b046 *electron.d.ts
+9483ab113a02e4520c20ea9d1b4464f0f677a4f9a408b0df12632a9e3ef4bade *ffmpeg-v34.5.4-darwin-arm64.zip
+c2fb961e4219f41772c796db759703240bfea2251366e6a77580805a70a8ecfe *ffmpeg-v34.5.4-darwin-x64.zip
+346101611df565cabcfaa3515b1db3f70d0891ba8f1241074dd09b69e12630d2 *ffmpeg-v34.5.4-linux-arm64.zip
+5c77c712ee93bd26706daa78f0651d9b4ba8e4b46a115908f29d2742a2e1b9f0 *ffmpeg-v34.5.4-linux-armv7l.zip
+f5ab70d399d528450c9499966e88ce02a368bb8c7dd7ac0676a6628fa29b3f14 *ffmpeg-v34.5.4-linux-x64.zip
+c7d14c50640283759e21932d3c478b3bad01e15add490efb3fc18446c32a5fe1 *ffmpeg-v34.5.4-mas-arm64.zip
+944918f694a9c37a74faee19feb989c02b78aaf32bfaa945ccce688fa76126ce *ffmpeg-v34.5.4-mas-x64.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-arm64.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-ia32.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-x64.zip
+2caad55fb223f7aa9652f9b68ce29440c8c714e9be65ff657682dc4f9a05d67a *hunspell_dictionaries.zip
+f584b71abbbb021e1002fdc85d67773898219af2982209abfff4f92f8b255243 *libcxx-objects-v34.5.4-linux-arm64.zip
+51e2db3cb02ab656404d7a28beab866d07b59dc2cc3127e5984ec5397f0f43d8 *libcxx-objects-v34.5.4-linux-armv7l.zip
+6e6ca30cdedb38b9bfbcf79d8f14f466ab023145c464c1f75d581482e9fe601f *libcxx-objects-v34.5.4-linux-x64.zip
+3191ca448f1978a80181ab0e31ecd7c1fbfe9cd409018b82f3879c0b2b299fc7 *libcxx_headers.zip
+6afe922a6e3006d40a5342719af3d40de669bb4e03aa938816f3732901677407 *libcxxabi_headers.zip
+6d3bed9a1eb9e6692f9c936336d65d4cc1f43401b5570e75b8e2838605057f88 *mksnapshot-v34.5.4-darwin-arm64.zip
+8022267c02204f75495a23177a144af4bdce8a56aa89b918df127e4b98cb7e2d *mksnapshot-v34.5.4-darwin-x64.zip
+4901999d515c571a9882a50fb6b92e12423c6fe3775d1d7574bdaf8cc9fd32bd *mksnapshot-v34.5.4-linux-arm64-x64.zip
+723c47202c2553c930057328be3ddfcef53da9e71140e8ba581295e3000dde00 *mksnapshot-v34.5.4-linux-armv7l-x64.zip
+0e8b27412c7a223035d16599134f783e9d77b9372898e64b45401e9c3cace29a *mksnapshot-v34.5.4-linux-x64.zip
+2d194587b295c6119b690917c1508d7ed8ee6e2798778afd6de5114cae1bd9b9 *mksnapshot-v34.5.4-mas-arm64.zip
+8e3c743227136f327e928bca25d8fe16a8f003feb33bb936dda4fb1f20765a88 *mksnapshot-v34.5.4-mas-x64.zip
+669c3375bac1ee3b2c8737432d0d2a6e2dc4d44f0d9fa1aa6a1aaf10b6db8224 *mksnapshot-v34.5.4-win32-arm64-x64.zip
+3a54ef58fb4cfc3e2f4b006f96b260e2ac980203a653ad6c1d2bd24d004106dc *mksnapshot-v34.5.4-win32-ia32.zip
+20ec7d86c5f42061c544a2461b6a35a2d69a38cbf69418043ed73856c2ac2a95 *mksnapshot-v34.5.4-win32-x64.zip
-1e88807c749e69c9a1b2abef105cf30dbec4fddc365afcaa624b1e2df80fe636 *chromedriver-v39.2.3-darwin-arm64.zip
-5cadee0db7684ae48a7f9f4f1310c3f6e1518b0fa88cf3efb36f58984763d43d *chromedriver-v39.2.3-darwin-x64.zip
-8de5ed25a12029ca999455c1cadf28341ec5e0de87a3a0c27dbb24df99f154b1 *chromedriver-v39.2.3-linux-arm64.zip
-766b16d8b1297738a0d1fa7e44d992142558f6e12820197746913385590f033e *chromedriver-v39.2.3-linux-armv7l.zip
-f35049fe3d8dbfdb7c541b59bdca6982b571761bb8cb7fc85515ceaea9451de9 *chromedriver-v39.2.3-linux-x64.zip
-bffe049ac205d87d14d8d2fb61c8f4dfd72b6d60fcd72ebedf7ef78c90ed52d9 *chromedriver-v39.2.3-mas-arm64.zip
-95a7142ba2ba6a418c6d804729dbe4f1fee897cd9ecaf32e554bb9cabff52b9c *chromedriver-v39.2.3-mas-x64.zip
-da1a59e49c16f7b0924b8b43847a19c93110f7d3b5d511cc41d7ec43a5d3807a *chromedriver-v39.2.3-win32-arm64.zip
-9ba84c1e03e31dd630439d53c975b51c21aa4038526dc01970b94464303db5c7 *chromedriver-v39.2.3-win32-ia32.zip
-82d88829e894277d737188afe22a2c82611107f7b31aeb221ae67e56a580dceb *chromedriver-v39.2.3-win32-x64.zip
-aca80a76b97d4b0aa3001882bd8cb7a8fb3f1df75cbc4f0d74eaad0c9df53c9b *electron-api.json
-0fb6f376da5f1bb06125134cd8e33d79a76c4d47b0bc51d20c3359e092095b98 *electron-v39.2.3-darwin-arm64-dsym-snapshot.zip
-6a9e67878637191edcefbd36b070137c3ca4f674307c255864eb9720128905c4 *electron-v39.2.3-darwin-arm64-dsym.zip
-30fd6a23a4a70de3882525c1666af98a2cf07e0826c54bef8f466efb25b1d2ec *electron-v39.2.3-darwin-arm64-symbols.zip
-2128a27c1b0fd80be9d608fb293639f76611b4108eca1e045c933fd04097a7b1 *electron-v39.2.3-darwin-arm64.zip
-68435db35b408d7eb3b9f208f2a7aa803bb8578f409ee99bab435118951a21a5 *electron-v39.2.3-darwin-x64-dsym-snapshot.zip
-59e821dbe0083d4e28a77dff5f72fa65c0db7e7966d760ebb5a41af92da43958 *electron-v39.2.3-darwin-x64-dsym.zip
-cdbe6988a9c9277d5a1acd2f3aaf08e603050f3dae0c10dee4b10d7a6f7cf818 *electron-v39.2.3-darwin-x64-symbols.zip
-f8085a04dc35bfe0c32c36e6feffde07de16459bf36dfab422760181717f5ac0 *electron-v39.2.3-darwin-x64.zip
-ce57eb6bd0ddfa1d37d8a35615276aeb60c19ae0636f21da3270cf07844074b4 *electron-v39.2.3-linux-arm64-debug.zip
-d2652381b24dc05c57a4ce4835b6efc796e6af14419ec80a9ab31f1c3c53f143 *electron-v39.2.3-linux-arm64-symbols.zip
-c58c5904d6015cbbfa5f04fbda5c83b9a276a3565b5f3fa166795c789b055cdd *electron-v39.2.3-linux-arm64.zip
-f0f0be5ea43c0fe84b9609dd5d2b98904c2d4bb8ced9c7c72b72cef377f2734a *electron-v39.2.3-linux-armv7l-debug.zip
-f08ae5371aca8a9f3775a6855c74da71d8817bd9f135c3ba975d428d14f3c42f *electron-v39.2.3-linux-armv7l-symbols.zip
-d7c2f0b5038c49b1e637f8dbda945be4e6f3a6d7ebf802543e6ef5093c9641ff *electron-v39.2.3-linux-armv7l.zip
-aa8b9e4b5eed3a0d2271c01d34551d7dc3e9be30a68af06604c1e2cd3cf93223 *electron-v39.2.3-linux-x64-debug.zip
-d5ebf9628e055b03c90d2d6d4ed86f443b900e264ff34061c953541e27fad5f9 *electron-v39.2.3-linux-x64-symbols.zip
-5eb51ebcb60487c4fc3a5b74ffb57a03eefd48def32200adf310ffaba4153d64 *electron-v39.2.3-linux-x64.zip
-f6cc53c0a45c73779c837d71693f54cc18b12b7148c82c689e2b059772182b84 *electron-v39.2.3-mas-arm64-dsym-snapshot.zip
-0caf9b7b958a7d2ba7e6f757f885842efda3ebc794a2ac048b90cde2926281ee *electron-v39.2.3-mas-arm64-dsym.zip
-c3164da6588c546e728b6fa0754042328cdb43e28dbb0fbcfbda740ed58038fe *electron-v39.2.3-mas-arm64-symbols.zip
-36ea0a98a0480096b4bc6e22c194e999cdfd7f1263c51f08d2815985a8a39ef7 *electron-v39.2.3-mas-arm64.zip
-73d356aa3b51cb261d30f0c27ce354b904d17c3c05c124a1f41112d085e66852 *electron-v39.2.3-mas-x64-dsym-snapshot.zip
-083f53e15a93404b309754df6b5e785785b28e01fdab08a89a45e5024f44e046 *electron-v39.2.3-mas-x64-dsym.zip
-cdd8aaf3b90aedc8c09a44efa03ec67e8426102fad7333ff6bfc257dc6fa01b7 *electron-v39.2.3-mas-x64-symbols.zip
-517d26f9b76b23976d0fc1dcc366e2b50b782592d9b0fc1d814dd1e7ce66efef *electron-v39.2.3-mas-x64.zip
-1a83af2259feb361f7ceb79e047b701ea8297d616487d9d6a79530014d5000c7 *electron-v39.2.3-win32-arm64-pdb.zip
-a154f036378a81859804f660773f6d434770fc311af86dfe01ace5346b9dc788 *electron-v39.2.3-win32-arm64-symbols.zip
-4aae37230f86b1590f102aa038268299bfb55ce2bf3b76ac4d6159e7b6a69f8e *electron-v39.2.3-win32-arm64-toolchain-profile.zip
-b68d623d70c4d0ed76c979027d2a4f6a16bc8dee6f243f5bc2064b4bb52bb34d *electron-v39.2.3-win32-arm64.zip
-be73842257d098ac911b3363e0c11b1d51ab8f6ebd641e512a2e15ccbea73193 *electron-v39.2.3-win32-ia32-pdb.zip
-5f65391f51b5d46d5e0ec7018f3febc0f5b6f072b57310d6d6c9b014de911ff4 *electron-v39.2.3-win32-ia32-symbols.zip
-4aae37230f86b1590f102aa038268299bfb55ce2bf3b76ac4d6159e7b6a69f8e *electron-v39.2.3-win32-ia32-toolchain-profile.zip
-6668fadbdd0283225f4bc60c711f8cd8ac316f43f486cd8a1f62a6a35f89cf7a *electron-v39.2.3-win32-ia32.zip
-430aa905803772476fc1f943e87e4a319d33880d88e08472504531b96834dff1 *electron-v39.2.3-win32-x64-pdb.zip
-9adb254e6ee0d96311cc8056049814436b7e973757d026aac3b533820be027ec *electron-v39.2.3-win32-x64-symbols.zip
-4aae37230f86b1590f102aa038268299bfb55ce2bf3b76ac4d6159e7b6a69f8e *electron-v39.2.3-win32-x64-toolchain-profile.zip
-d4365ad128bbdcb3df99dc4a0ad9de85c5e920903070a473b55377253b6c3fdd *electron-v39.2.3-win32-x64.zip
-feb2f068cd1e2f70bdd7816c13e58dcff9add18fdc8c8e19145a5fd343be541a *electron.d.ts
-4fe4db7f974c64497ddc07c3955a7d83dcfeba61bcec704b33638a4848038d49 *ffmpeg-v39.2.3-darwin-arm64.zip
-8fa2eb8ce5bdf2ecc4cf1f5ebc0f46a4e466fb4841513d482b99838b265995af *ffmpeg-v39.2.3-darwin-x64.zip
-bc72228a7380bc491783602d823bbe2d75e9e417d9b93a40a64be6ff5e3a1bcc *ffmpeg-v39.2.3-linux-arm64.zip
-322698b5ebfae62c34e98c2589b0906b99c15a8181ca3b6d1ffe166ec7d99ab1 *ffmpeg-v39.2.3-linux-armv7l.zip
-40d23294d7bcc48cb3f647f278672021e969a6332cd3cbb06ee681833759626a *ffmpeg-v39.2.3-linux-x64.zip
-4fe4db7f974c64497ddc07c3955a7d83dcfeba61bcec704b33638a4848038d49 *ffmpeg-v39.2.3-mas-arm64.zip
-8fa2eb8ce5bdf2ecc4cf1f5ebc0f46a4e466fb4841513d482b99838b265995af *ffmpeg-v39.2.3-mas-x64.zip
-d324af171e0ae820ec72075924ace2bda96e837ccc79e22b652dda6f82b673b6 *ffmpeg-v39.2.3-win32-arm64.zip
-d982077305d0e4296bed95eb7d2f1048a90b06cfb84d5ddf2a1928e1f07c4dba *ffmpeg-v39.2.3-win32-ia32.zip
-fa65c30f970f9724f4353d068a640592b09a15593b943fa7544cd07e9cace90e *ffmpeg-v39.2.3-win32-x64.zip
-244cd79cf68540e83449ad7d73183416413b3d603cee4496ec07705cbd9338ee *hunspell_dictionaries.zip
-f995e05259eeae64f0e6fbb6d2863aa2fc5846e3ff2dfb3cd22defc3bbbb68d7 *libcxx-objects-v39.2.3-linux-arm64.zip
-3607b4a15aa5f2dbd9e2338ca5451ad8ff646bdac415f9845352d53be1c26ddf *libcxx-objects-v39.2.3-linux-armv7l.zip
-b5020533566dbf22b0b890caa766eb2f4d11675fb1c79c2f41bc54da45a34fc2 *libcxx-objects-v39.2.3-linux-x64.zip
-919a2cc35920b21fbcc5834e858c400f51b607f084c593883c637dba27b9d29a *libcxx_headers.zip
-34e4b44f9c5e08b557a2caed55456ce7690abab910196a783a2a47b58d2b9ac9 *libcxxabi_headers.zip
-661d3578cabe5c98d806d5eeeaee48ac0c997114b9cd76388581e58f6d1c2ce1 *mksnapshot-v39.2.3-darwin-arm64.zip
-c3032c90522e4491e3de641fade3c90be109269108d4ff39b55dbf7331e6eb9a *mksnapshot-v39.2.3-darwin-x64.zip
-bcd8fb45f3b093208346dc2dd2e0b5b70d117e26a70b9619921b26a7f99ba310 *mksnapshot-v39.2.3-linux-arm64-x64.zip
-647762d3d8b01b5123ec11ea5b6984d7b78a26c79ea4d159a3b9fa780de03321 *mksnapshot-v39.2.3-linux-armv7l-x64.zip
-86c0febd8e9ddd8b700c6fb633ec1406bf4fe19ddc2801cb50c01ad345c8ce6e *mksnapshot-v39.2.3-linux-x64.zip
-3676ffc5f489b7d7faafe36fdb5f0f4ce98c8d6fcedfacf6feded7f21b2a50ea *mksnapshot-v39.2.3-mas-arm64.zip
-728936a18c11727d32730c89060dca2d998e7df9159f12bcba2bdf1b51584aad *mksnapshot-v39.2.3-mas-x64.zip
-a3ef9ab1ad5c8172c029dcc36abdc979ecf01f235516120f666595d4d5d02aee *mksnapshot-v39.2.3-win32-arm64-x64.zip
-02584df98255591438ffcc6589bd1ee60af8b8897d08079e7a7dd054e09614fe *mksnapshot-v39.2.3-win32-ia32.zip
-d4dd9de8637d7d8240b7a0686916c0fe84058ad00db9422f5491fbbd7a53cf4b *mksnapshot-v39.2.3-win32-x64.zip
+ab4c5ce64b92082b15f11ed2a89766fa5542b33d656872678ca0aee99e51a7c8 *chromedriver-v39.2.7-darwin-arm64.zip
+976f03f6e5e1680e5f8449bd04da531aabec0b664ff462a14f0d41fad0b437af *chromedriver-v39.2.7-darwin-x64.zip
+28649b04333820f826ea658d18f8111e0a187b3afc498af05b5c59b27ac00155 *chromedriver-v39.2.7-linux-arm64.zip
+149033ccf7f909214c7d69788bdef2e4ce164cae1091a2f8220f62e495576f9b *chromedriver-v39.2.7-linux-armv7l.zip
+6a071551518eddc688dd348d3e63b0c55f744589a041943e5706bebfd5337f19 *chromedriver-v39.2.7-linux-x64.zip
+824ea4699fd6aa6822e453496ebf576174d04e0f0991843b77eb346a842725bc *chromedriver-v39.2.7-mas-arm64.zip
+aa991650a765b2bc168f8b742341048fa030ee9e3bd0d0799e1b1d29a4c55d0b *chromedriver-v39.2.7-mas-x64.zip
+a8fc4467bf9be10de3e341648ccd6ad6d618b4456a744137e9f19bd5f9d9bd37 *chromedriver-v39.2.7-win32-arm64.zip
+01b247563a054617530e454646b086352bc03e02ad4f18e5b65b4e3dfd276a1e *chromedriver-v39.2.7-win32-ia32.zip
+a8bc2b9052ac8dadeaf88ea9cd6e46ec0032eee2345a0548741bfed922520579 *chromedriver-v39.2.7-win32-x64.zip
+23486b3effffe5b3bc3ca70261fc9abe2396fd5d018652494f73e3f48cfe57cf *electron-api.json
+8bee9e905544e60e08468efca91481ec467ab8f108a81846c365782ba0fc737c *electron-v39.2.7-darwin-arm64-dsym-snapshot.zip
+3be97c3152cd4a84a6fe4013f7e4712422015f4beeb13eb35f8b4d223307d39a *electron-v39.2.7-darwin-arm64-dsym.zip
+6d5551120d0564fc5596a3b724258da2ce632663d12782c8fdf15a2cc461ed95 *electron-v39.2.7-darwin-arm64-symbols.zip
+bda657a77c074ee0c6a0e5d5f6de17918d7cf959306b454f6fadb07a08588883 *electron-v39.2.7-darwin-arm64.zip
+39f0aab332506455337edff540d007c509e72d8c419cdc57f88a0312848f51c9 *electron-v39.2.7-darwin-x64-dsym-snapshot.zip
+1efed54563ede59d7ae9ba3d548b3e93ede1a4e5dfa510ca22036ea2dd8a2956 *electron-v39.2.7-darwin-x64-dsym.zip
+3b9bfe84905870c9c36939ffac545d388213ffbb296b969f35ae2a098f6a32b7 *electron-v39.2.7-darwin-x64-symbols.zip
+d7535e64ad54efcf0fae84d7fea4c2ee4727eec99c78d2a5acc695285cb0a9f0 *electron-v39.2.7-darwin-x64.zip
+59a3bd71f9c1b355dfbc43f233126cd32b82a53439f0d419e6349044d39e8bbf *electron-v39.2.7-linux-arm64-debug.zip
+1b326f1a5bea47d9be742554434ddf4f094d7bcdd256f440b808359dc78fcd33 *electron-v39.2.7-linux-arm64-symbols.zip
+445465a43bd2ffaec09877f4ed46385065632a4683c2806cc6211cc73c110024 *electron-v39.2.7-linux-arm64.zip
+300c8d11d82cd1257b08e5a08c5e315f758133b627c0271a0f249ba3cb4533d2 *electron-v39.2.7-linux-armv7l-debug.zip
+034dca3c137c7bfe0736456c1aa0941721e3a9f3a8a72a2786cb817d4edb0f9d *electron-v39.2.7-linux-armv7l-symbols.zip
+5de99e9f4de8c9ac2fb93df725e834e3e93194c08c99968def7f7b78594fc97c *electron-v39.2.7-linux-armv7l.zip
+64ef2ae24ae0869ebadb34b178fd7e8375d750d7afe39b42cfa28824f0d11445 *electron-v39.2.7-linux-x64-debug.zip
+63466c4b6024ae38fdb38ff116abd561b9e36b8d4cd8f8aefbe41289950dba0c *electron-v39.2.7-linux-x64-symbols.zip
+2f5285ef563dca154aa247696dddef545d3d895dd9b227ed423ea0d43737c22c *electron-v39.2.7-linux-x64.zip
+ef5a108c1d10148aa031300da10c78feee797afe4ca2a2839819fd8434529860 *electron-v39.2.7-mas-arm64-dsym-snapshot.zip
+9dd01dc9071b1db9d8fb5e9c81eaa96f551db0a982994881e5750cde2432b0f0 *electron-v39.2.7-mas-arm64-dsym.zip
+2cf34289d79906c81b3dfd043fbe19a9604cecedd9ebda6576fa3c6f27edfe23 *electron-v39.2.7-mas-arm64-symbols.zip
+5658d58eacb99fb2a22df0d52ca0507d79f03c85515a123d5e9bee5e0749b93d *electron-v39.2.7-mas-arm64.zip
+92cd45c3fa64e2889fd1bc6b165c4d12bea40786ce59d6d204cadec6039a8e2a *electron-v39.2.7-mas-x64-dsym-snapshot.zip
+21464abc837aeab1609fbfa33aa82793e9d32a597db28ea4da483a9d6b6c668a *electron-v39.2.7-mas-x64-dsym.zip
+8d6e7ffee482514b62465e418049bdf717d308118461e5d97480f5a0eb0b9e20 *electron-v39.2.7-mas-x64-symbols.zip
+e3b4169ab7bf3bc35cc720ef99032acd3d0eb1521524b5c4667898758dd4e9a3 *electron-v39.2.7-mas-x64.zip
+3f1d549214a2430d57e5ab8d3cc9d89363340b16905014e35417c632a94732f6 *electron-v39.2.7-win32-arm64-pdb.zip
+984e1d7718bc920e75a38b114ff73fa52647349763f76e91b64458e5d0fde65f *electron-v39.2.7-win32-arm64-symbols.zip
+ed66f333ff7b385b2f40845178dc2dc4f25cc887510d766433392733fdd272a3 *electron-v39.2.7-win32-arm64-toolchain-profile.zip
+56c6f8d957239b7e8d5a214255f39007d44abc98f701ab61054afa83ad46e80f *electron-v39.2.7-win32-arm64.zip
+c885a8af3226f28081106fa89106f4668b907a53ab3997f3b101b487a76d2878 *electron-v39.2.7-win32-ia32-pdb.zip
+34edebab8fb5458d97a23461213b39360b5652f8dd6fe8bf7f9c10a17b25a1d2 *electron-v39.2.7-win32-ia32-symbols.zip
+ed66f333ff7b385b2f40845178dc2dc4f25cc887510d766433392733fdd272a3 *electron-v39.2.7-win32-ia32-toolchain-profile.zip
+85acd7db5dbb39e16d6c798a649342969569caa2c71d6b5bb1f0c8ae96bca32e *electron-v39.2.7-win32-ia32.zip
+e6a8e1164106548a1cdf266c615d259feada249e1449df8af1f7e04252575e86 *electron-v39.2.7-win32-x64-pdb.zip
+90e1feeff5968265b68d8343e27b9f329b27882747633dd10555740de67d58cc *electron-v39.2.7-win32-x64-symbols.zip
+ed66f333ff7b385b2f40845178dc2dc4f25cc887510d766433392733fdd272a3 *electron-v39.2.7-win32-x64-toolchain-profile.zip
+3464537fa4be6b7b073f1c9b694ac2eb1f632d6ec36f6eeac9e00d8a279f188c *electron-v39.2.7-win32-x64.zip
+40c772eb189d100087b75da6c2ad1aeb044f1d661c90543592546a654b0b6d5b *electron.d.ts
+5a904c2edd12542ce2b6685938cdafe21cf90cd552f2f654058353d1a3d8ee43 *ffmpeg-v39.2.7-darwin-arm64.zip
+91fc23e9008f43ad3c46f690186d77b291a803451b6d89ac82aadb8ae2dd7995 *ffmpeg-v39.2.7-darwin-x64.zip
+a44607619c6742c1f9d729265a687b467a25ba397081ac12bc2c0d9ab4bea37b *ffmpeg-v39.2.7-linux-arm64.zip
+8128ec9be261e2c1017f9b8213f948426119306e5d3acdb59392f32b2c2f0204 *ffmpeg-v39.2.7-linux-armv7l.zip
+a201a2a64a49ab39def2d38a73e92358ebb57ecae99b0bbc8058353c4be23ea1 *ffmpeg-v39.2.7-linux-x64.zip
+5a904c2edd12542ce2b6685938cdafe21cf90cd552f2f654058353d1a3d8ee43 *ffmpeg-v39.2.7-mas-arm64.zip
+91fc23e9008f43ad3c46f690186d77b291a803451b6d89ac82aadb8ae2dd7995 *ffmpeg-v39.2.7-mas-x64.zip
+6fa4278a41d9c5d733369aa4cce694ba219eb72f7fd181060547c3a4920b5902 *ffmpeg-v39.2.7-win32-arm64.zip
+12b9e02c0fd07e8bc233c7c4ebab5c737eca05c41f1c5178867cad313433561b *ffmpeg-v39.2.7-win32-ia32.zip
+caedeb04aa648af14b5a20c9ca902c97eb531a456c7965639465f8764b5d95e0 *ffmpeg-v39.2.7-win32-x64.zip
+f1320ff95f2cce0f0f7225b45f2b9340aeb38b341b4090f0e58f58dc2da2f3a9 *hunspell_dictionaries.zip
+8f4ffd7534f21e40621c515bacd178b809c2e52d1687867c60dfdb97ed17fecb *libcxx-objects-v39.2.7-linux-arm64.zip
+0497730c82e1e76b6a4c22b1af4ebb7821ff6ccb838b78503c0cc93d8a8f03ee *libcxx-objects-v39.2.7-linux-armv7l.zip
+271e3538eb241f1bc83a103ea7d4c8408ee6bd38322ed50dca781f54d002a590 *libcxx-objects-v39.2.7-linux-x64.zip
+9a243728553395448f783591737fb229a327499d6853b51e201c36e4aaa9796f *libcxx_headers.zip
+db3018609bce502c307c59074b3d5273080a68fb50ac1e7fc580994a2e80cc25 *libcxxabi_headers.zip
+509d0890d1a524efe2c68aae18d2c8fd6537e788b94c9f63fd9f9ca3be98fdb9 *mksnapshot-v39.2.7-darwin-arm64.zip
+f0a98b428a6a1f8dc4a4663e876a3984157ac8757922cde7461f19755942c180 *mksnapshot-v39.2.7-darwin-x64.zip
+22fda3b708ab14325b2bfba8e875fbf48b6eacea347ecf1ef41cf24b09b4af8f *mksnapshot-v39.2.7-linux-arm64-x64.zip
+e7b89dbab3449c0a1862b4d129b3ee384cb5bcd53e149eae05df14744ee55cb5 *mksnapshot-v39.2.7-linux-armv7l-x64.zip
+53b3ed9f3a69444915ef1eef688c8f8168d52c3d5232834b8aa249cf210b41b6 *mksnapshot-v39.2.7-linux-x64.zip
+181d962eaa93d8d997b1daf99ae016b3d9d8a5ae037c96a8475490396a8d655f *mksnapshot-v39.2.7-mas-arm64.zip
+de005b619da1c1afcd8f8b6c70facb1dc388c46a66f8eff3058c8a08323df173 *mksnapshot-v39.2.7-mas-x64.zip
+6eea0bee6097cf2cfe3ae42b35f847304697c4a4eec84f5b60d1cbbe324a8490 *mksnapshot-v39.2.7-win32-arm64-x64.zip
+3e769269aa0b51ef9664a982235bc9299fc58743dcf7bce585d49a9f4a074abd *mksnapshot-v39.2.7-win32-ia32.zip
+51337124892bf76d214f89975d42ec0474199cdfac2f9e08664d86ae8e6ba43e *mksnapshot-v39.2.7-win32-x64.zip
\ No newline at end of file
diff --git a/cgmanifest.json b/cgmanifest.json
index 6ee72b3..9344b4e 100644
index 1148b4e..88150cc 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -530,3 +530,3 @@
@@ -531,4 +531,4 @@
"repositoryUrl": "https://github.com/electron/electron",
- "commitHash": "d0594707ded4d564c95badf5322d5893295da4ed"
+ "commitHash": "200a6ff5c6be89cb07221fff7025a2f9201bf25b"
- "commitHash": "14565211f7fd33f3fe2f75ec1254cfa57d5bc848",
- "tag": "39.2.3"
+ "commitHash": "4d18062d0f0ca34c455bc7ec032dd7959a0365b6",
+ "tag": "39.2.7"
}
@@ -535,3 +535,3 @@
"license": "MIT",
- "version": "34.5.1"
+ "version": "34.5.4"
},
diff --git a/package-lock.json b/package-lock.json
index beb023f..31df569 100644
index 2b1154b..cbe427e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -98,3 +98,3 @@
"deemon": "^1.13.4",
- "electron": "34.5.1",
+ "electron": "34.5.4",
"eslint": "^9.11.1",
@@ -6004,5 +6004,5 @@
@@ -100,3 +100,3 @@
"deemon": "^1.13.6",
- "electron": "39.2.3",
+ "electron": "39.2.7",
"eslint": "^9.36.0",
@@ -6188,5 +6188,5 @@
"node_modules/electron": {
- "version": "34.5.1",
- "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.1.tgz",
- "integrity": "sha512-z2Wm7QjhnJ5592fLITynj8UwIk1mBiT402mOakxSYiADrERIci3IOPk7xWHAFOMvt/eoG5RW16PPhgJiedZcGA==",
+ "version": "34.5.4",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.4.tgz",
+ "integrity": "sha512-WXc3ElYW/1LH50CnpigSeRsK1AfFB/J8hCySFnhXDmz6BBAKhXlJ6bgw1k9ZldR5i+8JqX323773Jn8X3/Wagw==",
- "version": "39.2.3",
- "resolved": "https://registry.npmjs.org/electron/-/electron-39.2.3.tgz",
- "integrity": "sha512-j7k7/bj3cNA29ty54FzEMRUoqirE+RBQPhPFP+XDuM93a1l2WcDPiYumxKWz+iKcXxBJLFdMIAlvtLTB/RfCkg==",
+ "version": "39.2.7",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-39.2.7.tgz",
+ "integrity": "sha512-KU0uFS6LSTh4aOIC3miolcbizOFP7N1M46VTYVfqIgFiuA2ilfNaOHLDS9tCMvwwHRowAsvqBrh9NgMXcTOHCQ==",
"dev": true,
diff --git a/package.json b/package.json
index 4d41ab6..304a0b0 100644
index 9ef8381..f732fa8 100644
--- a/package.json
+++ b/package.json
@@ -157,3 +157,3 @@
"deemon": "^1.13.4",
- "electron": "34.5.1",
+ "electron": "34.5.4",
"eslint": "^9.11.1",
@@ -162,3 +162,3 @@
"deemon": "^1.13.6",
- "electron": "39.2.3",
+ "electron": "39.2.7",
"eslint": "^9.36.0",

View File

@ -1,31 +1,26 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index cd8610d..2d928b1 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -27,4 +27,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -90,3 +88,3 @@ function prepareDebPackage(arch) {
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index c5d2163..b4768b9 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -90,3 +90,3 @@ function prepareDebPackage(arch: string) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', packageJson.version))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -204,3 +202,2 @@ function prepareRpmPackage(arch) {
@@ -198,3 +198,2 @@ function prepareRpmPackage(arch: string) {
.pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision.toString()))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -278,3 +275,3 @@ function prepareSnapPackage(arch) {
@@ -263,3 +262,3 @@ function prepareSnapPackage(arch: string) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
- .pipe(replace('@@VERSION@@', commit!.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', packageJson.version))
// Possible run-on values https://snapcraft.io/docs/architectures
diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts
index 0db2369..5cac67b 100644
index 8838f2f..fb120ae 100644
--- a/src/vs/workbench/api/common/extHost.api.impl.ts
+++ b/src/vs/workbench/api/common/extHost.api.impl.ts
@@ -1537,5 +1537,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
@@ -1629,5 +1629,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
+ const version = initData.version.replace(/^([0-9]+\.[0-9]+\.[0-5]).*$/, '$1');
+

View File

@ -49,7 +49,7 @@ index 199f433..a6cbb10 100644
+ | "user";
\ No newline at end of file
diff --git a/src/vs/platform/update/electron-main/abstractUpdateService.ts b/src/vs/platform/update/electron-main/abstractUpdateService.ts
index 48d0d86..840b9d3 100644
index ed8043f..e19c9e4 100644
--- a/src/vs/platform/update/electron-main/abstractUpdateService.ts
+++ b/src/vs/platform/update/electron-main/abstractUpdateService.ts
@@ -14,6 +14,10 @@ import { IProductService } from '../../product/common/productService.js';
@ -66,6 +66,11 @@ index 48d0d86..840b9d3 100644
+ return `${productService.updateUrl}/${quality}/${platform}/${architecture}/latest.json`;
+ }
}
@@ -205,3 +209,3 @@ export abstract class AbstractUpdateService implements IUpdateService {
- if (mode === 'none') {
+ if (mode === 'none' || mode === 'manual') {
return false;
diff --git a/src/vs/platform/update/electron-main/updateService.darwin.ts b/src/vs/platform/update/electron-main/updateService.darwin.ts
index b78ebc5..a4a3b1d 100644
--- a/src/vs/platform/update/electron-main/updateService.darwin.ts
@ -174,14 +179,14 @@ index 8550ace..c2fddcb 100644
+ return Promise.resolve(null);
})
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index 8f92a3e..020e690 100644
index ae4fd9c..7fc81a0 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -11,3 +11,2 @@ import { CancellationToken } from '../../../base/common/cancellation.js';
@@ -13,3 +13,2 @@ import { CancellationToken } from '../../../base/common/cancellation.js';
import { memoize } from '../../../base/common/decorators.js';
-import { hash } from '../../../base/common/hash.js';
import * as path from '../../../base/common/path.js';
@@ -25,4 +24,5 @@ import { asJson, IRequestService } from '../../request/common/request.js';
@@ -27,4 +26,5 @@ import { asJson, IRequestService } from '../../request/common/request.js';
import { ITelemetryService } from '../../telemetry/common/telemetry.js';
-import { AvailableForDownload, DisablementReason, IUpdate, State, StateType, UpdateType } from '../common/update.js';
-import { AbstractUpdateService, createUpdateURL, UpdateErrorClassification } from './abstractUpdateService.js';
@ -189,12 +194,12 @@ index 8f92a3e..020e690 100644
+import { AbstractUpdateService, createUpdateURL} from './abstractUpdateService.js';
+import * as semver from 'semver';
@@ -42,5 +42,9 @@ function getUpdateType(): UpdateType {
@@ -44,5 +44,9 @@ function getUpdateType(): UpdateType {
if (typeof _updateType === 'undefined') {
- _updateType = fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
- _updateType = existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
- ? UpdateType.Setup
- : UpdateType.Archive;
+ if (fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
+ if (existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
+ _updateType = UpdateType.Setup;
+ } else if (path.basename(path.normalize(path.join(process.execPath, '..', '..'))) === 'Program Files') {
+ _updateType = UpdateType.WindowsInstaller;
@ -202,11 +207,11 @@ index 8f92a3e..020e690 100644
+ _updateType = UpdateType.Archive;
+ }
}
@@ -63,2 +67,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -65,2 +69,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@IConfigurationService configurationService: IConfigurationService,
+ // @ts-expect-error
@ITelemetryService private readonly telemetryService: ITelemetryService,
@@ -102,11 +107,21 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -155,11 +160,21 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
protected buildUpdateFeedUrl(quality: string): string | undefined {
- let platform = `win32-${process.arch}`;
-
@ -235,7 +240,7 @@ index 8f92a3e..020e690 100644
- return createUpdateURL(platform, quality, this.productService);
+ return createUpdateURL(this.productService, quality, process.platform, process.arch, target);
}
@@ -131,2 +146,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -184,2 +199,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
+ const fetchedVersion = /\d+\.\d+\.\d+\.\d+/.test(update.productVersion) ? update.productVersion.replace(/(\d+\.\d+\.\d+)\.\d+(\-\w+)?/, '$1$2') : update.productVersion.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
@ -246,16 +251,16 @@ index 8f92a3e..020e690 100644
+ }
+
if (updateType === UpdateType.Archive) {
@@ -157,3 +180,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -210,3 +233,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- const fastUpdatesEnabled = this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
+ const fastUpdatesEnabled = getUpdateType() == UpdateType.Setup && this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
if (fastUpdatesEnabled) {
@@ -169,3 +192,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -222,3 +245,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
.then(undefined, err => {
- this.telemetryService.publicLog2<{ messageHash: string }, UpdateErrorClassification>('update:error', { messageHash: String(hash(String(err))) });
this.logService.error(err);
@@ -253,6 +275,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -307,6 +329,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
} else {
- spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- detached: true,

View File

@ -0,0 +1,37 @@
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d3ab651..d067b5b 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -432,19 +432,2 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(rename(f => f.dirname = `policies/${f.dirname}`)));
-
- if (quality === 'stable' || quality === 'insider') {
- result = es.merge(result, gulp.src('.build/win32/appx/**', { base: '.build/win32' }));
- const rawVersion = version.replace(/-\w+$/, '').split('.');
- const appxVersion = `${rawVersion[0]}.0.${rawVersion[1]}.${rawVersion[2]}`;
- result = es.merge(result, gulp.src('resources/win32/appx/AppxManifest.xml', { base: '.' })
- .pipe(replace('@@AppxPackageName@@', product.win32AppUserModelId))
- .pipe(replace('@@AppxPackageVersion@@', appxVersion))
- .pipe(replace('@@AppxPackageDisplayName@@', product.nameLong))
- .pipe(replace('@@AppxPackageDescription@@', product.win32NameVersion))
- .pipe(replace('@@ApplicationIdShort@@', product.win32RegValueName))
- .pipe(replace('@@ApplicationExe@@', product.nameShort + '.exe'))
- .pipe(replace('@@FileExplorerContextMenuID@@', quality === 'stable' ? 'OpenWithCode' : 'OpenWithCodeInsiders'))
- .pipe(replace('@@FileExplorerContextMenuCLSID@@', (product as { win32ContextMenu?: Record<string, { clsid: string }> }).win32ContextMenu![arch].clsid))
- .pipe(replace('@@FileExplorerContextMenuDLL@@', `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`))
- .pipe(rename(f => f.dirname = `appx/manifest`)));
- }
} else if (platform === 'linux') {
diff --git a/build/gulpfile.vscode.win32.ts b/build/gulpfile.vscode.win32.ts
index a7b01f0..43c93b8 100644
--- a/build/gulpfile.vscode.win32.ts
+++ b/build/gulpfile.vscode.win32.ts
@@ -117,8 +117,2 @@ function buildWin32Setup(arch: string, target: string): task.CallbackTask {
- if (quality === 'stable' || quality === 'insider') {
- definitions['AppxPackage'] = `${quality === 'stable' ? 'code' : 'code_insider'}_${arch}.appx`;
- definitions['AppxPackageDll'] = `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`;
- definitions['AppxPackageName'] = `${product.win32AppUserModelId}`;
- }
-
packageInnoSetup(issPath, { definitions }, cb as (err?: Error | null) => void);

View File

@ -1,9 +1,9 @@
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index a39bbf7..26ad204 100644
index 3e0895f..e518ad8 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -84,3 +84,3 @@ impl UpdateService {
@@ -94,3 +94,3 @@ impl UpdateService {
let download_url = format!(
- "{}/{}/{}/{}/latest.json",
+ "{}/{}/{}/{}/user/latest.json",
update_endpoint,
&update_endpoint,

View File

@ -0,0 +1,854 @@
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index ac70ecb..e04cca7 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -41,3 +41,2 @@ const root = path.dirname(import.meta.dirname);
const commit = getVersion(root);
-const versionedResourcesFolder = (product as typeof product & { quality?: string })?.quality === 'insider' ? commit!.substring(0, 10) : '';
@@ -356,8 +355,2 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
], { base: '.' }));
- if (quality && quality === 'insider') {
- customElectronConfig = {
- createVersionedResources: true,
- productVersionString: `${versionedResourcesFolder}`,
- };
- }
} else if (platform === 'linux') {
@@ -398,3 +391,2 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(replace('@@NAME@@', product.nameShort))
- .pipe(replace('@@VERSIONFOLDER@@', versionedResourcesFolder))
.pipe(rename(function (f) { f.basename = product.applicationName; })));
@@ -407,3 +399,2 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(replace('@@APPNAME@@', product.applicationName))
- .pipe(replace('@@VERSIONFOLDER@@', versionedResourcesFolder))
.pipe(replace('@@SERVERDATAFOLDER@@', product.serverDataFolderName || '.vscode-remote'))
@@ -473,4 +464,4 @@ function patchWin32DependenciesTask(destinationFolderName: string) {
const deps = await glob('**/*.node', { cwd, ignore: 'extensions/node_modules/@vscode/watcher/**' });
- const packageJson = JSON.parse(await fs.promises.readFile(path.join(cwd, versionedResourcesFolder, 'resources', 'app', 'package.json'), 'utf8'));
- const product = JSON.parse(await fs.promises.readFile(path.join(cwd, versionedResourcesFolder, 'resources', 'app', 'product.json'), 'utf8'));
+ const packageJson = JSON.parse(await fs.promises.readFile(path.join(cwd, 'resources', 'app', 'package.json'), 'utf8'));
+ const product = JSON.parse(await fs.promises.readFile(path.join(cwd, 'resources', 'app', 'product.json'), 'utf8'));
const baseVersion = packageJson.version.replace(/-.*$/, '');
diff --git a/build/gulpfile.vscode.win32.ts b/build/gulpfile.vscode.win32.ts
index a7b01f0..4409ce2 100644
--- a/build/gulpfile.vscode.win32.ts
+++ b/build/gulpfile.vscode.win32.ts
@@ -74,9 +74,4 @@ function buildWin32Setup(arch: string, target: string): task.CallbackTask {
const quality = (product as typeof product & { quality?: string }).quality || 'dev';
- let versionedResourcesFolder = '';
let issPath = path.join(import.meta.dirname, 'win32', 'code.iss');
- if (quality && quality === 'insider') {
- versionedResourcesFolder = commit!.substring(0, 10);
- issPath = path.join(import.meta.dirname, 'win32', 'code-insider.iss');
- }
- const originalProductJsonPath = path.join(sourcePath, versionedResourcesFolder, 'resources/app/product.json');
+ const originalProductJsonPath = path.join(sourcePath, 'resources/app/product.json');
const productJsonPath = path.join(outputPath, 'product.json');
@@ -113,3 +108,2 @@ function buildWin32Setup(arch: string, target: string): task.CallbackTask {
ProductJsonPath: productJsonPath,
- VersionedResourcesFolder: versionedResourcesFolder,
Quality: quality
diff --git a/build/win32/code-insider.iss b/build/win32/code-insider.iss
index 2cbf252..b8445fb 100644
--- a/build/win32/code-insider.iss
+++ b/build/win32/code-insider.iss
@@ -69,9 +69,9 @@ Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl,{#RepoDir}\build\
[InstallDelete]
-Type: filesandordirs; Name: "{app}\{#VersionedResourcesFolder}\resources\app\out"; Check: IsNotBackgroundUpdate
-Type: filesandordirs; Name: "{app}\{#VersionedResourcesFolder}\resources\app\plugins"; Check: IsNotBackgroundUpdate
-Type: filesandordirs; Name: "{app}\{#VersionedResourcesFolder}\resources\app\extensions"; Check: IsNotBackgroundUpdate
-Type: filesandordirs; Name: "{app}\{#VersionedResourcesFolder}\resources\app\node_modules"; Check: IsNotBackgroundUpdate
-Type: filesandordirs; Name: "{app}\{#VersionedResourcesFolder}\resources\app\node_modules.asar.unpacked"; Check: IsNotBackgroundUpdate
-Type: files; Name: "{app}\{#VersionedResourcesFolder}\resources\app\node_modules.asar"; Check: IsNotBackgroundUpdate
-Type: files; Name: "{app}\{#VersionedResourcesFolder}\resources\app\Credits_45.0.2454.85.html"; Check: IsNotBackgroundUpdate
+Type: filesandordirs; Name: "{app}\resources\app\out"; Check: IsNotBackgroundUpdate
+Type: filesandordirs; Name: "{app}\resources\app\plugins"; Check: IsNotBackgroundUpdate
+Type: filesandordirs; Name: "{app}\resources\app\extensions"; Check: IsNotBackgroundUpdate
+Type: filesandordirs; Name: "{app}\resources\app\node_modules"; Check: IsNotBackgroundUpdate
+Type: filesandordirs; Name: "{app}\resources\app\node_modules.asar.unpacked"; Check: IsNotBackgroundUpdate
+Type: files; Name: "{app}\resources\app\node_modules.asar"; Check: IsNotBackgroundUpdate
+Type: files; Name: "{app}\resources\app\Credits_45.0.2454.85.html"; Check: IsNotBackgroundUpdate
@@ -100,4 +100,4 @@ Source: "{#ExeBasename}.exe"; DestDir: "{code:GetDestDir}"; DestName: "{code:Get
Source: "{#ExeBasename}.VisualElementsManifest.xml"; DestDir: "{code:GetDestDir}"; DestName: "{code:GetVisualElementsManifest}"; Flags: ignoreversion
-Source: "tools\*"; DestDir: "{code:GetDestDir}\{#VersionedResourcesFolder}\tools"; Flags: ignoreversion
-Source: "policies\*"; DestDir: "{code:GetDestDir}\{#VersionedResourcesFolder}\policies"; Flags: ignoreversion skipifsourcedoesntexist
+Source: "tools\*"; DestDir: "{code:GetDestDir}\tools"; Flags: ignoreversion
+Source: "policies\*"; DestDir: "{code:GetDestDir}\policies"; Flags: ignoreversion skipifsourcedoesntexist
Source: "bin\{#TunnelApplicationName}.exe"; DestDir: "{code:GetDestDir}\bin"; DestName: "{code:GetBinDirTunnelApplicationFilename}"; Flags: ignoreversion skipifsourcedoesntexist
@@ -105,7 +105,7 @@ Source: "bin\{#ApplicationName}.cmd"; DestDir: "{code:GetDestDir}\bin"; DestName
Source: "bin\{#ApplicationName}"; DestDir: "{code:GetDestDir}\bin"; DestName: "{code:GetBinDirApplicationFilename}"; Flags: ignoreversion
-Source: "{#ProductJsonPath}"; DestDir: "{code:GetDestDir}\{#VersionedResourcesFolder}\resources\app"; Flags: ignoreversion
+Source: "{#ProductJsonPath}"; DestDir: "{code:GetDestDir}\resources\app"; Flags: ignoreversion
#ifdef AppxPackageName
#if "user" == InstallTarget
-Source: "appx\{#AppxPackage}"; DestDir: "{code:GetDestDir}\{#VersionedResourcesFolder}\appx"; BeforeInstall: RemoveAppxPackage; Flags: ignoreversion; Check: IsWindows11OrLater
-Source: "appx\{#AppxPackageDll}"; DestDir: "{code:GetDestDir}\{#VersionedResourcesFolder}\appx"; AfterInstall: AddAppxPackage; Flags: ignoreversion; Check: IsWindows11OrLater
+Source: "appx\{#AppxPackage}"; DestDir: "{code:GetDestDir}\appx"; BeforeInstall: RemoveAppxPackage; Flags: ignoreversion; Check: IsWindows11OrLater
+Source: "appx\{#AppxPackageDll}"; DestDir: "{code:GetDestDir}\appx"; AfterInstall: AddAppxPackage; Flags: ignoreversion; Check: IsWindows11OrLater
#endif
@@ -133,3 +133,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -141,3 +141,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -149,3 +149,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -157,3 +157,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -165,3 +165,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -173,3 +173,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -181,3 +181,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -189,3 +189,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashr
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -197,3 +197,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -205,3 +205,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bower
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\bower.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\bower.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -213,3 +213,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
@@ -220,3 +220,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c"; V
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\c.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\c.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -228,3 +228,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -236,3 +236,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cfg";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cfg"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cfg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cfg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cfg\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -244,3 +244,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -252,3 +252,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -260,3 +260,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -268,3 +268,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -276,3 +276,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cloju
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -284,3 +284,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cls";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cls"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cls\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cls\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cls\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -292,3 +292,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -300,3 +300,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cmake
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cmake"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cmake\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cmake\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cmake\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -308,3 +308,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffe
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -316,3 +316,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.confi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -324,3 +324,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.conta
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.containerfile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.containerfile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.containerfile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.containerfile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
@@ -331,3 +331,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -339,3 +339,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\csharp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\csharp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -347,3 +347,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtm
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -355,3 +355,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cspro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -363,3 +363,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\css.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\css.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -371,3 +371,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csv";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csv"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csv\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csv\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csv\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -379,3 +379,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\csharp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\csharp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -387,3 +387,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -395,3 +395,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -403,3 +403,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dart"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dart"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dart\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dart\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dart\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -411,3 +411,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.diff"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.diff"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.diff\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.diff\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.diff\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -419,3 +419,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.docke
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -427,3 +427,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -435,3 +435,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -443,3 +443,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edito
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -451,3 +451,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -459,3 +459,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.erb";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.erb"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.erb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.erb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.erb\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -467,3 +467,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -475,3 +475,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -483,3 +483,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -491,3 +491,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -499,3 +499,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscr
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -507,3 +507,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -515,3 +515,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemsp
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -524,3 +524,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitat
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -533,3 +533,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitco
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -542,3 +542,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitig
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -550,3 +550,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\go.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\go.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -558,3 +558,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gradl
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gradle"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gradle\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gradle\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gradle\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -566,3 +566,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.groov
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.groovy"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.groovy\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.groovy\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.groovy\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -574,3 +574,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h"; V
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\c.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\c.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -582,3 +582,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handl
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -590,3 +590,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -598,3 +598,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
@@ -605,3 +605,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -613,3 +613,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -621,3 +621,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -629,3 +629,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -637,3 +637,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -645,3 +645,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -653,3 +653,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ipynb
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ipynb"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ipynb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ipynb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ipynb\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -661,3 +661,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\jade.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\jade.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -669,3 +669,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\java.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\java.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -677,3 +677,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\java.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\java.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -685,3 +685,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -693,3 +693,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\react.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\react.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -701,3 +701,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsr
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -709,3 +709,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshin
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -717,3 +717,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -725,3 +725,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\json.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\json.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -733,3 +733,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -741,3 +741,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\less.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\less.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -749,3 +749,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.log";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.log"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.log\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.log\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.log\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -757,3 +757,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -765,3 +765,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m"; V
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -773,3 +773,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makef
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -781,3 +781,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markd
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -789,3 +789,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -797,3 +797,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -805,3 +805,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -813,3 +813,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtex
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -821,3 +821,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -829,3 +829,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -837,3 +837,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mk";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mk"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mk\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mk\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mk\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -845,3 +845,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -853,3 +853,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -861,3 +861,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -869,3 +869,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -877,3 +877,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -886,3 +886,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmig
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -894,3 +894,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\php.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\php.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -902,3 +902,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -910,3 +910,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -918,3 +918,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -926,3 +926,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.plist
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.plist"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.plist\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.plist\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.plist\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -934,3 +934,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -942,3 +942,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -950,3 +950,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -958,3 +958,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -966,3 +966,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -974,3 +974,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.prope
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -982,3 +982,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -990,3 +990,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -998,3 +998,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1006,3 +1006,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1014,3 +1014,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\python.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\python.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1022,3 +1022,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pyi";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pyi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pyi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\python.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pyi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\python.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pyi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1030,3 +1030,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r"; V
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1038,3 +1038,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1046,3 +1046,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhist
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1054,3 +1054,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprof
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1062,3 +1062,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1070,3 +1070,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rst";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rst"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rst\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rst\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rst\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1078,3 +1078,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1086,3 +1086,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sass"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sass"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sass\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\sass.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sass\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\sass.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sass\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1094,3 +1094,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\sass.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\sass.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1102,3 +1102,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1110,3 +1110,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1118,3 +1118,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\sql.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\sql.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1126,3 +1126,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1134,3 +1134,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t"; V
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1142,3 +1142,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1150,3 +1150,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\typescript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\typescript.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1158,3 +1158,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.toml"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.toml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.toml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.toml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.toml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1166,3 +1166,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\react.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\react.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1174,3 +1174,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1182,3 +1182,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1190,3 +1190,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\vue.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\vue.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1198,3 +1198,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1206,3 +1206,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1214,3 +1214,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1222,3 +1222,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1230,3 +1230,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xhtml
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xhtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xhtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xhtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xhtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1238,3 +1238,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1246,3 +1246,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1254,3 +1254,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1262,3 +1262,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
@@ -1267,3 +1267,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\s
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,{#NameLong}}"; Flags: uninsdeletekey
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile\shell\open"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"""
@@ -1272,3 +1272,3 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}Source
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe"; ValueType: none; ValueName: ""; Flags: uninsdeletekey
-Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#VersionedResourcesFolder}\resources\app\resources\win32\default.ico"
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""
@@ -1557,3 +1557,3 @@ begin
Log('Installing appx ' + AppxPackageFullname + ' ...');
- ShellExec('', 'powershell.exe', '-NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -Command ' + AddQuotes('Add-AppxPackage -Path ''' + ExpandConstant('{app}\{#VersionedResourcesFolder}\appx\{#AppxPackage}') + ''' -ExternalLocation ''' + ExpandConstant('{app}\{#VersionedResourcesFolder}\appx') + ''''), '', SW_HIDE, ewWaitUntilTerminated, AddAppxPackageResultCode);
+ ShellExec('', 'powershell.exe', '-NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -Command ' + AddQuotes('Add-AppxPackage -Path ''' + ExpandConstant('{app}\appx\{#AppxPackage}') + ''' -ExternalLocation ''' + ExpandConstant('{app}\appx') + ''''), '', SW_HIDE, ewWaitUntilTerminated, AddAppxPackageResultCode);
Log('Add-AppxPackage complete.');
@@ -1614,3 +1614,3 @@ begin
Log('Invoking inno_updater for background update');
- Exec(ExpandConstant('{app}\{#VersionedResourcesFolder}\tools\inno_updater.exe'), ExpandConstant('"{app}\{#ExeBasename}.exe" ' + BoolToStr(LockFileExists()) + ' "{cm:UpdatingVisualStudioCode}"'), '', SW_SHOW, ewWaitUntilTerminated, UpdateResultCode);
+ Exec(ExpandConstant('{app}\tools\inno_updater.exe'), ExpandConstant('"{app}\{#ExeBasename}.exe" ' + BoolToStr(LockFileExists()) + ' "{cm:UpdatingVisualStudioCode}"'), '', SW_SHOW, ewWaitUntilTerminated, UpdateResultCode);
DeleteFile(ExpandConstant('{app}\updating_version'));
@@ -1619,3 +1619,3 @@ begin
Log('Invoking inno_updater to remove previous installation folder');
- Exec(ExpandConstant('{app}\{#VersionedResourcesFolder}\tools\inno_updater.exe'), ExpandConstant('"--gc" "{app}\{#ExeBasename}.exe" "{#VersionedResourcesFolder}"'), '', SW_SHOW, ewWaitUntilTerminated, UpdateResultCode);
+ Exec(ExpandConstant('{app}\tools\inno_updater.exe'), ExpandConstant('"--gc" "{app}\{#ExeBasename}.exe"'), '', SW_SHOW, ewWaitUntilTerminated, UpdateResultCode);
Log('inno_updater completed gc successfully');
@@ -1627,3 +1627,3 @@ begin
Log('Invoking inno_updater to remove previous installation folder');
- Exec(ExpandConstant('{app}\{#VersionedResourcesFolder}\tools\inno_updater.exe'), ExpandConstant('"--gc" "{app}\{#ExeBasename}.exe" "{#VersionedResourcesFolder}"'), '', SW_SHOW, ewWaitUntilTerminated, UpdateResultCode);
+ Exec(ExpandConstant('{app}\tools\inno_updater.exe'), ExpandConstant('"--gc" "{app}\{#ExeBasename}.exe"'), '', SW_SHOW, ewWaitUntilTerminated, UpdateResultCode);
Log('inno_updater completed gc successfully');
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index ae4fd9c..eb77fcf 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -94,10 +94,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
protected override async initialize(): Promise<void> {
- if (this.environmentMainService.isBuilt) {
- const cachePath = await this.cachePath;
- app.setPath('appUpdate', cachePath);
- try {
- await unlink(path.join(cachePath, 'session-ending.flag'));
- } catch { }
- }
-
if (this.productService.target === 'user' && await this.nativeHostMainService.isAdmin(undefined)) {
@@ -140,6 +132,5 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
if (fastUpdatesEnabled && this.productService.target === 'user' && this.productService.commit) {
- const versionedResourcesFolder = this.productService.commit.substring(0, 10);
- const innoUpdater = path.join(exeDir, versionedResourcesFolder, 'tools', 'inno_updater.exe');
+ const innoUpdater = path.join(exeDir, 'tools', 'inno_updater.exe');
await new Promise<void>(resolve => {
- const child = spawn(innoUpdater, ['--gc', exePath, versionedResourcesFolder], {
+ const child = spawn(innoUpdater, ['--gc', exePath], {
stdio: ['ignore', 'ignore', 'ignore'],

View File

@ -41,7 +41,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then
echo "+ signing"
export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )"
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.ts "$( pwd )"
# codesign --display --entitlements :- ""
echo "+ notarize"
@ -101,6 +101,8 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
fi
# . ../build/windows/appx/build.sh
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
npm run gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
fi

View File

@ -18,6 +18,13 @@ mkdir -p assets
git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
COMMIT_ID=$( git rev-parse HEAD )
jsonTmp=$( jq -n --arg 'tag' "${RELEASE_VERSION}" --arg 'id' "${BUILD_SOURCEVERSION}" --arg 'commit' "${COMMIT_ID}" '{ "tag": $tag, "id": $id, "commit": $commit }' )
echo "${jsonTmp}" > "./assets/buildinfo.json" && unset jsonTmp
fi
cd assets
for FILE in *; do

View File

@ -3,9 +3,6 @@
set -e
# include common functions
. ./utils.sh
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
cp -rp src/insider/* vscode/
else
@ -16,91 +13,15 @@ cp -f LICENSE vscode/LICENSE.txt
cd vscode || { echo "'vscode' dir not found"; exit 1; }
../update_settings.sh
# apply patches
{ set +x; } 2>/dev/null
echo "APP_NAME=\"${APP_NAME}\""
echo "APP_NAME_LC=\"${APP_NAME_LC}\""
echo "BINARY_NAME=\"${BINARY_NAME}\""
echo "GH_REPO_PATH=\"${GH_REPO_PATH}\""
echo "ORG_NAME=\"${ORG_NAME}\""
for file in ../patches/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for file in ../patches/insider/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
if [[ -d "../patches/${OS_NAME}/" ]]; then
for file in "../patches/${OS_NAME}/"*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
for file in ../patches/user/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
set -x
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
if [[ "${OS_NAME}" == "linux" ]]; then
export VSCODE_SKIP_NODE_VERSION_CHECK=1
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
fi
else
if [[ "${CI_BUILD}" != "no" ]]; then
clang++ --version
fi
fi
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
if [[ "${CI_BUILD}" != "no" && "${OS_NAME}" == "osx" ]]; then
CXX=clang++ npm ci && break
else
npm ci && break
fi
if [[ $i == 3 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
sleep $(( 15 * (i + 1)))
done
mv .npmrc.bak .npmrc
# {{{ product.json
cp product.json{,.bak}
setpath() {
local jsonTmp
{ set +x; } 2>/dev/null
jsonTmp=$( jq --arg 'path' "${2}" --arg 'value' "${3}" 'setpath([$path]; $value)' "${1}.json" )
jsonTmp=$( jq --arg 'value' "${3}" "setpath(path(.${2}); \$value)" "${1}.json" )
echo "${jsonTmp}" > "${1}.json"
set -x
}
@ -108,17 +29,15 @@ setpath() {
setpath_json() {
local jsonTmp
{ set +x; } 2>/dev/null
jsonTmp=$( jq --arg 'path' "${2}" --argjson 'value' "${3}" 'setpath([$path]; $value)' "${1}.json" )
jsonTmp=$( jq --argjson 'value' "${3}" "setpath(path(.${2}); \$value)" "${1}.json" )
echo "${jsonTmp}" > "${1}.json"
set -x
}
# product.json
cp product.json{,.bak}
setpath "product" "checksumFailMoreInfoUrl" "https://go.microsoft.com/fwlink/?LinkId=828886"
setpath "product" "documentationUrl" "https://go.microsoft.com/fwlink/?LinkID=533484#vscode"
setpath_json "product" "extensionsGallery" '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item", "extensionUrlTemplate": "https://open-vsx.org/vscode/gallery/{publisher}/{name}/latest", "controlUrl": "https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json"}'
setpath_json "product" "extensionsGallery" '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item", "latestUrlTemplate": "https://open-vsx.org/vscode/gallery/{publisher}/{name}/latest", "controlUrl": "https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json"}'
setpath "product" "introductoryVideosUrl" "https://go.microsoft.com/fwlink/?linkid=832146"
setpath "product" "keyboardShortcutsUrlLinux" "https://go.microsoft.com/fwlink/?linkid=832144"
setpath "product" "keyboardShortcutsUrlMac" "https://go.microsoft.com/fwlink/?linkid=832143"
@ -164,9 +83,11 @@ if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
setpath "product" "win32UserAppId" "{{ED2E5618-3E7E-4888-BF3C-A6CCC84F586F}"
setpath "product" "win32x64UserAppId" "{{20F79D0D-A9AC-4220-9A81-CE675FFB6B41}"
setpath "product" "win32arm64UserAppId" "{{2E362F92-14EA-455A-9ABD-3E656BBBFE71}"
setpath "product" "tunnelApplicationName" "codium-tunnel-insiders"
setpath "product" "tunnelApplicationName" "codium-insiders-tunnel"
setpath "product" "win32TunnelServiceMutex" "vscodiuminsiders-tunnelservice"
setpath "product" "win32TunnelMutex" "vscodiuminsiders-tunnel"
setpath "product" "win32ContextMenu.x64.clsid" "90AAD229-85FD-43A3-B82D-8598A88829CF"
setpath "product" "win32ContextMenu.arm64.clsid" "7544C31C-BDBF-4DDF-B15E-F73A46D6723D"
else
setpath "product" "nameShort" "VSCodium"
setpath "product" "nameLong" "VSCodium"
@ -192,12 +113,110 @@ else
setpath "product" "tunnelApplicationName" "codium-tunnel"
setpath "product" "win32TunnelServiceMutex" "vscodium-tunnelservice"
setpath "product" "win32TunnelMutex" "vscodium-tunnel"
setpath "product" "win32ContextMenu.x64.clsid" "D910D5E6-B277-4F4A-BDC5-759A34EEE25D"
setpath "product" "win32ContextMenu.arm64.clsid" "4852FC55-4A84-4EA1-9C86-D53BE3DF83C0"
fi
setpath_json "product" "tunnelApplicationConfig" '{}'
jsonTmp=$( jq -s '.[0] * .[1]' product.json ../product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp
cat product.json
# }}}
# include common functions
. ../utils.sh
# {{{ apply patches
echo "APP_NAME=\"${APP_NAME}\""
echo "APP_NAME_LC=\"${APP_NAME_LC}\""
echo "ASSETS_REPOSITORY=\"${ASSETS_REPOSITORY}\""
echo "BINARY_NAME=\"${BINARY_NAME}\""
echo "GH_REPO_PATH=\"${GH_REPO_PATH}\""
echo "GLOBAL_DIRNAME=\"${GLOBAL_DIRNAME}\""
echo "ORG_NAME=\"${ORG_NAME}\""
echo "TUNNEL_APP_NAME=\"${TUNNEL_APP_NAME}\""
if [[ "${DISABLE_UPDATE}" == "yes" ]]; then
mv ../patches/disable-update.patch.yet ../patches/disable-update.patch
fi
for file in ../patches/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for file in ../patches/insider/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
if [[ -d "../patches/${OS_NAME}/" ]]; then
for file in "../patches/${OS_NAME}/"*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
for file in ../patches/user/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
# }}}
set -x
# {{{ install dependencies
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
if [[ "${OS_NAME}" == "linux" ]]; then
export VSCODE_SKIP_NODE_VERSION_CHECK=1
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
fi
else
if [[ "${CI_BUILD}" != "no" ]]; then
clang++ --version
fi
fi
node build/npm/preinstall.ts
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
if [[ "${CI_BUILD}" != "no" && "${OS_NAME}" == "osx" ]]; then
CXX=clang++ npm ci && break
else
npm ci && break
fi
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
sleep $(( 15 * (i + 1)))
done
mv .npmrc.bak .npmrc
# }}}
# package.json
cp package.json{,.bak}
@ -221,9 +240,7 @@ replace "s|\\[\\/\\* BUILTIN_ANNOUNCEMENTS \\*\\/\\]|$( tr -d '\n' < ../announce
../undo_telemetry.sh
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.js
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.ts
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.js
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.ts
if [[ "${OS_NAME}" == "linux" ]]; then
@ -260,9 +277,15 @@ if [[ "${OS_NAME}" == "linux" ]]; then
# snapcraft.yaml
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
ISS_PATH="build/win32/code-insider.iss"
else
ISS_PATH="build/win32/code.iss"
fi
# code.iss
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' build/win32/code.iss
sed -i 's|Microsoft Corporation|VSCodium|' build/win32/code.iss
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' "${ISS_PATH}"
sed -i 's|Microsoft Corporation|VSCodium|' "${ISS_PATH}"
fi
cd ..

View File

@ -46,9 +46,31 @@
"extensionAllowedBadgeProvidersRegex": [
"^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"
],
"extensionsEnabledWithApiProposalVersion": [
"GitHub.copilot-chat",
"ms-vscode.vscode-commander",
"ms-vscode.vscode-copilot-vision",
"GitHub.vscode-pull-request-github"
],
"extensionEnabledApiProposals": {
"ms-azuretools.vscode-containers": [
"authenticationChallenges"
],
"ms-azuretools.vscode-azureresourcegroups": [
"authenticationChallenges"
],
"ms-azuretools.vscode-azure-github-copilot": [
"authenticationChallenges"
],
"ms-azuretools.vscode-dev-azurecloudshell": [
"contribEditSessions"
"contribEditSessions",
"authenticationChallenges"
],
"ms-toolsai.vscode-ai": [
"authenticationChallenges"
],
"TeamsDevApp.vscode-ai-foundry": [
"authenticationChallenges"
],
"ms-vscode.vscode-selfhost-test-provider": [
"testObserver",
@ -65,7 +87,6 @@
"documentFiltersExclusive",
"fileSearchProvider",
"findTextInFiles",
"notebookCellExecutionState",
"notebookLiveShare",
"terminalDimensions",
"terminalDataWriteEvent",
@ -78,7 +99,8 @@
"tunnels"
],
"ms-toolsai.vscode-ai-remote": [
"resolvers"
"resolvers",
"authenticationChallenges"
],
"ms-python.python": [
"codeActionAI",
@ -94,7 +116,8 @@
"terminalShellEnv"
],
"ms-python.vscode-python-envs": [
"terminalShellEnv"
"terminalShellEnv",
"terminalDataWriteEvent"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookMessaging"
@ -184,13 +207,16 @@
],
"GitHub.vscode-pull-request-github": [
"activeComment",
"chatContextProvider",
"chatParticipantAdditions",
"chatParticipantPrivate",
"chatSessionsProvider",
"codiconDecoration",
"codeActionRanges",
"commentingRangeHint",
"commentReactor",
"commentReveal",
"commentsDraftState",
"commentThreadApplicability",
"contribAccessibilityHelpContent",
"contribCommentEditorActionsMenu",
@ -201,18 +227,24 @@
"contribMultiDiffEditorMenus",
"contribShareMenu",
"diffCommand",
"languageModelToolResultAudience",
"markdownAlertSyntax",
"quickDiffProvider",
"remoteCodingAgents",
"shareProvider",
"tabInputMultiDiff",
"tabInputTextMerge",
"tokenInformation",
"treeItemMarkdownLabel",
"treeViewMarkdownMessage"
],
"GitHub.copilot": [
"inlineCompletionsAdditions"
"inlineCompletionsAdditions",
"devDeviceId"
],
"GitHub.copilot-nightly": [
"inlineCompletionsAdditions"
"inlineCompletionsAdditions",
"devDeviceId"
],
"GitHub.copilot-chat": [
"interactive",
@ -253,12 +285,18 @@
"chatReferenceBinaryData",
"languageModelSystem",
"languageModelCapabilities",
"languageModelDataPart",
"languageModelThinkingPart",
"chatStatusItem",
"taskProblemMatcherStatus",
"contribLanguageModelToolSets",
"textDocumentChangeReason",
"resolvers"
"resolvers",
"taskExecutionTerminal",
"dataChannels",
"chatSessionsProvider",
"devDeviceId",
"contribEditorContentMenu",
"tokenInformation"
],
"GitHub.remotehub": [
"contribRemoteHelp",
@ -275,12 +313,10 @@
"textSearchProvider",
"timeline"
],
"ms-python.gather": [
"notebookCellExecutionState"
],
"ms-python.vscode-pylance": [
"mcpConfigurationProvider",
"terminalShellEnv"
"terminalShellEnv",
"portsAttributes",
"codeActionAI"
],
"ms-python.debugpy": [
"contribViewsWelcome",
@ -356,7 +392,21 @@
"chatParticipantAdditions"
],
"vscjava.vscode-java-upgrade": [
"chatParticipantAdditions"
"chatParticipantAdditions",
"chatParticipantPrivate"
],
"FoundryLocal.foundry-local-chat": [
"chatProvider"
],
"Microsoft.foundry-local-chat": [
"chatProvider"
],
"ms-wmcp.windows-mcp-server-extension": [
"mcpToolDefinitions"
],
"openai.chatgpt": [
"languageModelProxy",
"chatSessionsProvider"
],
"jeanp413.open-remote-ssh": [
"resolvers",

View File

@ -75,8 +75,8 @@ update vscode to [@@MS_TAG@@](@@MS_URL@@)
<tr>
<td>AppImage</td>
<td>
<a href="https://github.com/@@ASSETS_REPOSITORY@@/releases/download/@@VERSION@@@@QUALITY@@/@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.29-x86_64.AppImage">@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.29-x86_64.AppImage</a><br />
<a href="https://github.com/@@ASSETS_REPOSITORY@@/releases/download/@@VERSION@@@@QUALITY@@/@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.29-x86_64.AppImage.zsync">@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.29-x86_64.AppImage.zsync</a>
<a href="https://github.com/@@ASSETS_REPOSITORY@@/releases/download/@@VERSION@@@@QUALITY@@/@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.30-x86_64.AppImage">@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.30-x86_64.AppImage</a><br />
<a href="https://github.com/@@ASSETS_REPOSITORY@@/releases/download/@@VERSION@@@@QUALITY@@/@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.30-x86_64.AppImage.zsync">@@APP_NAME_QUALITY@@-@@VERSION@@.glibc2.30-x86_64.AppImage.zsync</a>
</td>
</tr>
<tr>

View File

@ -2,6 +2,7 @@
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
GenericName[ar]=محرر نصوص
Exec=@@EXEC@@ %F
Icon=@@ICON@@
Type=Application
@ -14,6 +15,7 @@ Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[ar]=نافذة فارغة جديدة
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide

Some files were not shown because too many files have changed in this diff Show More