From 0ad231bae16d95c971aa80fe7e59b58aee2258b0 Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 14:33:09 +0200 Subject: [PATCH 01/11] refactor(script): make install working on macos --- scripts/install-vscode | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/install-vscode b/scripts/install-vscode index fe01601e..9673306c 100755 --- a/scripts/install-vscode +++ b/scripts/install-vscode @@ -2,7 +2,7 @@ set -e vscodeRef=$(cat './node_modules/monaco-editor/package.json' | jq -r '.["vscodeRef"]') -cat <<< $(jq ".config.vscode.ref = \"$vscodeRef\"" package.json) > package.json +cat <<< "$(jq ".config.vscode.ref = \"$vscodeRef\"" package.json)" > package.json monaco_esm_directory="`pwd`/node_modules/monaco-editor/esm" output_directory="`pwd`/vscode" @@ -25,7 +25,7 @@ echo "Downloading vscode $vscodeRef in $build_directory..." curl -L --max-redirs 5 https://github.com/Microsoft/vscode/tarball/$vscodeRef | tar -xz -C $build_directory --strip-components=1 microsoft-vscode-${vscodeRef:0:7} vscodeVersion=$(cat "$build_directory/package.json" | jq -r '.["version"]') -cat <<< $(jq ".config.vscode.version = \"$vscodeVersion\"" package.json) > package.json +cat <<< "$(jq ".config.vscode.version = \"$vscodeVersion\"" package.json)" > package.json cd $build_directory @@ -47,10 +47,10 @@ mkdir -p editor-patch cp -R $monaco_esm_directory editor-patch/a cp -R $monaco_esm_directory editor-patch/b ## Change shake level from ClassMembers to Files -sed -i 's/shakeLevel: 2/shakeLevel: 0/g' build/gulpfile.editor.js +sed -i'' -e 's/shakeLevel: 2/shakeLevel: 0/g' build/gulpfile.editor.js yarn gulp editor-distro cd out-monaco-editor-core/esm/ -cp --parents $(find -name \*.js) ../../editor-patch/b +rsync -R $(find . -name \*.js) ../../editor-patch/b cd ../../editor-patch diff -urN -x '*.map' a b > "$editor_patch_file" || true cd .. @@ -79,7 +79,7 @@ cat << EOF | node - }); EOF cd resources -cp --parents $(find -name \*.js) ../src/ +rsync -R $(find . -name \*.js) ../src/ cd .. cd src From b37d242c819e8bbddc840c14e718a711c4ac2cbd Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 14:39:10 +0200 Subject: [PATCH 02/11] feat(upgrade): add script to upgrade vscode deps --- docs/vscode_monaco_upgrade.md | 5 +++- package.json | 1 + scripts/update-vscode-dependencies.ts | 42 +++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 scripts/update-vscode-dependencies.ts diff --git a/docs/vscode_monaco_upgrade.md b/docs/vscode_monaco_upgrade.md index 4568c02b..330c3654 100644 --- a/docs/vscode_monaco_upgrade.md +++ b/docs/vscode_monaco_upgrade.md @@ -17,8 +17,11 @@ ## monaco-vscode-api repository -- Update `monaco-editor` and other dependencies and update to the new `vscodeRef` from above +- Update the package.json to set `monaco-editor` to the same version as the one using the `vscodeRef` from above (usually the latest version) +- Run `npm install` which will trigger the vscode install script - Wait for the new vscode version to be downloaded and built +- Run `npm run update-vscode-dependencies` to update the vscode dependencies we use to the same versions as vscode +- Run `npm install` (might need to update/add the npm override for `xterm` in the `package.json` to fix the invalid peer deps) - Fix errors, adapt code, build, include the `vscode.patch` into this commit - Do not hesitate to run the eslint autofix, it gets rid of the majority of your errors - Implement missing services. This is easily observable seem when running the demo (see next point) diff --git a/package.json b/package.json index f87e3e90..fc39994c 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "preprepare": "./scripts/install-vscode && node --loader ts-node/esm src/monaco-treemending.ts && patch-package", "lint": "eslint '{src/**/*.ts,rollup/*.ts,*.ts}'", "generate-types": "./scripts/generate-types", + "update-vscode-dependencies": "node --loader ts-node/esm scripts/update-vscode-dependencies.ts", "release": "node --loader ts-node/esm release.ts ${npm_package_config_vscode_version}", "releaseNext": "node --loader ts-node/esm releaseNext.ts ${npm_package_config_vscode_version}", "reset:repo": "git clean -f -X -d" diff --git a/scripts/update-vscode-dependencies.ts b/scripts/update-vscode-dependencies.ts new file mode 100644 index 00000000..5d8228b4 --- /dev/null +++ b/scripts/update-vscode-dependencies.ts @@ -0,0 +1,42 @@ +import { readFile, writeFile } from 'fs/promises' +import path from 'path' +import { fileURLToPath } from 'url' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +function getAbsolutePackageJsonPath (relativePath: string) { + return path.join(__dirname, relativePath, 'package.json') +} + +async function readPackageJson (packageJsonPath: string) { + const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8')) + return packageJson +} + +async function updateVSCodeDependencies () { + console.debug('Reading monaco-vscode-api package.json...') + const apiPackageJsonPath = getAbsolutePackageJsonPath('..') + const apiPackageJson = await readPackageJson(apiPackageJsonPath) + + console.debug('Reading vscode package.json...') + const vsCodePackageJson = await readPackageJson(getAbsolutePackageJsonPath('../vscode')) + + console.debug('Updating monaco-vscode-api dependencies with vscode dependencies versions...') + for (const dependency in apiPackageJson.dependencies) { + if (dependency in vsCodePackageJson.dependencies) { + apiPackageJson.dependencies[dependency] = vsCodePackageJson.dependencies[dependency] + } + } + + // update the dev dependency @types/vscode version to the same as config.version in the package.json + apiPackageJson.devDependencies['@types/vscode'] = `~${vsCodePackageJson.version}` + + console.debug('Writing monaco-vscode-api package.json...') + await writeFile(apiPackageJsonPath, JSON.stringify(apiPackageJson, null, 2)) + console.debug('Dependencies updated') +} + +updateVSCodeDependencies().catch(error => { + console.error('Unable to update monaco-vscode-api dependencies', error) + process.exit(1) +}) From 1e2340ee5a65c4e9523e67afccefef2bb20a6bda Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 14:39:37 +0200 Subject: [PATCH 03/11] feat: upgrade to vscode 1.83.0 --- package-lock.json | 201 ++++++++++++++++--------------------------- package.json | 45 +++++----- scripts/vscode.patch | 116 ++++++++++++------------- 3 files changed, 155 insertions(+), 207 deletions(-) diff --git a/package-lock.json b/package-lock.json index e8b64ae6..a4e48cc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,31 +11,31 @@ "dependencies": { "@microsoft/1ds-core-js": "^3.2.13", "@microsoft/1ds-post-js": "^3.2.13", - "@parcel/watcher": "^2.3.0", - "@vscode/proxy-agent": "^0.17.2", + "@parcel/watcher": "2.1.0", + "@vscode/proxy-agent": "^0.17.4", "@vscode/ripgrep": "^1.15.5", "@vscode/spdlog": "^0.13.11", - "@vscode/vscode-languagedetection": "^1.0.22", + "@vscode/vscode-languagedetection": "1.0.21", "@vscode/windows-process-tree": "^0.5.0", "cookie": "^0.5.0", - "kerberos": "^2.0.2", + "kerberos": "^2.0.1", "keytar": "^7.9.0", "mime-types": "^2.1.35", - "monaco-editor": "0.43.0", - "node-pty": "^1.0.0", - "vscode-oniguruma": "^2.0.0", + "monaco-editor": "0.44.0", + "node-pty": "1.1.0-beta1", + "vscode-oniguruma": "1.7.0", "vscode-regexpp": "^3.1.0", - "vscode-textmate": "^9.0.0", - "xterm": "5.2.1", - "xterm-addon-canvas": "0.4.0", - "xterm-addon-image": "0.4.1", - "xterm-addon-search": "0.12.0", - "xterm-addon-serialize": "0.10.0", - "xterm-addon-unicode11": "0.5.0", - "xterm-addon-webgl": "0.15.0", - "xterm-headless": "5.3.0", - "yauzl": "^2.10.0", - "yazl": "^2.5.1" + "vscode-textmate": "9.0.0", + "xterm": "5.4.0-beta.27", + "xterm-addon-canvas": "0.6.0-beta.27", + "xterm-addon-image": "0.6.0-beta.21", + "xterm-addon-search": "0.14.0-beta.27", + "xterm-addon-serialize": "0.12.0-beta.26", + "xterm-addon-unicode11": "0.7.0-beta.26", + "xterm-addon-webgl": "0.17.0-beta.26", + "xterm-headless": "5.4.0-beta.27", + "yauzl": "^2.9.2", + "yazl": "^2.4.3" }, "devDependencies": { "@babel/core": "^7.22.17", @@ -56,7 +56,7 @@ "@types/mime-types": "^2.1.1", "@types/node": "^18.17.15", "@types/semver": "^7.5.2", - "@types/vscode": "~1.82.0", + "@types/vscode": "~1.83.0", "@types/yauzl": "^2.10.0", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", @@ -2365,68 +2365,16 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", - "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.1.0.tgz", + "integrity": "sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==", "hasInstallScript": true, "dependencies": { - "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.3.0", - "@parcel/watcher-darwin-arm64": "2.3.0", - "@parcel/watcher-darwin-x64": "2.3.0", - "@parcel/watcher-freebsd-x64": "2.3.0", - "@parcel/watcher-linux-arm-glibc": "2.3.0", - "@parcel/watcher-linux-arm64-glibc": "2.3.0", - "@parcel/watcher-linux-arm64-musl": "2.3.0", - "@parcel/watcher-linux-x64-glibc": "2.3.0", - "@parcel/watcher-linux-x64-musl": "2.3.0", - "@parcel/watcher-win32-arm64": "2.3.0", - "@parcel/watcher-win32-ia32": "2.3.0", - "@parcel/watcher-win32-x64": "2.3.0" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", - "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", - "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">= 10.0.0" }, @@ -2857,9 +2805,9 @@ "dev": true }, "node_modules/@types/vscode": { - "version": "1.82.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.82.0.tgz", - "integrity": "sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==", + "version": "1.83.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.83.0.tgz", + "integrity": "sha512-3mUtHqLAVz9hegut9au4xehuBrzRE3UJiQMpoEHkNl6XHliihO7eATx2BMHs0odsmmrwjJrlixx/Pte6M3ygDQ==", "dev": true }, "node_modules/@types/which": { @@ -3152,9 +3100,9 @@ } }, "node_modules/@vscode/vscode-languagedetection": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/@vscode/vscode-languagedetection/-/vscode-languagedetection-1.0.22.tgz", - "integrity": "sha512-rQ/BgMyLuIXSmbA0MSkIPHtcOw14QkeDbAq19sjvaS9LTRr905yij0S8lsyqN5JgOsbtIx7pAcyOxFMzPmqhZQ==", + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/@vscode/vscode-languagedetection/-/vscode-languagedetection-1.0.21.tgz", + "integrity": "sha512-zSUH9HYCw5qsCtd7b31yqkpaCU6jhtkKLkvOOA8yTrIRfBSOFb8PPhgmMicD7B/m+t4PwOJXzU1XDtrM9Fd3/g==", "bin": { "vscode-languagedetection": "cli/index.js" } @@ -4226,17 +4174,6 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -6523,9 +6460,9 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/monaco-editor": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", - "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.44.0.tgz", + "integrity": "sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q==" }, "node_modules/ms": { "version": "2.1.2", @@ -6594,9 +6531,9 @@ } }, "node_modules/node-addon-api": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", - "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node_modules/node-domexception": { "version": "1.0.0", @@ -6635,10 +6572,20 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-gyp-build": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/node-pty": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.0.0.tgz", - "integrity": "sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==", + "version": "1.1.0-beta1", + "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta1.tgz", + "integrity": "sha512-h+1E/gX/brFqsp3yZKGERHOhdo1POG1rrsI+8tEuocqdEddHd029471gq8KOuiHKicd52h2pSU8Gtqb3Vo2PfQ==", "hasInstallScript": true, "dependencies": { "nan": "^2.17.0" @@ -9132,9 +9079,9 @@ "dev": true }, "node_modules/vscode-oniguruma": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-2.0.0.tgz", - "integrity": "sha512-QWb6OZHNMxk1/nNOA6gjmbwA7gkKOYPAgteCOy8hX8/3FzoEb4pLHt2b2VHGy9gDdzGt3l5NqiQyo1HEQIanhw==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" }, "node_modules/vscode-regexpp": { "version": "3.1.0", @@ -9227,54 +9174,54 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/xterm": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/xterm/-/xterm-5.2.1.tgz", - "integrity": "sha512-cs5Y1fFevgcdoh2hJROMVIWwoBHD80P1fIP79gopLHJIE4kTzzblanoivxTiQ4+92YM9IxS36H1q0MxIJXQBcA==" + "version": "5.4.0-beta.27", + "resolved": "https://registry.npmjs.org/xterm/-/xterm-5.4.0-beta.27.tgz", + "integrity": "sha512-gKqtrjy0RLk2123oFyPw5tkV96jGz4c/JkY8/XUvBXoMVsX4A7rVKpHlmHhmnuK1X5ERAkvCD21YE7LfB8WYkw==" }, "node_modules/xterm-addon-canvas": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0.tgz", - "integrity": "sha512-iTC8CdjX9+hGX7jiEuiDMXzHsY/FKJdVnbjep5xjRXNu7RKOk15xuecIkJ7HZORqMVPpr4DGS3jyd9XUoBuxqw==", + "version": "0.6.0-beta.27", + "resolved": "https://registry.npmjs.org/xterm-addon-canvas/-/xterm-addon-canvas-0.6.0-beta.27.tgz", + "integrity": "sha512-mSxEJKPnXYKkD6/zQLdNH6kB+sr4B+4DMFzntWgxLjHJdyOO95wUSAtBFnhAUez2nNYvXbs/OXpEbdVdO7f2kQ==", "peerDependencies": { "xterm": "^5.0.0" } }, "node_modules/xterm-addon-image": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/xterm-addon-image/-/xterm-addon-image-0.4.1.tgz", - "integrity": "sha512-iJpYyvtbHg4oXSv+D6J73ZfCjnboZpbZ567MLplXDBlYSUknv3kvPTfVMPJATV7Zsx7+bDgyXboCh9vsDf/m/w==", + "version": "0.6.0-beta.21", + "resolved": "https://registry.npmjs.org/xterm-addon-image/-/xterm-addon-image-0.6.0-beta.21.tgz", + "integrity": "sha512-8/PTaXVPa4kQ0xzVeuZZk10OpbZBj2cgfwhM2B0ChSPvwrk0lX+ksnXdtDKH3tg+JYvo7fIhNXtkr4NwWt7VJQ==", "peerDependencies": { - "xterm": "~5.2.0" + "xterm": "^5.2.0" } }, "node_modules/xterm-addon-search": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/xterm-addon-search/-/xterm-addon-search-0.12.0.tgz", - "integrity": "sha512-hXAuO7Ts2+Jf9K8mZrUx8IFd7c/Flgks/jyqA1L4reymyfmXtcsd+WDLel8R9Tgy2CLyKABVBP09/Ua/FmXcvg==", + "version": "0.14.0-beta.27", + "resolved": "https://registry.npmjs.org/xterm-addon-search/-/xterm-addon-search-0.14.0-beta.27.tgz", + "integrity": "sha512-T4Exwf/rqoLHqGUUIta5Pw/i9PljvroZwLxc7RnVyDqpNsTifDn3675kS54CxwqPlv4owFhxujTDzJPCUEkM2A==", "peerDependencies": { "xterm": "^5.0.0" } }, "node_modules/xterm-addon-serialize": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/xterm-addon-serialize/-/xterm-addon-serialize-0.10.0.tgz", - "integrity": "sha512-Syp9eSBypn70iAczcJ+kAi0foQIepAvFS6x53JwI4XylTBHn87Ep9fovslhwmUV3rwH2yMnpdDjXH5W/whx2lA==", + "version": "0.12.0-beta.26", + "resolved": "https://registry.npmjs.org/xterm-addon-serialize/-/xterm-addon-serialize-0.12.0-beta.26.tgz", + "integrity": "sha512-b4lOcttE6lqAF3zB2l8XtDShe5djhl9SueljnVWuG4mYMYPQoiklxFcpY66sjSCIAS6NsbtrL/LGQ/0eZGi+Ig==", "peerDependencies": { "xterm": "^5.0.0" } }, "node_modules/xterm-addon-unicode11": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xterm-addon-unicode11/-/xterm-addon-unicode11-0.5.0.tgz", - "integrity": "sha512-Jm4/g4QiTxiKiTbYICQgC791ubhIZyoIwxAIgOW8z8HWFNY+lwk+dwaKEaEeGBfM48Vk8fklsUW9u/PlenYEBg==", + "version": "0.7.0-beta.26", + "resolved": "https://registry.npmjs.org/xterm-addon-unicode11/-/xterm-addon-unicode11-0.7.0-beta.26.tgz", + "integrity": "sha512-po+z1ayyrkWh8IGXKpbwCLKLKfcjotZVKqowU6PtHuDtJm/J8rlzvV2eJU1WQ/8ezpopU09ibWCvaf1a7EPuxA==", "peerDependencies": { "xterm": "^5.0.0" } }, "node_modules/xterm-addon-webgl": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0.tgz", - "integrity": "sha512-ZLcqogMFHr4g/YRhcCh3xE8tTklnyut/M+O/XhVsFBRB/YCvYhPdLQ5/AQk54V0wjWAQpa8CF3W8DVR9OqyMCg==", + "version": "0.17.0-beta.26", + "resolved": "https://registry.npmjs.org/xterm-addon-webgl/-/xterm-addon-webgl-0.17.0-beta.26.tgz", + "integrity": "sha512-N8CuAPZnoDlQ6yV7n4eXQ2ONPr/GdxiwgxrJjNks4CzzHiJREm23FQIv0fCTwKQS5xU3qoc4LlT3vZ1tKGjtQw==", "peerDependencies": { "xterm": "^5.0.0" } diff --git a/package.json b/package.json index fc39994c..aa30b0c2 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,8 @@ }, "config": { "vscode": { - "version": "1.82.0", - "ref": "16e9205452dd417e32f164325b589b94892846b4" + "version": "1.83.0", + "ref": "e7e037083ff4455cf320e344325dacb480062c3c" } }, "devDependencies": { @@ -56,7 +56,7 @@ "@types/mime-types": "^2.1.1", "@types/node": "^18.17.15", "@types/semver": "^7.5.2", - "@types/vscode": "~1.82.0", + "@types/vscode": "~1.83.0", "@types/yauzl": "^2.10.0", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", @@ -97,36 +97,37 @@ "dependencies": { "@microsoft/1ds-core-js": "^3.2.13", "@microsoft/1ds-post-js": "^3.2.13", - "@parcel/watcher": "^2.3.0", - "@vscode/proxy-agent": "^0.17.2", + "@parcel/watcher": "2.1.0", + "@vscode/proxy-agent": "^0.17.4", "@vscode/ripgrep": "^1.15.5", "@vscode/spdlog": "^0.13.11", - "@vscode/vscode-languagedetection": "^1.0.22", + "@vscode/vscode-languagedetection": "1.0.21", "@vscode/windows-process-tree": "^0.5.0", "cookie": "^0.5.0", - "kerberos": "^2.0.2", + "kerberos": "^2.0.1", "keytar": "^7.9.0", "mime-types": "^2.1.35", - "monaco-editor": "0.43.0", - "node-pty": "^1.0.0", - "vscode-oniguruma": "^2.0.0", + "monaco-editor": "0.44.0", + "node-pty": "1.1.0-beta1", + "vscode-oniguruma": "1.7.0", "vscode-regexpp": "^3.1.0", - "vscode-textmate": "^9.0.0", - "xterm": "5.2.1", - "xterm-addon-canvas": "0.4.0", - "xterm-addon-image": "0.4.1", - "xterm-addon-search": "0.12.0", - "xterm-addon-serialize": "0.10.0", - "xterm-addon-unicode11": "0.5.0", - "xterm-addon-webgl": "0.15.0", - "xterm-headless": "5.3.0", - "yauzl": "^2.10.0", - "yazl": "^2.5.1" + "vscode-textmate": "9.0.0", + "xterm": "5.4.0-beta.27", + "xterm-addon-canvas": "0.6.0-beta.27", + "xterm-addon-image": "0.6.0-beta.21", + "xterm-addon-search": "0.14.0-beta.27", + "xterm-addon-serialize": "0.12.0-beta.26", + "xterm-addon-unicode11": "0.7.0-beta.26", + "xterm-addon-webgl": "0.17.0-beta.26", + "xterm-headless": "5.4.0-beta.27", + "yauzl": "^2.9.2", + "yazl": "^2.4.3" }, "overrides": { "typescript": "5.2.2", "rollup": "^3.29.1", - "recast": "^0.23.4" + "recast": "^0.23.4", + "xterm": "5.4.0-beta.27" }, "volta": { "node": "18.18.0", diff --git a/scripts/vscode.patch b/scripts/vscode.patch index d2710f90..12725ec9 100644 --- a/scripts/vscode.patch +++ b/scripts/vscode.patch @@ -1,8 +1,8 @@ diff --git a/.eslintrc.json b/.eslintrc.json -index 0644079623d..cc233dc5888 100644 +index f44673cd1cd..cdb439f7dd1 100644 --- a/.eslintrc.json +++ b/.eslintrc.json -@@ -267,6 +267,7 @@ +@@ -308,6 +308,7 @@ "v8-inspect-profiler", "vscode-regexpp", "vscode-textmate", @@ -247,7 +247,7 @@ index aff4d0734de..ea43e4a2fcc 100644 +// }; +// ESM-uncomment-end diff --git a/src/vs/editor/browser/config/editorConfiguration.ts b/src/vs/editor/browser/config/editorConfiguration.ts -index fc197da1d57..a4d9573979f 100644 +index cf9154ce7d6..5c954f75f8e 100644 --- a/src/vs/editor/browser/config/editorConfiguration.ts +++ b/src/vs/editor/browser/config/editorConfiguration.ts @@ -269,7 +269,7 @@ export class ComputedEditorOptions implements IComputedEditorOptions { @@ -318,7 +318,7 @@ index 67e34826627..7c5287d6a32 100644 telemetry: this.telemetry, storageKey: ASSIGNMENT_STORAGE_KEY, diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts -index 63243fcf3a0..d948ee599cf 100644 +index c69605d16e9..a1400daf522 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -3,7 +3,7 @@ @@ -344,7 +344,7 @@ index d8cefb6df67..a94fca911ea 100644 import { localize } from 'vs/nls'; import { NativeParsedArgs } from 'vs/platform/environment/common/argv'; diff --git a/src/vs/platform/files/node/diskFileSystemProvider.ts b/src/vs/platform/files/node/diskFileSystemProvider.ts -index 4ea7d28e214..71ae1c060b0 100644 +index e22cfe1b45e..b48c1babf86 100644 --- a/src/vs/platform/files/node/diskFileSystemProvider.ts +++ b/src/vs/platform/files/node/diskFileSystemProvider.ts @@ -4,7 +4,6 @@ @@ -428,7 +428,7 @@ index ccfbc3f7d9b..5fe46b464b1 100644 const collectorChannelPlugin: PostChannel = new postPlugin.PostChannel(); // Configure the app insights core to send to collector++ and disable logging of debug info diff --git a/src/vs/workbench/api/browser/mainThreadExtensionService.ts b/src/vs/workbench/api/browser/mainThreadExtensionService.ts -index cbddc0c233b..931ce877ff6 100644 +index 5afc945cc16..bc5fc8ed8f9 100644 --- a/src/vs/workbench/api/browser/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/browser/mainThreadExtensionService.ts @@ -193,6 +193,13 @@ export class MainThreadExtensionService implements MainThreadExtensionServiceSha @@ -495,10 +495,10 @@ index 99dd3279fe8..b692381eaa2 100644 declare readonly _serviceBrand: undefined; diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts -index 3c894ef8694..8995e4932e8 100644 +index 53224b35c02..acc9785411e 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts -@@ -1353,6 +1353,7 @@ export interface MainThreadExtensionServiceShape extends IDisposable { +@@ -1367,6 +1367,7 @@ export interface MainThreadExtensionServiceShape extends IDisposable { $onExtensionRuntimeError(extensionId: ExtensionIdentifier, error: SerializedError): void; $setPerformanceMarks(marks: performance.PerformanceMark[]): Promise; $asBrowserUri(uri: UriComponents): Promise; @@ -507,19 +507,19 @@ index 3c894ef8694..8995e4932e8 100644 export interface SCMProviderFeatures { diff --git a/src/vs/workbench/api/common/extHostExtensionService.ts b/src/vs/workbench/api/common/extHostExtensionService.ts -index 0a0eebdd8a5..f98fffcec6f 100644 +index 404f8f7d9c0..59e6c2b983c 100644 --- a/src/vs/workbench/api/common/extHostExtensionService.ts +++ b/src/vs/workbench/api/common/extHostExtensionService.ts @@ -44,7 +44,7 @@ import { Schemas } from 'vs/base/common/network'; import { IResolveAuthorityResult } from 'vs/workbench/services/extensions/common/extensionHostProxy'; import { IExtHostLocalizationService } from 'vs/workbench/api/common/extHostLocalizationService'; import { StopWatch } from 'vs/base/common/stopwatch'; --import { setTimeout0 } from 'vs/base/common/platform'; -+import { isWebWorker, setTimeout0 } from 'vs/base/common/platform'; +-import { isCI, setTimeout0 } from 'vs/base/common/platform'; ++import { isWebWorker, isCI, setTimeout0 } from 'vs/base/common/platform'; import { IExtHostManagedSockets } from 'vs/workbench/api/common/extHostManagedSockets'; import { Dto } from 'vs/workbench/services/extensions/common/proxyIdentifier'; -@@ -250,9 +250,11 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme +@@ -256,9 +256,11 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme this._extHostTerminalService.dispose(); this._activator.dispose(); @@ -535,7 +535,7 @@ index 0a0eebdd8a5..f98fffcec6f 100644 // Invalidate all proxies this._extHostContext.dispose(); diff --git a/src/vs/workbench/api/common/extensionHostMain.ts b/src/vs/workbench/api/common/extensionHostMain.ts -index 40f1cdaf146..03ff0c1ffae 100644 +index 2bd275cbc21..b1c93afd65f 100644 --- a/src/vs/workbench/api/common/extensionHostMain.ts +++ b/src/vs/workbench/api/common/extensionHostMain.ts @@ -12,7 +12,7 @@ import { MainContext, MainThreadConsoleShape } from 'vs/workbench/api/common/ext @@ -605,7 +605,7 @@ index 40f1cdaf146..03ff0c1ffae 100644 + } + private static _transform(initData: IExtensionHostInitData, rpcProtocol: RPCProtocol): IExtensionHostInitData { - initData.allExtensions.forEach((ext) => { + initData.extensions.allExtensions.forEach((ext) => { (>ext).extensionLocation = URI.revive(rpcProtocol.transformIncomingURIs(ext.extensionLocation)); diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 5ac0ddc7ec9..6ea024b237b 100644 @@ -671,10 +671,10 @@ index bb3cbfbca7b..b650ff592b1 100644 const nativeExit: IExitFn = process.exit.bind(process); function patchProcess(allowExit: boolean) { diff --git a/src/vs/workbench/api/node/proxyResolver.ts b/src/vs/workbench/api/node/proxyResolver.ts -index 6c0cd980ced..04084152187 100644 +index 1f59cbf5ca3..783ff5b34ba 100644 --- a/src/vs/workbench/api/node/proxyResolver.ts +++ b/src/vs/workbench/api/node/proxyResolver.ts -@@ -67,10 +67,10 @@ export function connectProxyResolver( +@@ -81,10 +81,10 @@ export function connectProxyResolver( function createPatchedModules(params: ProxyAgentParams, resolveProxy: ReturnType) { return { @@ -1032,7 +1032,7 @@ index afa384aa88c..bc631450591 100644 : compositeSwitcherBar.getWidth(currentItemsLength + index) )); diff --git a/src/vs/workbench/browser/parts/views/viewPaneContainer.ts b/src/vs/workbench/browser/parts/views/viewPaneContainer.ts -index 1f593cd65c3..3de01b22110 100644 +index f23c48b7db1..3a638425a2d 100644 --- a/src/vs/workbench/browser/parts/views/viewPaneContainer.ts +++ b/src/vs/workbench/browser/parts/views/viewPaneContainer.ts @@ -671,7 +671,7 @@ export class ViewPaneContainer extends Component implements IViewPaneContainer { @@ -1045,7 +1045,7 @@ index 1f593cd65c3..3de01b22110 100644 isVisible(): boolean { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts -index 645bcb88540..34bee647bd3 100644 +index e6ae569ad9d..3b2ac782391 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -83,9 +83,8 @@ import { IHistoryService } from 'vs/workbench/services/history/common/history'; @@ -1068,7 +1068,7 @@ index 645bcb88540..34bee647bd3 100644 Terminal.strings.promptLabel = nls.localize('terminal.integrated.a11yPromptLabel', 'Terminal input'); Terminal.strings.tooMuchOutput = keybinding ? nls.localize('terminal.integrated.useAccessibleBuffer', 'Use the accessible buffer {0} to manually review output', keybinding.getLabel()) : nls.localize('terminal.integrated.useAccessibleBufferNoKb', 'Use the Terminal: Focus Accessible Buffer command to manually review output'); diff --git a/src/vs/workbench/contrib/terminal/browser/terminalService.ts b/src/vs/workbench/contrib/terminal/browser/terminalService.ts -index 3a8d8a3d34c..7b9fe938a80 100644 +index e37b1ba4d2b..549d13aa21c 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalService.ts @@ -19,7 +19,7 @@ import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/c @@ -1098,7 +1098,7 @@ index 3a8d8a3d34c..7b9fe938a80 100644 this._terminalCountContextKey = TerminalContextKeys.count.bindTo(this._contextKeyService); this._terminalEditorActive = TerminalContextKeys.terminalEditorActive.bindTo(this._contextKeyService); diff --git a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts -index 12aaa0b0bb6..9aac558f2c8 100644 +index ac1a2096320..c823dcc38b1 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts @@ -35,7 +35,6 @@ import { DecorationAddon } from 'vs/workbench/contrib/terminal/browser/xterm/dec @@ -1109,7 +1109,7 @@ index 12aaa0b0bb6..9aac558f2c8 100644 import { SuggestAddon } from 'vs/workbench/contrib/terminal/browser/xterm/suggestAddon'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; -@@ -756,7 +755,7 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, ID +@@ -756,7 +755,7 @@ export class XtermTerminal extends Disposable implements IXtermTerminal, IDetach protected async _getCanvasAddonConstructor(): Promise { if (!CanvasAddon) { @@ -1118,7 +1118,7 @@ index 12aaa0b0bb6..9aac558f2c8 100644 } return CanvasAddon; } -@@ -782,35 +781,35 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, ID +@@ -782,35 +781,35 @@ export class XtermTerminal extends Disposable implements IXtermTerminal, IDetach protected async _getImageAddonConstructor(): Promise { if (!ImageAddon) { @@ -1173,7 +1173,7 @@ index a6e9943b866..c470a1c9ed5 100644 }); } diff --git a/src/vs/workbench/contrib/webview/browser/webviewElement.ts b/src/vs/workbench/contrib/webview/browser/webviewElement.ts -index 535da4b66c8..91a9bca8a36 100644 +index a860270eca9..0ef927948db 100644 --- a/src/vs/workbench/contrib/webview/browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/browser/webviewElement.ts @@ -11,7 +11,7 @@ import { streamToBuffer, VSBufferReadableStream } from 'vs/base/common/buffer'; @@ -1230,10 +1230,10 @@ index 535da4b66c8..91a9bca8a36 100644 if (this.element && this._messagePort) { this._messagePort.postMessage({ channel, args: data }, transferable); diff --git a/src/vs/workbench/services/extensions/browser/extensionService.ts b/src/vs/workbench/services/extensions/browser/extensionService.ts -index d8652bf5ac0..d0cf61f0983 100644 +index 25885c7c4f9..ec1beb2c951 100644 --- a/src/vs/workbench/services/extensions/browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/browser/extensionService.ts -@@ -210,16 +210,16 @@ export class ExtensionService extends AbstractExtensionService implements IExten +@@ -212,16 +212,16 @@ export class ExtensionService extends AbstractExtensionService implements IExten } } @@ -1243,7 +1243,7 @@ index d8652bf5ac0..d0cf61f0983 100644 constructor( private readonly _extensionsProposedApi: ExtensionsProposedApi, private readonly _scanWebExtensions: () => Promise, - private readonly _getExtensions: () => Promise, + private readonly _getExtensionRegistrySnapshotWhenReady: () => Promise, - @IInstantiationService private readonly _instantiationService: IInstantiationService, - @IRemoteAgentService private readonly _remoteAgentService: IRemoteAgentService, - @IRemoteAuthorityResolverService private readonly _remoteAuthorityResolverService: IRemoteAuthorityResolverService, @@ -1252,10 +1252,10 @@ index d8652bf5ac0..d0cf61f0983 100644 + @IRemoteAgentService protected readonly _remoteAgentService: IRemoteAgentService, + @IRemoteAuthorityResolverService protected readonly _remoteAuthorityResolverService: IRemoteAuthorityResolverService, + @IWorkbenchExtensionEnablementService protected readonly _extensionEnablementService: IWorkbenchExtensionEnablementService, + @ILogService private readonly _logService: ILogService, ) { } - createExtensionHost(runningLocations: ExtensionRunningLocationTracker, runningLocation: ExtensionRunningLocation, isInitialStart: boolean): IExtensionHost | null { -@@ -245,7 +245,7 @@ class BrowserExtensionHostFactory implements IExtensionHostFactory { +@@ -248,7 +248,7 @@ class BrowserExtensionHostFactory implements IExtensionHostFactory { } } @@ -1265,10 +1265,10 @@ index d8652bf5ac0..d0cf61f0983 100644 getInitData: async (): Promise => { if (isInitialStart) { diff --git a/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts b/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts -index ad66755797e..98d63a5eecf 100644 +index a7ce017ab9f..5bcf0abf9ca 100644 --- a/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts +++ b/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts -@@ -76,7 +76,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost +@@ -74,7 +74,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost this._extensionHostLogsLocation = joinPath(this._environmentService.extHostLogsPath, 'webWorker'); } @@ -1277,7 +1277,7 @@ index ad66755797e..98d63a5eecf 100644 const suffixSearchParams = new URLSearchParams(); if (this._environmentService.debugExtensionHost && this._environmentService.debugRenderer) { suffixSearchParams.set('debugged', '1'); -@@ -111,8 +111,6 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost +@@ -109,8 +109,6 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost res.searchParams.set('salt', stableOriginUUID); return res.toString(); } @@ -1286,7 +1286,7 @@ index ad66755797e..98d63a5eecf 100644 } const relativeExtensionHostIframeSrc = FileAccess.asBrowserUri(iframeModulePath); -@@ -128,6 +126,8 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost +@@ -126,6 +124,8 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost } private async _startInsideIframe(): Promise { @@ -1295,7 +1295,7 @@ index ad66755797e..98d63a5eecf 100644 const webWorkerExtensionHostIframeSrc = await this._getWebWorkerExtensionHostIframeSrc(); const emitter = this._register(new Emitter()); -@@ -223,10 +223,10 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost +@@ -221,10 +221,10 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost } }; @@ -1308,7 +1308,7 @@ index ad66755797e..98d63a5eecf 100644 // extension host handshake happens below // (1) <== wait for: Ready // (2) ==> send: init data -@@ -236,7 +236,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost +@@ -234,7 +234,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost if (this._isTerminating) { throw canceled(); } @@ -1317,7 +1317,7 @@ index ad66755797e..98d63a5eecf 100644 if (this._isTerminating) { throw canceled(); } -@@ -265,8 +265,8 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost +@@ -263,8 +263,8 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost return Promise.resolve(false); } @@ -1325,14 +1325,14 @@ index ad66755797e..98d63a5eecf 100644 - const initData = await this._initDataProvider.getInitData(); + private async _createExtHostInitData(initDataPromise: Promise): Promise { + const initData = await initDataPromise; + this.extensions = initData.extensions; const workspace = this._contextService.getWorkspace(); - const deltaExtensions = this.extensions.set(initData.allExtensions, initData.myExtensions); const nlsBaseUrl = this._productService.extensionsGallery?.nlsBaseUrl; diff --git a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts -index c529886ca92..2311e7a0fb5 100644 +index e1308458a40..0d4fe0cae01 100644 --- a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts +++ b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts -@@ -87,9 +87,9 @@ export abstract class AbstractExtensionService extends Disposable implements IEx +@@ -88,9 +88,9 @@ export abstract class AbstractExtensionService extends Disposable implements IEx private _resolveAuthorityAttempt: number = 0; constructor( @@ -1345,7 +1345,7 @@ index c529886ca92..2311e7a0fb5 100644 @IInstantiationService protected readonly _instantiationService: IInstantiationService, @INotificationService protected readonly _notificationService: INotificationService, @IWorkbenchEnvironmentService protected readonly _environmentService: IWorkbenchEnvironmentService, -@@ -192,7 +192,7 @@ export abstract class AbstractExtensionService extends Disposable implements IEx +@@ -205,7 +205,7 @@ export abstract class AbstractExtensionService extends Disposable implements IEx //#region deltaExtensions @@ -1354,7 +1354,7 @@ index c529886ca92..2311e7a0fb5 100644 this._deltaExtensionsQueue.push(item); if (this._inHandleDeltaExtensions) { // Let the current item finish, the new one will be picked up -@@ -1156,7 +1156,7 @@ export interface IExtensionHostFactory { +@@ -1183,7 +1183,7 @@ export interface IExtensionHostFactory { createExtensionHost(runningLocations: ExtensionRunningLocationTracker, runningLocation: ExtensionRunningLocation, isInitialStart: boolean): IExtensionHost | null; } @@ -1364,10 +1364,10 @@ index c529886ca92..2311e7a0fb5 100644 public readonly toAdd: IExtension[], public readonly toRemove: string[] | IExtension[] diff --git a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts -index 7ac17418689..fedd15e8fb6 100644 +index a4036f94bd2..c1ffbbd31ca 100644 --- a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts +++ b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts -@@ -84,7 +84,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { +@@ -82,7 +82,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { this._isExtensionDevHost = devOpts.isExtensionDevHost; } @@ -1376,7 +1376,7 @@ index 7ac17418689..fedd15e8fb6 100644 const options: IConnectionOptions = { commit: this._productService.commit, quality: this._productService.quality, -@@ -99,6 +99,8 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { +@@ -97,6 +97,8 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { logService: this._logService, ipcLogger: null }; @@ -1385,7 +1385,7 @@ index 7ac17418689..fedd15e8fb6 100644 return this.remoteAuthorityResolverService.resolveAuthority(this._initDataProvider.remoteAuthority).then((resolverResult) => { const startParams: IRemoteExtensionHostStartParams = { -@@ -153,7 +155,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { +@@ -151,7 +153,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { if (isMessageOfType(msg, MessageType.Ready)) { // 1) Extension Host is ready to receive messages, initialize it @@ -1394,7 +1394,7 @@ index 7ac17418689..fedd15e8fb6 100644 protocol.send(VSBuffer.fromString(JSON.stringify(data))); }); return; -@@ -201,8 +203,8 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { +@@ -199,8 +201,8 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { this._onExit.fire([0, reconnectionToken]); } @@ -1402,14 +1402,14 @@ index 7ac17418689..fedd15e8fb6 100644 - const remoteInitData = await this._initDataProvider.getInitData(); + private async _createExtHostInitData(initDataPromise: Promise, isExtensionDevelopmentDebug: boolean): Promise { + const remoteInitData = await initDataPromise; + this.extensions = remoteInitData.extensions; const workspace = this._contextService.getWorkspace(); - const deltaExtensions = this.extensions.set(remoteInitData.allExtensions, remoteInitData.myExtensions); return { diff --git a/src/vs/workbench/services/extensions/electron-sandbox/localProcessExtensionHost.ts b/src/vs/workbench/services/extensions/electron-sandbox/localProcessExtensionHost.ts -index b72e19b9ec6..79278e098bb 100644 +index c635003cea3..74d397f5ed4 100644 --- a/src/vs/workbench/services/extensions/electron-sandbox/localProcessExtensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-sandbox/localProcessExtensionHost.ts -@@ -190,6 +190,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { +@@ -188,6 +188,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { } protected async _startWithCommunication(communication: IExtHostCommunication): Promise { @@ -1417,7 +1417,7 @@ index b72e19b9ec6..79278e098bb 100644 const [extensionHostCreationResult, communicationPreparedData, portNumber, processEnv] = await Promise.all([ this._extensionHostStarter.createExtensionHost(), -@@ -325,7 +326,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { +@@ -323,7 +324,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { // Initialize extension host process with hand shakes const protocol = await communication.establishProtocol(communicationPreparedData, this._extensionHostProcess, opts); @@ -1426,7 +1426,7 @@ index b72e19b9ec6..79278e098bb 100644 clearTimeout(startupTimeoutHandle); return protocol; } -@@ -360,7 +361,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { +@@ -358,7 +359,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { return port || 0; } @@ -1435,7 +1435,7 @@ index b72e19b9ec6..79278e098bb 100644 // 1) wait for the incoming `ready` event and send the initialization data. // 2) wait for the incoming `initialized` event. return new Promise((resolve, reject) => { -@@ -385,7 +386,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { +@@ -383,7 +384,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { // 1) Extension Host is ready to receive messages, initialize it uninstallTimeoutCheck(); @@ -1444,7 +1444,7 @@ index b72e19b9ec6..79278e098bb 100644 // Wait 60s for the initialized message installTimeoutCheck(); -@@ -414,8 +415,8 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { +@@ -412,8 +413,8 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost { }); } @@ -1452,14 +1452,14 @@ index b72e19b9ec6..79278e098bb 100644 - const initData = await this._initDataProvider.getInitData(); + private async _createExtHostInitData(initDataPromise: Promise): Promise { + const initData = await initDataPromise; + this.extensions = initData.extensions; const workspace = this._contextService.getWorkspace(); - const deltaExtensions = this.extensions.set(initData.allExtensions, initData.myExtensions); return { diff --git a/src/vs/workbench/services/keybinding/browser/keybindingService.ts b/src/vs/workbench/services/keybinding/browser/keybindingService.ts -index e6112182d25..0bc70e55633 100644 +index 10e58f90efe..cf1ee5bf6c7 100644 --- a/src/vs/workbench/services/keybinding/browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/browser/keybindingService.ts -@@ -381,15 +381,19 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService { +@@ -392,15 +392,19 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService { return this.userKeybindings.keybindings.length; } @@ -1598,7 +1598,7 @@ index f4707432371..7c5cdde39cc 100644 declare _serviceBrand: undefined; diff --git a/src/vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.ts b/src/vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.ts -index f40a12b0380..25979bc0001 100644 +index 850b58e1e6c..2eb835fa2b6 100644 --- a/src/vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.ts +++ b/src/vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.ts @@ -3,7 +3,6 @@ @@ -1607,7 +1607,7 @@ index f40a12b0380..25979bc0001 100644 -import { importAMDNodeModule } from 'vs/amdX'; import { Disposable } from 'vs/base/common/lifecycle'; - import { IObservable, autorun, keepAlive, observableFromEvent } from 'vs/base/common/observable'; + import { IObservable, autorun, keepObserved, observableFromEvent } from 'vs/base/common/observable'; import { countEOL } from 'vs/editor/common/core/eolCounter'; @@ -17,7 +16,7 @@ import { ContiguousMultilineTokensBuilder } from 'vs/editor/common/tokens/contig import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -1650,7 +1650,7 @@ index 3974d642732..6e7de4d5d0d 100644 // Using the response directly only works if the server sets the MIME type 'application/wasm'. diff --git a/src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateWorkerTokenizer.ts b/src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateWorkerTokenizer.ts -index a7c586b2442..07fd6ca42de 100644 +index bc98f7239ce..5937fa2286a 100644 --- a/src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateWorkerTokenizer.ts +++ b/src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateWorkerTokenizer.ts @@ -3,7 +3,6 @@ From 9d26db3f29bdd2de904cc5c19b82d9ce7fd9a9ea Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 14:41:55 +0200 Subject: [PATCH 04/11] fix: solve build issues --- src/api.ts | 2 +- src/extensions.ts | 35 +++++++++++++----------- src/missing-services.ts | 30 ++++++++++---------- src/monaco.ts | 4 +-- src/rollup-extension-directory-plugin.ts | 5 +++- src/rollup-vsix-plugin.ts | 5 +++- src/service-override/extensions.ts | 21 +++++++------- src/service-override/storage.ts | 5 ++++ src/service-override/views.ts | 2 +- src/services.ts | 1 - 10 files changed, 62 insertions(+), 48 deletions(-) diff --git a/src/api.ts b/src/api.ts index ad57613d..30130174 100644 --- a/src/api.ts +++ b/src/api.ts @@ -180,6 +180,7 @@ const api: typeof vscode = { TextEditorLineNumbersStyle: extHostTypes.TextEditorLineNumbersStyle, TextEditorRevealType: extHostTypes.TextEditorRevealType, TextEditorSelectionChangeKind: extHostTypes.TextEditorSelectionChangeKind, + SyntaxTokenType: extHostTypes.SyntaxTokenType, TextDocumentChangeReason: extHostTypes.TextDocumentChangeReason, ThemeColor: extHostTypes.ThemeColor, ThemeIcon: extHostTypes.ThemeIcon, @@ -260,7 +261,6 @@ const api: typeof vscode = { StackFrameFocus: extHostTypes.StackFrameFocus, // eslint-disable-next-line @typescript-eslint/no-explicit-any ThreadFocus: extHostTypes.ThreadFocus, - NotebookCodeActionKind: extHostTypes.NotebookCodeActionKind, RelatedInformationType: extHostTypes.RelatedInformationType } diff --git a/src/extensions.ts b/src/extensions.ts index 2dfb184e..76853ab8 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -10,6 +10,7 @@ import { FileAccess, Schemas } from 'vs/base/common/network' import { Barrier } from 'vs/base/common/async' import { ExtensionHostKind } from 'vs/workbench/services/extensions/common/extensionHostKind' import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService' +import { ILogService } from 'vs/platform/log/common/log' import { IExtensionWithExtHostKind, SimpleExtensionService, getLocalExtHostExtensionService } from './service-override/extensions' import { registerExtensionFile } from './service-override/files' import { setDefaultApi } from './api' @@ -95,23 +96,25 @@ export function registerExtension (manifest: IExtensionManifest, extHostKind: Ex export function registerExtension (manifest: IExtensionManifest, extHostKind?: ExtensionHostKind, params?: RegisterExtensionParams): RegisterExtensionResult export function registerExtension (manifest: IExtensionManifest, extHostKind?: ExtensionHostKind, { defaultNLS, builtin = manifest.publisher === 'vscode', path = '/' }: RegisterExtensionParams = {}): RegisterExtensionResult { const disposableStore = new DisposableStore() - const localizedManifest = defaultNLS != null ? localizeManifest(manifest, defaultNLS) : manifest - - const id = getExtensionId(localizedManifest.publisher, localizedManifest.name) - - let extension: IExtensionWithExtHostKind = { - manifest: localizedManifest, - type: builtin ? ExtensionType.System : ExtensionType.User, - isBuiltin: builtin, - identifier: { id }, - location: URI.from({ scheme: 'extension', authority: id, path }), - targetPlatform: TargetPlatform.WEB, - isValid: true, - validations: [], - extHostKind - } + const id = getExtensionId(manifest.publisher, manifest.name) + const location = URI.from({ scheme: 'extension', authority: id, path }) const addExtensionPromise = (async () => { + const logger = await getService(ILogService) + const localizedManifest = defaultNLS != null ? localizeManifest(logger, manifest, defaultNLS) : manifest + + let extension: IExtensionWithExtHostKind = { + manifest: localizedManifest, + type: builtin ? ExtensionType.System : ExtensionType.User, + isBuiltin: builtin, + identifier: { id }, + location, + targetPlatform: TargetPlatform.WEB, + isValid: true, + validations: [], + extHostKind + } + if (extHostKind === ExtensionHostKind.Remote) { const remoteAuthority = (await getService(IWorkbenchEnvironmentService)).remoteAuthority extension = { @@ -139,7 +142,7 @@ export function registerExtension (manifest: IExtensionManifest, extHostKind?: E if (extHostKind !== ExtensionHostKind.Remote) { function registerFileUrl (path: string, url: string, mimeType?: string) { - return registerExtensionFileUrl(extension.location, path, url, mimeType) + return registerExtensionFileUrl(location, path, url, mimeType) } api = { ...api, diff --git a/src/missing-services.ts b/src/missing-services.ts index 43eda311..f904a19c 100644 --- a/src/missing-services.ts +++ b/src/missing-services.ts @@ -134,7 +134,6 @@ import { IExtensionManifestPropertiesService } from 'vs/workbench/services/exten import { IRemoteExtensionsScannerService } from 'vs/platform/remote/common/remoteExtensionsScanner' import { BrowserURLService } from 'vs/workbench/services/url/browser/urlService' import { IURLService } from 'vs/platform/url/common/url' -import { ICredentialsService } from 'vs/platform/credentials/common/credentials' import { IRemoteSocketFactoryService } from 'vs/platform/remote/common/remoteSocketFactoryService' import { IQuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiff' import { ISCMService, ISCMViewService } from 'vs/workbench/contrib/scm/common/scm' @@ -567,8 +566,8 @@ registerSingleton(IUserDataProfilesService, class UserDataProfilesService implem removeProfile = unsupported }, InstantiationType.Eager) class InjectedUserDataProfileService extends UserDataProfileService { - constructor (@IUserDataProfilesService userDataProfilesService: IUserDataProfilesService) { - super(profile, userDataProfilesService) + constructor () { + super(profile) } } registerSingleton(IUserDataProfileService, InjectedUserDataProfileService, InstantiationType.Eager) @@ -814,6 +813,8 @@ registerSingleton(ITaskService, class TaskService implements ITaskService { hasTaskSystemInfo = false registerSupportedExecutions = () => {} extensionCallbackTaskComplete = unsupported + isReconnected = false + onDidReconnectToTasks = Event.None }, InstantiationType.Eager) registerSingleton(IConfigurationResolverService, class ConfigurationResolverService implements IConfigurationResolverService { @@ -1445,7 +1446,7 @@ registerSingleton(IUserDataSyncWorkbenchService, class UserDataSyncWorkbenchServ authenticationProviders = [] all = [] current = undefined - accountStatus = AccountStatus.Uninitialized + accountStatus = AccountStatus.Unavailable onDidChangeAccountStatus = Event.None turnOn = unsupported turnoff = unsupported @@ -1456,6 +1457,8 @@ registerSingleton(IUserDataSyncWorkbenchService, class UserDataSyncWorkbenchServ synchroniseUserDataSyncStoreType = unsupported showConflicts = unsupported accept = unsupported + getAllLogResources = unsupported + downloadSyncActivity = unsupported }, InstantiationType.Delayed) registerSingleton(IUserDataSyncEnablementService, class UserDataSyncEnablementService implements IUserDataSyncEnablementService { @@ -1690,6 +1693,9 @@ registerSingleton(IAccessibleViewService, class AccessibleViewService implements _serviceBrand: undefined show = unsupported registerProvider = unsupported + getPosition = unsupported + setPosition = unsupported + getLastPosition = unsupported }, InstantiationType.Delayed) registerSingleton(IWorkbenchExtensionManagementService, class WorkbenchExtensionManagementService implements IWorkbenchExtensionManagementService { @@ -1762,17 +1768,6 @@ registerSingleton(IRemoteExtensionsScannerService, class RemoteExtensionsScanner registerSingleton(IURLService, BrowserURLService, InstantiationType.Delayed) -registerSingleton(ICredentialsService, class CredentialsService implements ICredentialsService { - _serviceBrand: undefined - onDidChangePassword = Event.None - getSecretStoragePrefix = async () => 'code-oss' - getPassword = unsupported - setPassword = unsupported - deletePassword = unsupported - findPassword = unsupported - findCredentials = unsupported -}, InstantiationType.Delayed) - registerSingleton(IRemoteSocketFactoryService, class RemoteSocketFactoryService implements IRemoteSocketFactoryService { _serviceBrand: undefined register = unsupported @@ -1841,6 +1836,8 @@ registerSingleton(ICommentService, class CommentService implements ICommentServi setActiveCommentThread = unsupported setCurrentCommentThread = unsupported enableCommenting = unsupported + registerContinueOnCommentProvider = unsupported + removeContinueOnComment = unsupported }, InstantiationType.Delayed) registerSingleton(INotebookCellStatusBarService, class NotebookCellStatusBarService implements INotebookCellStatusBarService { @@ -2072,6 +2069,8 @@ registerSingleton(IChatContributionService, class ChatContributionService implem _serviceBrand: undefined registeredProviders = [] getViewIdForProvider = unsupported + registerChatProvider = unsupported + deregisterChatProvider = unsupported }, InstantiationType.Delayed) registerSingleton(ITestProfileService, class TestProfileService implements ITestProfileService { @@ -2156,6 +2155,7 @@ registerSingleton(IChatVariablesService, class ChatVariablesService implements I registerVariable = unsupported getVariables = unsupported resolveVariables = unsupported + hasVariable = unsupported _serviceBrand: undefined }, InstantiationType.Delayed) diff --git a/src/monaco.ts b/src/monaco.ts index bd379803..0807fb38 100644 --- a/src/monaco.ts +++ b/src/monaco.ts @@ -1,7 +1,7 @@ import { StandaloneKeybindingService, StandaloneServices } from 'vs/editor/standalone/browser/standaloneServices' import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration' import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation' -import { IStandaloneEditorConstructionOptions, StandaloneDiffEditor, StandaloneEditor } from 'vs/editor/standalone/browser/standaloneCodeEditor' +import { IStandaloneEditorConstructionOptions, StandaloneDiffEditor2, StandaloneEditor } from 'vs/editor/standalone/browser/standaloneCodeEditor' import { IEditorOptions } from 'vs/editor/common/config/editorOptions' import { IEditorConfiguration } from 'vs/workbench/browser/parts/editor/textEditor' import { isObject } from 'vs/base/common/types' @@ -160,7 +160,7 @@ class ConfiguredStandaloneEditor extends createInjectedClass(StandaloneEditor) { } } -class ConfiguredStandaloneDiffEditor extends StandaloneDiffEditor { +class ConfiguredStandaloneDiffEditor extends StandaloneDiffEditor2 { protected override _createInnerEditor (instantiationService: IInstantiationService, container: HTMLElement, options: Readonly): CodeEditorWidget { return instantiationService.createInstance(ConfiguredStandaloneEditor, container, true, options) } diff --git a/src/rollup-extension-directory-plugin.ts b/src/rollup-extension-directory-plugin.ts index 855e0aaa..19695504 100644 --- a/src/rollup-extension-directory-plugin.ts +++ b/src/rollup-extension-directory-plugin.ts @@ -2,6 +2,7 @@ import { createFilter, FilterPattern, dataToEsm } from '@rollup/pluginutils' import { Plugin } from 'rollup' import { IExtensionManifest } from 'vs/platform/extensions/common/extensions' import { localizeManifest } from 'vs/platform/extensionManagement/common/extensionNls.js' +import { ConsoleLogger } from 'vs/platform/log/common/log' import * as path from 'path' import * as fsPromise from 'fs/promises' import * as fs from 'fs' @@ -14,6 +15,8 @@ interface Options { getAdditionalResources?: (manifest: IExtensionManifest, directory: string) => Promise } +const logger = new ConsoleLogger() + export default function plugin ({ include, exclude, @@ -43,7 +46,7 @@ export default function plugin ({ let parsed = parseJson(id, content.toString('utf-8')) const nlsFile = path.resolve(path.dirname(id), 'package.nls.json') if (fs.existsSync(nlsFile)) { - parsed = localizeManifest(parsed, parseJson(id, (await fsPromise.readFile(nlsFile)).toString())) + parsed = localizeManifest(logger, parsed, parseJson(id, (await fsPromise.readFile(nlsFile)).toString())) } return { code: dataToEsm(transformManifest(parsed), { diff --git a/src/rollup-vsix-plugin.ts b/src/rollup-vsix-plugin.ts index a13f83d4..de3fb9e2 100644 --- a/src/rollup-vsix-plugin.ts +++ b/src/rollup-vsix-plugin.ts @@ -3,6 +3,7 @@ import { InputPluginOption, Plugin } from 'rollup' import * as yauzl from 'yauzl' import { IExtensionManifest } from 'vs/platform/extensions/common/extensions' import { localizeManifest } from 'vs/platform/extensionManagement/common/extensionNls.js' +import { ConsoleLogger } from 'vs/platform/log/common/log' import { Readable } from 'stream' import * as path from 'path' import { ExtensionResource, extractResourcesFromExtensionManifest, parseJson } from './extension-tools' @@ -15,6 +16,8 @@ interface Options { getAdditionalResources?: (manifest: IExtensionManifest) => Promise } +const logger = new ConsoleLogger() + function read (stream: Readable): Promise { const bufs: Buffer[] = [] return new Promise((resolve) => { @@ -121,7 +124,7 @@ export default function plugin ({ let packageJson = parseJson(id, vsixFile['package.json']!.toString('utf8')) if ('package.nls.json' in vsixFile) { - packageJson = localizeManifest(packageJson, parseJson(id, vsixFile['package.nls.json']!.toString())) + packageJson = localizeManifest(logger, packageJson, parseJson(id, vsixFile['package.nls.json']!.toString())) } return ` diff --git a/src/service-override/extensions.ts b/src/service-override/extensions.ts index eb9c2faa..5c652c79 100644 --- a/src/service-override/extensions.ts +++ b/src/service-override/extensions.ts @@ -49,6 +49,7 @@ import { ILayoutService } from 'vs/platform/layout/browser/layoutService' import { IStorageService } from 'vs/platform/storage/common/storage' import { ILabelService } from 'vs/platform/label/common/label' import { ExtensionKind } from 'vs/platform/environment/common/environment' +import { ExtensionDescriptionRegistrySnapshot } from 'vs/workbench/services/extensions/common/extensionDescriptionRegistry' import getOutputServiceOverride from './output' import { changeUrlDomain } from './tools/url' import { registerAssets } from '../assets' @@ -129,7 +130,7 @@ const localExtHostPromise = localExtHostDeferred.p class LocalExtensionHost implements IExtensionHost { public readonly remoteAuthority = null - public readonly extensions = new ExtensionHostExtensions() + public extensions: ExtensionHostExtensions | null = null private readonly _extensionHostLogsLocation: URI private _protocolPromise: Promise | null @@ -177,8 +178,8 @@ class LocalExtensionHost implements IExtensionHost { private async _createExtHostInitData (): Promise { const initData = await this._initDataProvider.getInitData() + this.extensions = initData.extensions const workspace = this._contextService.getWorkspace() - const deltaExtensions = this.extensions.set(initData.allExtensions, initData.myExtensions) const nlsBaseUrl = this._productService.extensionsGallery?.nlsBaseUrl let nlsUrlWithDetails: URI | undefined // Only use the nlsBaseUrl if we are using a language other than the default, English. @@ -216,9 +217,7 @@ class LocalExtensionHost implements IExtensionHost { includeStack: false, logNative: this._environmentService.debugRenderer }, - allExtensions: deltaExtensions.toAdd, - activationEvents: deltaExtensions.addActivationEvents, - myExtensions: deltaExtensions.myToAdd, + extensions: initData.extensions.toSnapshot(), nlsBaseUrl: nlsUrlWithDetails, telemetryInfo: { sessionId: this._telemetryService.sessionId, @@ -293,13 +292,14 @@ class LocalBrowserExtensionHostFactory extends BrowserExtensionHostFactory { private readonly workerConfig: WorkerConfig | undefined, _extensionsProposedApi: ExtensionsProposedApi, _scanWebExtensions: () => Promise, - _getExtensions: () => Promise, + _getExtensionRegistrySnapshotWhenReady: () => Promise, @IInstantiationService _instantiationService: IInstantiationService, @IRemoteAgentService _remoteAgentService: IRemoteAgentService, @IRemoteAuthorityResolverService _remoteAuthorityResolverService: IRemoteAuthorityResolverService, - @IWorkbenchExtensionEnablementService _extensionEnablementService: IWorkbenchExtensionEnablementService + @IWorkbenchExtensionEnablementService _extensionEnablementService: IWorkbenchExtensionEnablementService, + @ILogService _logService: ILogService ) { - super(_extensionsProposedApi, _scanWebExtensions, _getExtensions, _instantiationService, _remoteAgentService, _remoteAuthorityResolverService, _extensionEnablementService) + super(_extensionsProposedApi, _scanWebExtensions, _getExtensionRegistrySnapshotWhenReady, _instantiationService, _remoteAgentService, _remoteAuthorityResolverService, _extensionEnablementService, _logService) } override createExtensionHost (runningLocations: ExtensionRunningLocationTracker, runningLocation: ExtensionRunningLocation, isInitialStart: boolean): IExtensionHost | null { @@ -386,11 +386,12 @@ export class SimpleExtensionService extends AbstractExtensionService implements workerConfig, extensionsProposedApi, async () => [], - () => this._getExtensions(), + () => this._getExtensionRegistrySnapshotWhenReady(), instantiationService, remoteAgentService, remoteAuthorityResolverService, - extensionEnablementService + extensionEnablementService, + logService ) super( extensionsProposedApi, diff --git a/src/service-override/storage.ts b/src/service-override/storage.ts index ff2b9ed0..600a708b 100644 --- a/src/service-override/storage.ts +++ b/src/service-override/storage.ts @@ -23,6 +23,7 @@ export interface IStorageProvider { write (scope: StorageScope, data: Map): Promise close? (scope: StorageScope): Promise onDidChange? (listener: (event: IStorageItemsChangeEvent) => void): IDisposable + optimize? (scope: StorageScope): Promise } class ExternalStorage extends Storage { @@ -68,6 +69,10 @@ class ExternalStorageDatabase implements IStorageDatabase { async close () { return this.provider.close?.(this.scope) } + + async optimize (): Promise { + return this.provider.optimize?.(this.scope) + } } class ExternalStorageService extends AbstractStorageService { diff --git a/src/service-override/views.ts b/src/service-override/views.ts index 4b64d70c..d1dceae2 100644 --- a/src/service-override/views.ts +++ b/src/service-override/views.ts @@ -344,7 +344,7 @@ function registerCustomView (options: CustomViewOption): IDisposable { const VIEW_CONTAINER = Registry.as(ViewExtensions.ViewContainersRegistry).registerViewContainer({ id: options.id, - title: options.name, + title: { value: options.name, original: options.name }, order: options.order, ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [options.id, { mergeViewWithContainerWhenSingleView: true }]), hideIfEmpty: true, diff --git a/src/services.ts b/src/services.ts index f8067e9a..cd7b5d0c 100644 --- a/src/services.ts +++ b/src/services.ts @@ -77,7 +77,6 @@ export { GroupsArrangement, GroupLayoutArgument, EditorGroupLayout, - IAddGroupOptions, MergeGroupMode, IMergeGroupOptions, ICloseEditorOptions, From b051bcf1261514289fc64cd69a5c623461bce42b Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 16:59:02 +0200 Subject: [PATCH 05/11] feat(demo): update monaco version --- demo/package-lock.json | 118 +++++++++++++++++++++-------------------- demo/package.json | 4 +- 2 files changed, 62 insertions(+), 60 deletions(-) diff --git a/demo/package-lock.json b/demo/package-lock.json index 6ee956c5..1f342f86 100644 --- a/demo/package-lock.json +++ b/demo/package-lock.json @@ -134,7 +134,7 @@ "ansi-colors": "^4.1.3", "dockerode": "^3.3.5", "express": "^4.18.2", - "monaco-editor": "^0.43.0", + "monaco-editor": "^0.44.0", "vscode": "file:../dist/main", "ws": "^8.14.1" }, @@ -858,7 +858,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0" + "monaco-editor": "0.44.0" }, "bin": { "monaco-treemending": "monaco-treemending.js" @@ -872,7 +872,7 @@ "dependencies": { "mime-types": "^2.1.35", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release", - "yauzl": "^2.10.0" + "yauzl": "^2.9.2" } }, "../dist/server": { @@ -882,21 +882,20 @@ "dependencies": { "@microsoft/1ds-core-js": "^3.2.13", "@microsoft/1ds-post-js": "^3.2.13", - "@parcel/watcher": "^2.3.0", - "@vscode/proxy-agent": "^0.17.2", + "@parcel/watcher": "2.1.0", + "@vscode/proxy-agent": "^0.17.4", "@vscode/ripgrep": "^1.15.5", "@vscode/spdlog": "^0.13.11", "@vscode/windows-process-tree": "^0.5.0", "cookie": "^0.5.0", - "kerberos": "^2.0.2", - "keytar": "^7.9.0", - "node-pty": "^1.0.0", + "kerberos": "^2.0.1", + "node-pty": "1.1.0-beta1", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release", "vscode-regexpp": "^3.1.0", - "xterm-addon-serialize": "0.10.0", - "xterm-addon-unicode11": "0.5.0", - "yauzl": "^2.10.0", - "yazl": "^2.5.1" + "xterm-addon-serialize": "0.12.0-beta.26", + "xterm-addon-unicode11": "0.7.0-beta.26", + "yauzl": "^2.9.2", + "yazl": "^2.4.3" }, "bin": { "vscode-ext-host-server": "server.js" @@ -907,7 +906,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -916,7 +915,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -925,7 +924,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -934,7 +933,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -943,7 +942,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -952,7 +951,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -961,7 +960,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -970,7 +969,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -979,7 +978,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -988,7 +987,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -997,7 +996,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1006,8 +1005,8 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "@vscode/vscode-languagedetection": "^1.0.22", - "monaco-editor": "0.43.0", + "@vscode/vscode-languagedetection": "1.0.21", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1016,7 +1015,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1025,7 +1024,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1034,7 +1033,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1043,7 +1042,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1052,7 +1051,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1061,7 +1060,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1070,7 +1069,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1079,7 +1078,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1088,7 +1087,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1097,7 +1096,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1106,7 +1105,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1115,7 +1114,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1124,7 +1123,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1133,15 +1132,15 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release", - "xterm": "5.2.1", - "xterm-addon-canvas": "0.4.0", - "xterm-addon-image": "0.4.1", - "xterm-addon-search": "0.12.0", - "xterm-addon-serialize": "0.10.0", - "xterm-addon-unicode11": "0.5.0", - "xterm-addon-webgl": "0.15.0" + "xterm": "5.4.0-beta.27", + "xterm-addon-canvas": "0.6.0-beta.27", + "xterm-addon-image": "0.6.0-beta.21", + "xterm-addon-search": "0.14.0-beta.27", + "xterm-addon-serialize": "0.12.0-beta.26", + "xterm-addon-unicode11": "0.7.0-beta.26", + "xterm-addon-webgl": "0.17.0-beta.26" } }, "../dist/service-override-textmate": { @@ -1149,10 +1148,10 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release", - "vscode-oniguruma": "^2.0.0", - "vscode-textmate": "^9.0.0" + "vscode-oniguruma": "1.7.0", + "vscode-textmate": "9.0.0" } }, "../dist/service-override-theme": { @@ -1160,31 +1159,34 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, "../dist/service-override-view-banner": { + "name": "@codingame/monaco-vscode-view-banner-service-override", "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, "../dist/service-override-view-status-bar": { + "name": "@codingame/monaco-vscode-view-status-bar-service-override", "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, "../dist/service-override-view-title-bar": { + "name": "@codingame/monaco-vscode-view-title-bar-service-override", "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1193,7 +1195,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -1202,7 +1204,7 @@ "version": "0.0.0-semantic-release", "license": "MIT", "dependencies": { - "monaco-editor": "0.43.0", + "monaco-editor": "0.44.0", "vscode": "npm:@codingame/monaco-vscode-api@^0.0.0-semantic-release" } }, @@ -2934,9 +2936,9 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/monaco-editor": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", - "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.44.0.tgz", + "integrity": "sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q==" }, "node_modules/ms": { "version": "2.1.2", diff --git a/demo/package.json b/demo/package.json index b8450be0..d2518c60 100644 --- a/demo/package.json +++ b/demo/package.json @@ -154,7 +154,7 @@ "ansi-colors": "^4.1.3", "dockerode": "^3.3.5", "express": "^4.18.2", - "monaco-editor": "^0.43.0", + "monaco-editor": "^0.44.0", "vscode": "file:../dist/main", "ws": "^8.14.1" }, @@ -162,4 +162,4 @@ "node": "18.18.0", "npm": "9.8.1" } -} +} \ No newline at end of file From 2bd295c73ecc43920dd05c14c1fb055f4303c955 Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 16:59:22 +0200 Subject: [PATCH 06/11] fix(rollup): remove typo --- rollup/rollup.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollup/rollup.config.ts b/rollup/rollup.config.ts index 2aed9bdb..56e9626e 100644 --- a/rollup/rollup.config.ts +++ b/rollup/rollup.config.ts @@ -1069,7 +1069,7 @@ export default (args: Record): rollup.RollupOptions[] => { }), { name: 'clean-src', async generateBundle () { - // Delete intermediate sources because writing to make sur there is no unused files + // Delete intermediate sources before writing to make sur there is no unused files await fsPromise.rm(DIST_DIR_MAIN, { recursive: true }) From 9f1a93f614c74dd4563e63955a4358d60a0659f9 Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 17:34:39 +0200 Subject: [PATCH 07/11] fix: solve runtime issues --- src/missing-services.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/missing-services.ts b/src/missing-services.ts index f904a19c..61aef179 100644 --- a/src/missing-services.ts +++ b/src/missing-services.ts @@ -171,6 +171,7 @@ import { IMessage, ISignService } from 'vs/platform/sign/common/sign' import { BrowserHostService } from 'vs/workbench/services/host/browser/browserHostService' import { IBannerService } from 'vs/workbench/services/banner/browser/bannerService' import { ITitleService } from 'vs/workbench/services/title/common/titleService' +import { IChatAgentService } from 'vs/workbench/contrib/chat/common/chatAgents' import { unsupported } from './tools' class NullLoggerService extends AbstractLoggerService { @@ -1612,6 +1613,18 @@ registerSingleton(IQuickChatService, class QuickChatService implements IQuickCha openInChatView = unsupported }, InstantiationType.Delayed) +registerSingleton(IChatAgentService, class QuickChatService implements IChatAgentService { + _serviceBrand = undefined + onDidChangeAgents = Event.None + registerAgentData = unsupported + registerAgentCallback = unsupported + registerAgent = unsupported + invokeAgent = unsupported + getAgents = unsupported + getAgent = unsupported + hasAgent = unsupported +}, InstantiationType.Delayed) + registerSingleton(IEmbedderTerminalService, class EmbedderTerminalService implements IEmbedderTerminalService { _serviceBrand: undefined onDidCreateTerminal = Event.None From 45b2670b79fe71ab28c0cff4461a38f384afb97d Mon Sep 17 00:00:00 2001 From: Samuel Olivier Date: Fri, 13 Oct 2023 17:40:13 +0200 Subject: [PATCH 08/11] fix: update index.html files --- src/assets/webview/index-no-csp.html | 3 ++- src/assets/webview/index.html | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/assets/webview/index-no-csp.html b/src/assets/webview/index-no-csp.html index f13f99d2..ada46624 100644 --- a/src/assets/webview/index-no-csp.html +++ b/src/assets/webview/index-no-csp.html @@ -9,7 +9,7 @@ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> - +