diff --git a/.travis.yml b/.travis.yml index 78fda08e54db..27610685f22d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,14 +8,14 @@ matrix: - os: linux dist: trusty env: - - VSCODE_VERSION="1.33.1" MAJOR_VERSION="1" VERSION="$MAJOR_VERSION.$TRAVIS_BUILD_NUMBER-vsc$VSCODE_VERSION" TARGET="centos" + - VSCODE_VERSION="1.34.0" MAJOR_VERSION="1" VERSION="$MAJOR_VERSION.$TRAVIS_BUILD_NUMBER-vsc$VSCODE_VERSION" TARGET="centos" - os: linux dist: trusty env: - - VSCODE_VERSION="1.33.1" MAJOR_VERSION="1" VERSION="$MAJOR_VERSION.$TRAVIS_BUILD_NUMBER-vsc$VSCODE_VERSION" TARGET="alpine" + - VSCODE_VERSION="1.34.0" MAJOR_VERSION="1" VERSION="$MAJOR_VERSION.$TRAVIS_BUILD_NUMBER-vsc$VSCODE_VERSION" TARGET="alpine" - os: osx env: - - VSCODE_VERSION="1.33.1" MAJOR_VERSION="1" VERSION="$MAJOR_VERSION.$TRAVIS_BUILD_NUMBER-vsc$VSCODE_VERSION" + - VSCODE_VERSION="1.34.0" MAJOR_VERSION="1" VERSION="$MAJOR_VERSION.$TRAVIS_BUILD_NUMBER-vsc$VSCODE_VERSION" before_install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libxkbfile-dev libsecret-1-dev; fi diff --git a/build/tasks.ts b/build/tasks.ts index 9e5a4c6da44b..d3412c0092d5 100644 --- a/build/tasks.ts +++ b/build/tasks.ts @@ -14,7 +14,7 @@ const libPath = path.join(__dirname, "../lib"); const vscodePath = path.join(libPath, "vscode"); const defaultExtensionsPath = path.join(libPath, "extensions"); const pkgsPath = path.join(__dirname, "../packages"); -const vscodeVersion = process.env.VSCODE_VERSION || "1.33.1"; +const vscodeVersion = process.env.VSCODE_VERSION || "1.34.0"; const vsSourceUrl = `https://codesrv-ci.cdr.sh/vstar-${vscodeVersion}.tar.gz`; const buildServerBinary = register("build:server:binary", async (runner) => { diff --git a/package.json b/package.json index 194da70a8434..7367d6bd8122 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "tsconfig-paths": "^3.8.0", "tslib": "^1.9.3", "tslint": "^5.12.1", - "typescript": "^3.2.2", + "typescript": "3.4.5", "typescript-tslint-plugin": "^0.2.1", "uglifyjs-webpack-plugin": "^2.1.1", "url-loader": "^1.1.2", diff --git a/packages/ide-api/api.d.ts b/packages/ide-api/api.d.ts index e0049fd6384b..d9bf8792ae4e 100644 --- a/packages/ide-api/api.d.ts +++ b/packages/ide-api/api.d.ts @@ -1,9 +1,9 @@ // tslint:disable no-any import { ITerminalService } from "vs/workbench/contrib/terminal/common/terminal"; -import { IWorkbenchActionRegistry } from 'vs/workbench/common/actions'; -import { Action } from 'vs/base/common/actions'; -import { SyncActionDescriptor } from 'vs/platform/actions/common/actions'; +import { IWorkbenchActionRegistry } from "vs/workbench/common/actions"; +import { Action } from "vs/base/common/actions"; +import { SyncActionDescriptor } from "vs/platform/actions/common/actions"; export interface EvalHelper { } interface ActiveEvalEmitter { diff --git a/packages/server/package.json b/packages/server/package.json index 88e71d9d021f..59ac735c4f8d 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -31,11 +31,6 @@ "@types/pem": "^1.9.4", "@types/safe-compare": "^1.1.0", "@types/ws": "^6.0.1", - "fs-extra": "^7.0.1", - "opn": "^5.4.0", - "string-replace-webpack-plugin": "^0.1.3", - "ts-node": "^7.0.1", - "tsconfig-paths": "^3.7.0", - "typescript": "^3.2.2" + "opn": "^5.4.0" } } diff --git a/packages/server/src/vscode/sharedProcess.ts b/packages/server/src/vscode/sharedProcess.ts index 6834c2e1a364..27a1da2a6db1 100644 --- a/packages/server/src/vscode/sharedProcess.ts +++ b/packages/server/src/vscode/sharedProcess.ts @@ -9,6 +9,7 @@ import { retry } from "@coder/ide/src/retry"; import { logger, field, Level } from "@coder/logger"; import { withEnv } from "@coder/protocol"; +// tslint:disable-next-line completed-docs should be obvious export enum SharedProcessState { Stopped, Starting, @@ -22,6 +23,9 @@ export type SharedProcessEvent = { readonly error: string; }; +/** + * Manages the shared process. If it dies it will start it again. + */ export class SharedProcess { public readonly socketPath: string = os.platform() === "win32" ? path.join("\\\\?\\pipe", os.tmpdir(), `.code-server${Math.random().toString()}`) diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index b97e1daaed03..1d142e6c8501 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -70,11 +70,6 @@ dependencies: "@types/node" "*" -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - "@types/mime-types@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.0.tgz#9ca52cda363f699c69466c2a6ccdaad913ea7a73" @@ -138,11 +133,6 @@ accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - ansi-regex@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" @@ -160,31 +150,16 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== -async@~0.2.10: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - body-parser@1.18.3: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" @@ -227,11 +202,6 @@ buffer-fill@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= -buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -315,20 +285,6 @@ crypt@~0.0.1: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -css-loader@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.9.1.tgz#2e1aa00ce7e30ef2c6a7a4b300a080a7c979e0dc" - integrity sha1-LhqgDOfjDvLGp6SzAKCAp8l54Nw= - dependencies: - csso "1.3.x" - loader-utils "~0.2.2" - source-map "~0.1.38" - -csso@1.3.x: - version "1.3.12" - resolved "https://registry.yarnpkg.com/csso/-/csso-1.3.12.tgz#fc628694a2d38938aaac4996753218fd311cdb9e" - integrity sha1-/GKGlKLTiTiqrEmWdTIY/TEc254= - debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -336,11 +292,6 @@ debug@2.6.9: dependencies: ms "2.0.0" -deepmerge@^2.0.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -365,21 +316,11 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -469,13 +410,6 @@ express@^4.16.4: utils-merge "1.0.1" vary "~1.1.2" -file-loader@^0.8.1: - version "0.8.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.8.5.tgz#9275d031fe780f27d47f5f4af02bd43713cc151b" - integrity sha1-knXQMf54DyfUf19K8CvUNxPMFRs= - dependencies: - loader-utils "~0.2.5" - finalhandler@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" @@ -631,18 +565,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -650,16 +572,6 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.3, loader-utils@~0.2.5: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" @@ -667,11 +579,6 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -make-error@^1.1.1: - version "1.3.5" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" - integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== - md5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" @@ -725,23 +632,6 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -764,11 +654,6 @@ node-netstat@^1.6.0: dependencies: is-wsl "^1.1.0" -object-assign@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - object-keys@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" @@ -945,26 +830,6 @@ signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= -source-map-support@^0.5.6: - version "0.5.10" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" - integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.1.38: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= - dependencies: - amdefine ">=0.0.4" - "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" @@ -975,18 +840,6 @@ statuses@~1.4.0: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== -string-replace-webpack-plugin@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz#73c657e759d66cfe80ae1e0cf091aa256d0e715c" - integrity sha1-c8ZX51nWbP6Arh4M8JGqJW0OcVw= - dependencies: - async "~0.2.10" - loader-utils "~0.2.3" - optionalDependencies: - css-loader "^0.9.1" - file-loader "^0.8.1" - style-loader "^0.8.3" - strip-ansi@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" @@ -994,18 +847,6 @@ strip-ansi@^5.0.0: dependencies: ansi-regex "^4.0.0" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -style-loader@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.8.3.tgz#f4f92eb7db63768748f15065cd6700f5a1c85357" - integrity sha1-9Pkut9tjdodI8VBlzWcA9aHIU1c= - dependencies: - loader-utils "^0.2.5" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -1013,31 +854,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -ts-node@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -tsconfig-paths@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.7.0.tgz#02ae978db447b22e09dafcd4198be95c4885ceb2" - integrity sha512-7iE+Q/2E1lgvxD+c0Ot+GFFmgmfIjt/zCayyruXkXQ84BLT85gHXy0WSoQSiuFX9+d+keE/jiON7notV74ZY+A== - dependencies: - "@types/json5" "^0.0.29" - deepmerge "^2.0.1" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" @@ -1046,11 +862,6 @@ type-is@~1.6.16: media-typer "0.3.0" mime-types "~2.1.18" -typescript@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5" - integrity sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg== - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -1101,8 +912,3 @@ xhr2@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" integrity sha1-f4dliEdxbbUCYyOBL4GMras4el8= - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= diff --git a/packages/vscode/src/client.ts b/packages/vscode/src/client.ts index f783a36c7582..99faebbaac22 100644 --- a/packages/vscode/src/client.ts +++ b/packages/vscode/src/client.ts @@ -6,10 +6,10 @@ import { IStatusbarService, StatusbarAlignment } from "vs/platform/statusbar/com import * as paths from "./fill/paths"; import product from "./fill/product"; import "./vscode.scss"; -import { Action } from 'vs/base/common/actions'; -import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; -import { Registry } from 'vs/platform/registry/common/platform'; -import { IWorkbenchActionRegistry, Extensions } from 'vs/workbench/common/actions'; +import { Action } from "vs/base/common/actions"; +import { SyncActionDescriptor, MenuRegistry, MenuId } from "vs/platform/actions/common/actions"; +import { Registry } from "vs/platform/registry/common/platform"; +import { IWorkbenchActionRegistry, Extensions } from "vs/workbench/common/actions"; import { CommandsRegistry } from "vs/platform/commands/common/commands"; import { IFileService, FileOperation } from "vs/platform/files/common/files"; import { ITextFileService } from "vs/workbench/services/textfile/common/textfiles"; @@ -20,7 +20,13 @@ import { IStorageService } from "vs/platform/storage/common/storage"; // NOTE: shouldn't import anything from VS Code here or anything that will // depend on a synchronous fill like `os`. +/** + * Client implementation that uses VS Code. + */ class VSClient extends IdeClient { + /** + * Start VS Code and expose our API. + */ protected initialize(): Promise { return this.task("Start workbench", 1000, async (data, sharedData) => { paths._paths.initialize(data, sharedData); diff --git a/packages/vscode/src/workbench.ts b/packages/vscode/src/workbench.ts index c2499e87a1f6..8cdd44be09e2 100644 --- a/packages/vscode/src/workbench.ts +++ b/packages/vscode/src/workbench.ts @@ -1,6 +1,6 @@ import * as os from "os"; import { IProgress, INotificationHandle } from "@coder/ide"; -import { logger } from "@coder/logger"; +import { logger, field } from "@coder/logger"; import { client } from "./client"; import "./fill/platform"; @@ -54,7 +54,7 @@ export class Workbench { /** * Handle a drop event on the editor. */ - public handleDrop(event: DragEvent, resolveTargetGroup: () => IEditorGroup, afterDrop: (targetGroup: IEditorGroup) => void, targetIndex?: number): void { + public handleDrop(event: DragEvent, resolveTargetGroup: () => IEditorGroup | undefined, afterDrop: (targetGroup: IEditorGroup) => void, targetIndex?: number): void { client.upload.uploadDropped(event, URI.file(paths.getWorkingDirectory())).then(async (paths) => { const uris = paths.map((p) => URI.file(p)); if (uris.length) { @@ -208,6 +208,7 @@ export class Workbench { perfEntries: [], _: [], }; + if ((workspace as IWorkspaceIdentifier).configPath) { // tslint:disable-next-line:no-any let wid: IWorkspaceIdentifier = (Object).assign({}, workspace); @@ -219,19 +220,17 @@ export class Workbench { } else { config.folderUri = workspace as URI; } + try { await main(config); } catch (ex) { + // Resolves the error of the workspace identifier being invalid. if (ex.toString().indexOf("UriError") !== -1 || ex.toString().indexOf("backupPath") !== -1) { - /** - * Resolves the error of the workspace identifier being invalid. - */ - // tslint:disable-next-line:no-console - console.error(ex); + logger.error(ex.message, field("error", ex)); this.workspace = undefined; location.reload(); - - return; + } else { + throw ex; } } } diff --git a/packages/web/webpack.config.js b/packages/web/webpack.config.js index 7d312035a87d..2e7ee117ccdd 100644 --- a/packages/web/webpack.config.js +++ b/packages/web/webpack.config.js @@ -64,9 +64,6 @@ module.exports = merge( "native-watchdog": path.join(vsFills, "native-watchdog.ts"), "iconv-lite": path.join(vsFills, "iconv-lite.ts"), - // This seems to be in the wrong place? - "vs/workbench/contrib/codeEditor/electron-browser/media/WordWrap_16x.svg": "vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/WordWrap_16x.svg", - "vs/platform/windows/electron-browser/windowsService": path.join(vsFills, "windowsService.ts"), "vs/base/node/paths": path.join(vsFills, "paths.ts"), "vs/base/common/amd": path.join(vsFills, "amd.ts"), diff --git a/scripts/vscode.patch b/scripts/vscode.patch index 90ba05551377..0fd2d45e2575 100644 --- a/scripts/vscode.patch +++ b/scripts/vscode.patch @@ -1,28 +1,18 @@ diff --git a/src/vs/base/browser/browser.ts b/src/vs/base/browser/browser.ts -index 16414ef..3006e05 100644 +index 16414ef..4fff90c 100644 --- a/src/vs/base/browser/browser.ts +++ b/src/vs/base/browser/browser.ts -@@ -125,0 +126,4 @@ export const isEdgeWebView = isEdge && (userAgent.indexOf('WebView/') >= 0); -+export const isMacintosh = userAgent.indexOf("Macintosh") >= 0; -+export const isWindows = userAgent.indexOf("Windows") >= 0; -+export const isLinux = userAgent.indexOf("Linux") >= 0; -+ +@@ -124,0 +125,3 @@ export const isEdgeWebView = isEdge && (userAgent.indexOf('WebView/') >= 0); ++export const isMacintosh = userAgent.indexOf('Macintosh') >= 0; ++export const isWindows = userAgent.indexOf('Windows') >= 0; ++export const isLinux = userAgent.indexOf('Linux') >= 0; diff --git a/src/vs/base/browser/keyboardEvent.ts b/src/vs/base/browser/keyboardEvent.ts -index 03bdffc..d72c168 100644 +index 03bdffc..acbc954 100644 --- a/src/vs/base/browser/keyboardEvent.ts +++ b/src/vs/base/browser/keyboardEvent.ts -@@ -154 +154 @@ let INVERSE_KEY_CODE_MAP: KeyCode[] = new Array(KeyCode.MAX_VALUE); -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { -@@ -159 +159 @@ let INVERSE_KEY_CODE_MAP: KeyCode[] = new Array(KeyCode.MAX_VALUE); -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { -@@ -205 +205 @@ export interface IKeyboardEvent { --const ctrlKeyMod = (platform.isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd); -+const ctrlKeyMod = (browser.isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd); -@@ -208 +208 @@ const shiftKeyMod = KeyMod.Shift; --const metaKeyMod = (platform.isMacintosh ? KeyMod.CtrlCmd : KeyMod.WinCtrl); -+const metaKeyMod = (browser.isMacintosh ? KeyMod.CtrlCmd : KeyMod.WinCtrl); +@@ -8 +8 @@ import { KeyCode, KeyCodeUtils, KeyMod, SimpleKeybinding } from 'vs/base/common/ +-import * as platform from 'vs/base/common/platform'; ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/base/browser/ui/aria/aria.ts b/src/vs/base/browser/ui/aria/aria.ts index fc71827..c8ed796 100644 --- a/src/vs/base/browser/ui/aria/aria.ts @@ -31,21 +21,12 @@ index fc71827..c8ed796 100644 -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts -index 0869c52..4bd0813 100644 +index 5babdbf..a55c00a 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -13 +13 @@ import * as DOM from 'vs/base/browser/dom'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -256 +256 @@ class KeyboardController implements IDisposable { -- onKeyDown.filter(e => (platform.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === KeyCode.KEY_A).on(this.onCtrlA, this, this.disposables); -+ onKeyDown.filter(e => (browser.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === KeyCode.KEY_A).on(this.onCtrlA, this, this.disposables); -@@ -494 +494 @@ export function isSelectionSingleChangeEvent(event: IListMouseEvent | IList -- return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey; -+ return browser.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey; -@@ -556 +556 @@ export class MouseController implements IDisposable { -- return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey; -+ return browser.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey; ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/base/browser/ui/sash/sash.ts b/src/vs/base/browser/ui/sash/sash.ts index 8c7168b..6b34122 100644 --- a/src/vs/base/browser/ui/sash/sash.ts @@ -55,21 +36,12 @@ index 8c7168b..6b34122 100644 -import { isMacintosh } from 'vs/base/common/platform'; +import { isIPad, isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts -index 9b31c84..51de0ea 100644 +index fbf8d5d..123a1b9 100644 --- a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +++ b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts @@ -18 +18 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -269 +269 @@ export abstract class AbstractScrollableElement extends Widget { -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { -@@ -338 +338 @@ export abstract class AbstractScrollableElement extends Widget { -- const shiftConvert = !platform.isMacintosh && e.browserEvent && e.browserEvent.shiftKey; -+ const shiftConvert = !browser.isMacintosh && e.browserEvent && e.browserEvent.shiftKey; -@@ -571 +571 @@ function resolveOptions(opts: ScrollableElementCreationOptions): ScrollableEleme -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/base/browser/ui/selectBox/selectBox.ts b/src/vs/base/browser/ui/selectBox/selectBox.ts index d74c30c..ac39ce3 100644 --- a/src/vs/base/browser/ui/selectBox/selectBox.ts @@ -92,30 +64,27 @@ index 98dee79..09c0467 100644 -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts -index f68ae90..d6b9ea7 100644 +index 14757bf..d38b306 100644 --- a/src/vs/base/browser/ui/tree/abstractTree.ts +++ b/src/vs/base/browser/ui/tree/abstractTree.ts @@ -24 +24 @@ import { disposableTimeout } from 'vs/base/common/async'; -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/base/node/config.ts b/src/vs/base/node/config.ts -index 5ef2193..a232b6c 100644 +index 0b57853..ad0c604 100644 --- a/src/vs/base/node/config.ts +++ b/src/vs/base/node/config.ts -@@ -79,0 +80,3 @@ export class ConfigWatcher implements IConfigWatcher, IDisposable { +@@ -77,0 +78,3 @@ export class ConfigWatcher implements IConfigWatcher, IDisposable { + } else { + this.cache = config; // update config + this._onDidUpdateConfiguration.fire({ config }); diff --git a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts -index 74148e4..041205b 100644 +index 74148e4..bdde570 100644 --- a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts +++ b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts @@ -8 +8 @@ import * as nls from 'vs/nls'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -66 +66 @@ export class QuickOpenController extends DefaultController { -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/base/parts/tree/browser/treeDefaults.ts b/src/vs/base/parts/tree/browser/treeDefaults.ts index f91ca2b..ef6fce9 100644 --- a/src/vs/base/parts/tree/browser/treeDefaults.ts @@ -128,35 +97,15 @@ index f91ca2b..ef6fce9 100644 @@ -155 +156 @@ export class DefaultController implements _.IController { - const isMac = platform.isMacintosh; + const isMac = browser.isMacintosh; -diff --git a/src/vs/code/electron-browser/issue/issueReporterMain.ts b/src/vs/code/electron-browser/issue/issueReporterMain.ts -index f08c996..7db13fa 100644 ---- a/src/vs/code/electron-browser/issue/issueReporterMain.ts -+++ b/src/vs/code/electron-browser/issue/issueReporterMain.ts -@@ -296 +296 @@ export class IssueReporter extends Disposable { -- const piiPaths = [this.environmentService.appRoot, this.environmentService.extensionsPath]; -+ const piiPaths = [this.environmentService.appRoot, this.environmentService.extensionsPath, ...this.environmentService.extraExtensionPaths]; -@@ -425 +425 @@ export class IssueReporter extends Disposable { -- const cmdOrCtrlKey = platform.isMacintosh ? e.metaKey : e.ctrlKey; -+ const cmdOrCtrlKey = browser.isMacintosh ? e.metaKey : e.ctrlKey; -@@ -459 +459 @@ export class IssueReporter extends Disposable { -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { -diff --git a/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts b/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts -index e0ff793..885de12 100644 ---- a/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts -+++ b/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts -@@ -304 +304 @@ export function startup(data: ProcessExplorerData): void { -- const cmdOrCtrlKey = platform.isMacintosh ? e.metaKey : e.ctrlKey; -+ const cmdOrCtrlKey = browser.isMacintosh ? e.metaKey : e.ctrlKey; diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts -index 6fd8249..6ae6b11 100644 +index e270021..e87b601 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -50,0 +51,2 @@ import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiatio +import { BackupMainService } from 'vs/platform/backup/electron-main/backupMainService'; +import { mkdirp } from 'vs/base/node/pfs'; @@ -93,0 +96,10 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I -+ Promise.all([ // Copied from src/vs/code/electron-main/main.ts ++ Promise.all([ // Lifted from src/vs/code/electron-main/main.ts + environmentService.extensionsPath, + environmentService.nodeCachedDataDir, + environmentService.logsPath, @@ -165,20 +114,19 @@ index 6fd8249..6ae6b11 100644 + environmentService.backupHome, + ...environmentService.extraExtensionPaths, + ...environmentService.extraBuiltinExtensionPaths, -+ ].map((path): undefined | Promise => path ? mkdirp(path) : undefined)); -@@ -119,0 +132,2 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I -+ const backupMainService = instantiationService.createInstance(BackupMainService) as BackupMainService; -+ backupMainService.initialize().catch(console.error); -@@ -124 +138 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I -- const { appRoot, extensionsPath, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; -+ const { appRoot, extensionsPath, extraExtensionPaths, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; ++ ].map((path): undefined | Promise => path ? mkdirp(path) : undefined)); +@@ -124 +136,3 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I +- const { appRoot, extensionsPath, extensionDevelopmentLocationURI: extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; ++ const backupMainService = instantiationService.createInstance(BackupMainService) as BackupMainService; ++ backupMainService.initialize().catch(console.error); ++ const { appRoot, extensionsPath, extensionDevelopmentLocationURI: extensionDevelopmentLocationURI, isBuilt, installSourcePath, extraExtensionPaths } = environmentService; @@ -138 +152 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I - piiPaths: [appRoot, extensionsPath] + piiPaths: [appRoot, extensionsPath, ...extraExtensionPaths] @@ -223,0 +238 @@ async function handshake(configuration: ISharedProcessConfiguration): Promise { @@ -186,79 +134,64 @@ index 1f8b17a..2a875f9 100644 + await cli.main(args); + return; // Always just do this for now. diff --git a/src/vs/editor/browser/config/configuration.ts b/src/vs/editor/browser/config/configuration.ts -index f97a692..8059a67 100644 +index f97a692..1b6c36d 100644 --- a/src/vs/editor/browser/config/configuration.ts +++ b/src/vs/editor/browser/config/configuration.ts -@@ -10 +9,0 @@ import { Disposable } from 'vs/base/common/lifecycle'; --import * as platform from 'vs/base/common/platform'; -@@ -17 +15,0 @@ import { IDimension } from 'vs/editor/common/editorCommon'; --import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; -@@ -18,0 +17 @@ import { IAccessibilityService } from 'vs/platform/accessibility/common/accessib -+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; -@@ -367 +366 @@ export class Configuration extends CommonEditorConfiguration { +@@ -367 +367 @@ export class Configuration extends CommonEditorConfiguration { - if (platform.isMacintosh) { + if (browser.isMacintosh) { diff --git a/src/vs/editor/browser/controller/mouseHandler.ts b/src/vs/editor/browser/controller/mouseHandler.ts -index b3b4472..f888d63 100644 +index 4a2dc76..ba106b1 100644 --- a/src/vs/editor/browser/controller/mouseHandler.ts +++ b/src/vs/editor/browser/controller/mouseHandler.ts -@@ -222 +222 @@ export class MouseHandler extends ViewEventHandler { +@@ -224 +224 @@ export class MouseHandler extends ViewEventHandler { - if (platform.isMacintosh && e.leftButton && e.ctrlKey) { + if (browser.isMacintosh && e.leftButton && e.ctrlKey) { diff --git a/src/vs/editor/browser/controller/textAreaHandler.ts b/src/vs/editor/browser/controller/textAreaHandler.ts -index be5583d..c0e4f2e 100644 +index f035818..07a1080 100644 --- a/src/vs/editor/browser/controller/textAreaHandler.ts +++ b/src/vs/editor/browser/controller/textAreaHandler.ts @@ -214 +214 @@ export class TextAreaHandler extends ViewPart { - if (platform.isMacintosh) { + if (browser.isMacintosh) { diff --git a/src/vs/editor/browser/controller/textAreaInput.ts b/src/vs/editor/browser/controller/textAreaInput.ts -index bc986fa..63c6d79 100644 +index df11729..d69816a 100644 --- a/src/vs/editor/browser/controller/textAreaInput.ts +++ b/src/vs/editor/browser/controller/textAreaInput.ts -@@ -263 +263 @@ export class TextAreaInput extends Disposable { -- const [newState, typeInput] = deduceInputFromTextAreaValue(/*couldBeEmojiInput*/platform.isMacintosh, /*couldBeTypingAtOffset0*/previousEventWasFocus && platform.isMacintosh); -+ const [newState, typeInput] = deduceInputFromTextAreaValue(/*couldBeEmojiInput*/browser.isMacintosh, /*couldBeTypingAtOffset0*/previousEventWasFocus && browser.isMacintosh); +@@ -14 +14 @@ import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; +-import * as platform from 'vs/base/common/platform'; ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts -index 7571c59..7f5689a 100644 +index 7571c59..537a6ce 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts -@@ -395 +395 @@ const editorConfiguration: IConfigurationNode = { +@@ -9,0 +10 @@ import * as objects from 'vs/base/common/objects'; ++import * as browser from 'vs/base/browser/browser'; +@@ -395 +396 @@ const editorConfiguration: IConfigurationNode = { - 'included': platform.isMacintosh + 'included': platform.isNative && platform.isMacintosh +@@ -1055 +1056 @@ const editorConfiguration: IConfigurationNode = { +- 'included': platform.isLinux ++ 'included': browser.isLinux diff --git a/src/vs/editor/common/config/editorOptions.ts b/src/vs/editor/common/config/editorOptions.ts -index 85b823f..7da04c6 100644 +index 6c010ed..8859faf 100644 --- a/src/vs/editor/common/config/editorOptions.ts +++ b/src/vs/editor/common/config/editorOptions.ts -@@ -6 +6 @@ --import * as nls from 'vs/nls'; -+import * as browser from 'vs/base/browser/browser'; -@@ -13,0 +14 @@ import { USUAL_WORD_SEPARATORS } from 'vs/editor/common/model/wordHelper'; -+import * as nls from 'vs/nls'; -@@ -1803 +1804 @@ export class EditorOptionsValidator { -- configuredMulticursorModifier = platform.isMacintosh ? 'metaKey' : 'ctrlKey'; -+ configuredMulticursorModifier = browser.isMacintosh ? 'metaKey' : 'ctrlKey'; -@@ -2578 +2579 @@ export const EDITOR_FONT_DEFAULTS = { -- platform.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY) -+ browser.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY) -@@ -2582 +2583 @@ export const EDITOR_FONT_DEFAULTS = { -- platform.isMacintosh ? 12 : 14 -+ browser.isMacintosh ? 12 : 14 -@@ -2688 +2689 @@ export const EDITOR_DEFAULTS: IValidatedEditorOptions = { +@@ -9 +9 @@ import * as objects from 'vs/base/common/objects'; +-import * as platform from 'vs/base/common/platform'; ++import * as platform from 'vs/base/browser/browser'; +@@ -2688 +2688 @@ export const EDITOR_DEFAULTS: IValidatedEditorOptions = { - selectionClipboard: true, + selectionClipboard: false, diff --git a/src/vs/editor/common/config/fontInfo.ts b/src/vs/editor/common/config/fontInfo.ts -index c69ea3f..b8d87f7 100644 +index c69ea3f..aa29b8e 100644 --- a/src/vs/editor/common/config/fontInfo.ts +++ b/src/vs/editor/common/config/fontInfo.ts -@@ -6 +6 @@ --import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; @@ -14 +14 @@ import { EditorZoom } from 'vs/editor/common/config/editorZoom'; -const GOLDEN_LINE_HEIGHT_RATIO = platform.isMacintosh ? 1.5 : 1.35; -+const GOLDEN_LINE_HEIGHT_RATIO = browser.isMacintosh ? 1.5 : 1.35; ++const GOLDEN_LINE_HEIGHT_RATIO = platform.isNative && platform.isMacintosh ? 1.5 : 1.35; diff --git a/src/vs/editor/contrib/clipboard/clipboard.ts b/src/vs/editor/contrib/clipboard/clipboard.ts -index 990be3a..18ae0d5 100644 +index 990be3a..86d7d9c 100644 --- a/src/vs/editor/contrib/clipboard/clipboard.ts +++ b/src/vs/editor/contrib/clipboard/clipboard.ts @@ -18,0 +19 @@ import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegis @@ -287,15 +220,15 @@ index 990be3a..18ae0d5 100644 + when: workbench.clipboardContextKey, @@ -194,0 +199,26 @@ class ExecCommandPasteAction extends ExecCommandAction { + -+ public async run(accessor, editor: ICodeEditor): Promise { ++ public async run(accessor: ServicesAccessor, editor: ICodeEditor): Promise { + if (editor instanceof (require('vs/editor/browser/widget/codeEditorWidget') as typeof import('vs/editor/browser/widget/codeEditorWidget')).CodeEditorWidget) { + try { + editor.focus(); + const textInput = document.activeElement! as HTMLTextAreaElement; + const dataTransfer = new DataTransfer(); + const value = await clipboard.readText(); -+ dataTransfer.setData("text/plain", value); -+ const pasteEvent = new ClipboardEvent("paste", { ++ dataTransfer.setData('text/plain', value); ++ const pasteEvent = new ClipboardEvent('paste', { + clipboardData: dataTransfer, + }); + textInput.dispatchEvent(pasteEvent); @@ -312,54 +245,29 @@ index 990be3a..18ae0d5 100644 + super.run(accessor, editor); + } + } -diff --git a/src/vs/editor/contrib/dnd/dnd.ts b/src/vs/editor/contrib/dnd/dnd.ts -index 44a5dd5..9083efb 100644 ---- a/src/vs/editor/contrib/dnd/dnd.ts -+++ b/src/vs/editor/contrib/dnd/dnd.ts -@@ -9 +9 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; --import { isMacintosh } from 'vs/base/common/platform'; -+import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts b/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts -index 3b72a01..0d723f5 100644 +index 3b72a01..ae11802 100644 --- a/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts +++ b/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts -@@ -86 +86 @@ function createOptions(multiCursorModifier: 'altKey' | 'ctrlKey' | 'metaKey'): C -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { -@@ -92 +92 @@ function createOptions(multiCursorModifier: 'altKey' | 'ctrlKey' | 'metaKey'): C -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { +@@ -14 +14 @@ import { Event, Emitter } from 'vs/base/common/event'; +-import * as platform from 'vs/base/common/platform'; ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/editor/contrib/links/links.ts b/src/vs/editor/contrib/links/links.ts -index b3c5f8d..db4a359 100644 +index 3b94a69..dfa4fb6 100644 --- a/src/vs/editor/contrib/links/links.ts +++ b/src/vs/editor/contrib/links/links.ts @@ -13 +13 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -29 +29 @@ const HOVER_MESSAGE_GENERAL_META = new MarkdownString().appendText( -- platform.isMacintosh -+ browser.isMacintosh -@@ -35 +35 @@ const HOVER_MESSAGE_COMMAND_META = new MarkdownString().appendText( -- platform.isMacintosh -+ browser.isMacintosh -@@ -41 +41 @@ const HOVER_MESSAGE_GENERAL_ALT = new MarkdownString().appendText( -- platform.isMacintosh -+ browser.isMacintosh -@@ -47 +47 @@ const HOVER_MESSAGE_COMMAND_ALT = new MarkdownString().appendText( -- platform.isMacintosh -+ browser.isMacintosh ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts b/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts -index 4bde524..0b18c35 100644 +index 4bde524..8bc88ab 100644 --- a/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts +++ b/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts -@@ -257 +257 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget { -- platform.isMacintosh -+ browser.isMacintosh -@@ -282 +282 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget { -- platform.isMacintosh -+ browser.isMacintosh +@@ -15 +15 @@ import { Disposable } from 'vs/base/common/lifecycle'; +-import * as platform from 'vs/base/common/platform'; ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/loader.js b/src/vs/loader.js -index 4eddcab..2badfc3 100644 +index 4eddcab..fab87dc 100644 --- a/src/vs/loader.js +++ b/src/vs/loader.js @@ -671,4 +671,4 @@ var AMDLoader; @@ -381,7 +289,7 @@ index 4eddcab..2badfc3 100644 + vsSrc = vsSrcSplit.join(":/"); + } + if (vsSrc && vsSrc.startsWith("vs/")) { -+ scriptSrc = `node|./${vsSrc}`; ++ scriptSrc = `node|./${vsSrc}`; + } + } @@ -741 +753 @@ var AMDLoader; @@ -395,17 +303,20 @@ index 9952574..908a9ae 100644 -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts -index eb1873c..dbbacd0 100644 +index 58cb747..e94b6ca 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts -@@ -120,0 +121,2 @@ export interface IEnvironmentService { +@@ -40,0 +41,2 @@ export interface ParsedArgs { ++ 'extra-extension-dirs'?: string[]; ++ 'extra-builtin-extension-dirs'?: string[]; +@@ -123,0 +126,2 @@ export interface IEnvironmentService { + extraExtensionPaths: string[]; + extraBuiltinExtensionPaths: string[]; diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts -index 43866f8..e69b513 100644 +index 3c6d378..6482ca9 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts -@@ -172,0 +173,8 @@ export class EnvironmentService implements IEnvironmentService { +@@ -178,0 +179,8 @@ export class EnvironmentService implements IEnvironmentService { + @memoize + get extraExtensionPaths(): string[] { + return this._args['extra-extension-dirs'] || []; @@ -415,96 +326,67 @@ index 43866f8..e69b513 100644 + return this._args['extra-builtin-extension-dirs'] || []; + } diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts -index c897029..f84d9b6 100644 +index 7a94561..c10193f 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts -@@ -733,5 +733,9 @@ export class ExtensionManagementService extends Disposable implements IExtension +@@ -726 +726 @@ export class ExtensionManagementService extends Disposable implements IExtension - const systemExtensionsPromise = this.scanExtensions(this.systemExtensionsPath, ExtensionType.System) -- .then(result => { -- this.logService.info('Scanned system extensions:', result.length); -- return result; -- }); -+ const systemExtensionsPromise = Promise.all([ -+ this.scanExtensions(this.systemExtensionsPath, ExtensionType.System), -+ ...this.environmentService.extraBuiltinExtensionPaths -+ .map((path) => this.scanExtensions(path, ExtensionType.System)) -+ ]).then((results) => { -+ const result = results.reduce((flat, current) => flat.concat(current), []); -+ this.logService.info('Scanned system extensions:', result.length); -+ return result; -+ }); -@@ -761 +765 @@ export class ExtensionManagementService extends Disposable implements IExtension ++ const systemExtensionsPromise = this.scanAllExtensions(this.systemExtensionsPath, ExtensionType.System, this.environmentService.extraBuiltinExtensionPaths) +@@ -754 +754 @@ export class ExtensionManagementService extends Disposable implements IExtension - return Promise.all([this.getUninstalledExtensions(), this.scanExtensions(this.extensionsPath, ExtensionType.User)]) -+ return Promise.all([this.getUninstalledExtensions(), this.scanAllUserExtensions(this.extensionsPath, ExtensionType.User)]) -@@ -772,0 +777,7 @@ export class ExtensionManagementService extends Disposable implements IExtension -+ private scanAllUserExtensions(folderName: string, type: ExtensionType): Promise { ++ return Promise.all([this.getUninstalledExtensions(), this.scanAllExtensions(this.extensionsPath, ExtensionType.User, this.environmentService.extraExtensionPaths)]) +@@ -771,0 +772,6 @@ export class ExtensionManagementService extends Disposable implements IExtension ++ private scanAllExtensions(path: string, type: ExtensionType, extraPaths: string[]): Promise { + return Promise.all([ -+ this.scanExtensions(folderName, type), -+ ...this.environmentService.extraExtensionPaths.map((p) => this.scanExtensions(p, ExtensionType.User)) ++ this.scanExtensions(path, type), ++ ...extraPaths.map((p) => this.scanExtensions(p, type)) + ]).then((results) => results.reduce((flat, current) => flat.concat(current), [])); + } -+ -@@ -805 +816 @@ export class ExtensionManagementService extends Disposable implements IExtension +@@ -798 +804 @@ export class ExtensionManagementService extends Disposable implements IExtension - .then(uninstalled => this.scanExtensions(this.extensionsPath, ExtensionType.User) // All user extensions -+ .then(uninstalled => this.scanAllUserExtensions(this.extensionsPath, ExtensionType.User) // All user extensions -@@ -814 +825 @@ export class ExtensionManagementService extends Disposable implements IExtension ++ .then(uninstalled => this.scanAllExtensions(this.extensionsPath, ExtensionType.User, this.environmentService.extraExtensionPaths) // All user extensions +@@ -807 +813 @@ export class ExtensionManagementService extends Disposable implements IExtension - return this.scanExtensions(this.extensionsPath, ExtensionType.User) // All user extensions -+ return this.scanAllUserExtensions(this.extensionsPath, ExtensionType.User) // All user extensions -diff --git a/src/vs/platform/storage/node/storageMainService.ts b/src/vs/platform/storage/node/storageMainService.ts -index 9845da1..567c195 100644 ---- a/src/vs/platform/storage/node/storageMainService.ts -+++ b/src/vs/platform/storage/node/storageMainService.ts -@@ -169 +169,6 @@ export class StorageMainService extends Disposable implements IStorageMainServic -- return readdir(this.environmentService.extensionsPath).then(extensions => { -+ return Promise.all([ -+ this.environmentService.extensionsPath, -+ ...this.environmentService.extraExtensionPaths, -+ ].map((p) => readdir(p))) -+ .then((results) => results.reduce((flat, current) => flat.concat(current), [])) -+ .then(extensions => { -diff --git a/src/vs/platform/telemetry/electron-browser/telemetryService.ts b/src/vs/platform/telemetry/electron-browser/telemetryService.ts -index 31d0309..5b166af 100644 ---- a/src/vs/platform/telemetry/electron-browser/telemetryService.ts -+++ b/src/vs/platform/telemetry/electron-browser/telemetryService.ts -@@ -42 +42 @@ export class TelemetryService extends Disposable implements ITelemetryService { -- piiPaths: [environmentService.appRoot, environmentService.extensionsPath] -+ piiPaths: [environmentService.appRoot, environmentService.extensionsPath, ...environmentService.extraExtensionPaths] ++ return this.scanAllExtensions(this.extensionsPath, ExtensionType.User, this.environmentService.extraExtensionPaths) // All user extensions +diff --git a/src/vs/platform/files/common/files.ts b/src/vs/platform/files/common/files.ts +index 8555f6f..3dc0ce7 100644 +--- a/src/vs/platform/files/common/files.ts ++++ b/src/vs/platform/files/common/files.ts +@@ -325 +325 @@ export function toFileOperationResult(error: Error): FileOperationResult { +- if (error instanceof FileOperationError) { ++ if (error instanceof FileOperationError || FileOperationError.isFileOperationError(error)) { diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts -index cbc55b3..9d27c01 100644 +index f636cd1..6cab10b 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts -@@ -9 +9 @@ import { ITelemetryData } from 'vs/platform/telemetry/common/telemetry'; --import { IProcessEnvironment, isMacintosh, isLinux } from 'vs/base/common/platform'; -+import { IProcessEnvironment, isMacintosh, isLinux, isWeb } from 'vs/base/common/platform'; -@@ -262,0 +263 @@ export function getTitleBarStyle(configurationService: IConfigurationService, en -+ if (isWeb) { return 'custom'; } +@@ -284,0 +285 @@ export function getTitleBarStyle(configurationService: IConfigurationService, en ++ return 'custom'; +diff --git a/src/vs/workbench/api/common/extHostTypeConverters.ts b/src/vs/workbench/api/common/extHostTypeConverters.ts +index 2a499df..1ed108d 100644 +--- a/src/vs/workbench/api/common/extHostTypeConverters.ts ++++ b/src/vs/workbench/api/common/extHostTypeConverters.ts +@@ -26 +26 @@ import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/common/extHostDocum +-import { isString, isNumber } from 'vs/base/common/types'; ++const { isString, isNumber } = require('vs/base/common/types'); +@@ -31 +31 @@ import { LogLevel as _MainLogLevel } from 'vs/platform/log/common/log'; +-import { coalesce } from 'vs/base/common/arrays'; ++const { coalesce } = require('vs/base/common/arrays'); diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts -index 25e74c8..0bed89e 100644 +index 3f8a56e..442e670 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts -@@ -769 +769 @@ function loadCommonJSModule(logService: ILogService, modulePath: string, acti +@@ -710 +710 @@ function loadCommonJSModule(logService: ILogService, modulePath: string, acti - r = require.__$__nodeRequire(modulePath); + r = (global as any).nativeNodeRequire(modulePath); -diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts -index 84406b8..cffd952 100644 ---- a/src/vs/workbench/api/node/extHostTypeConverters.ts -+++ b/src/vs/workbench/api/node/extHostTypeConverters.ts -@@ -26 +25,0 @@ import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/node/extHostDocumen --import { isString, isNumber } from 'vs/base/common/types'; -@@ -31 +29,0 @@ import { LogLevel as _MainLogLevel } from 'vs/platform/log/common/log'; --import { coalesce } from 'vs/base/common/arrays'; -@@ -117,0 +116,2 @@ export namespace Diagnostic { -+ const { isString, isNumber } = require('vs/base/common/types'); -+ const { coalesce } = require('vs/base/common/arrays'); diff --git a/src/vs/workbench/browser/dnd.ts b/src/vs/workbench/browser/dnd.ts -index 7b6ad89..3190356 100644 +index 5c4a13a..d41ee82 100644 --- a/src/vs/workbench/browser/dnd.ts +++ b/src/vs/workbench/browser/dnd.ts @@ -170 +170 @@ export class ResourcesDropHandler { - return; + return (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.handleDrop(event, resolveTargetGroup, afterDrop, targetIndex); diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts -index c25c940..f2004f8 100644 +index 647c202..1cd945d 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -12 +12 @@ import { Registry } from 'vs/platform/registry/common/platform'; @@ -512,27 +394,27 @@ index c25c940..f2004f8 100644 +import { isWindows, isLinux, isMacintosh, isNative } from 'vs/base/common/platform'; @@ -210 +210 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - if ((isWindows || isLinux) && getTitleBarStyle(this.configurationService, this.environmentService) === 'custom') { -+ // if ((isWeb || isWindows || isLinux) && getTitleBarStyle(this.configurationService, this.environmentService) === 'custom') { ++ // if ((isWindows || isLinux) && getTitleBarStyle(this.configurationService, this.environmentService) === 'custom') { @@ -212 +212 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - } + // } @@ -219 +219 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - if (this.state.fullscreen && (this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default')) { -+ if ((this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default')) { -@@ -531 +531,5 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi ++ if (/*this.state.fullscreen && */(this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default')) { +@@ -499 +499,5 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - if (getTitleBarStyle(this.configurationService, this.environmentService) === 'native') { + if (this.state.menuBar.visibility === 'hidden') { + return false; + } else if (this.state.menuBar.visibility === 'toggle') { + return this.state.menuBar.toggled; + } else if (getTitleBarStyle(this.configurationService, this.environmentService) === 'native') { -@@ -535 +539 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi +@@ -503 +507 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - } else if (isMacintosh) { + } else if (isNative && isMacintosh) { -@@ -539,2 +542,0 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi +@@ -507,2 +510,0 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - } else if (this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default') { - return this.state.menuBar.toggled; -@@ -567 +569 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi +@@ -535 +537 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi - if (isMacintosh || this.state.menuBar.visibility === 'hidden') { + if ((isNative && isMacintosh) || this.state.menuBar.visibility === 'hidden') { diff --git a/src/vs/workbench/browser/legacyLayout.ts b/src/vs/workbench/browser/legacyLayout.ts @@ -549,65 +431,50 @@ index 53e73ac..0e24627 100644 - this.titlebarHeight = isTitlebarHidden ? 0 : this.partLayoutInfo.titlebar.height / (isMacintosh || !menubarVisibility || menubarVisibility === 'hidden' ? getZoomFactor() : 1); // adjust for zoom prevention + this.titlebarHeight = isTitlebarHidden ? 0 : this.partLayoutInfo.titlebar.height / ((isNative && isMacintosh) || !menubarVisibility || menubarVisibility === 'hidden' ? getZoomFactor() : 1); // adjust for zoom prevention diff --git a/src/vs/workbench/browser/parts/editor/editor.contribution.ts b/src/vs/workbench/browser/parts/editor/editor.contribution.ts -index df1ac8e..b86ab6a 100644 +index 414b807..974f6cd 100644 --- a/src/vs/workbench/browser/parts/editor/editor.contribution.ts +++ b/src/vs/workbench/browser/parts/editor/editor.contribution.ts @@ -48 +48 @@ import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/browser/parts/editor/editorDropTarget.ts b/src/vs/workbench/browser/parts/editor/editorDropTarget.ts -index acf2522..feebe63 100644 +index 960706a..720445f 100644 --- a/src/vs/workbench/browser/parts/editor/editorDropTarget.ts +++ b/src/vs/workbench/browser/parts/editor/editorDropTarget.ts @@ -14 +14 @@ import { IEditorIdentifier, EditorInput, EditorOptions } from 'vs/workbench/comm -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/browser/parts/editor/editorGroupView.ts b/src/vs/workbench/browser/parts/editor/editorGroupView.ts -index 50977a6..81e4fc0 100644 +index 57d2939..2533311 100644 --- a/src/vs/workbench/browser/parts/editor/editorGroupView.ts +++ b/src/vs/workbench/browser/parts/editor/editorGroupView.ts -@@ -1499 +1499 @@ registerThemingParticipant((theme, collector, environment) => { +@@ -1494 +1494 @@ registerThemingParticipant((theme, collector, environment) => { - const letterpress = `./media/letterpress${theme.type === 'dark' ? '-dark' : theme.type === 'hc' ? '-hc' : ''}.svg`; + const letterpress = theme.type === 'dark' ? require.toUrl('./media/letterpress-dark.svg') : theme.type === 'hc' ? require.toUrl('./media/letterpress-hc.svg') : require.toUrl('./media/letterpress.svg'); -@@ -1502 +1502 @@ registerThemingParticipant((theme, collector, environment) => { +@@ -1497 +1497 @@ registerThemingParticipant((theme, collector, environment) => { - background-image: url('${require.toUrl(letterpress)}') + background-image: url('${letterpress}') diff --git a/src/vs/workbench/browser/parts/editor/resourceViewer.ts b/src/vs/workbench/browser/parts/editor/resourceViewer.ts -index 98a67c2..67d5248 100644 +index a509721..1a23f54 100644 --- a/src/vs/workbench/browser/parts/editor/resourceViewer.ts +++ b/src/vs/workbench/browser/parts/editor/resourceViewer.ts @@ -23 +23 @@ import { memoize } from 'vs/base/common/decorators'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -444 +444 @@ class InlineImageView { -- if (platform.isMacintosh ? altPressed : ctrlPressed) { -+ if (browser.isMacintosh ? altPressed : ctrlPressed) { -@@ -458 +458 @@ class InlineImageView { -- if (!(platform.isMacintosh ? altPressed : ctrlPressed)) { -+ if (!(browser.isMacintosh ? altPressed : ctrlPressed)) { -@@ -478 +478 @@ class InlineImageView { -- if (!(platform.isMacintosh ? altPressed : ctrlPressed)) { // zoom in -+ if (!(browser.isMacintosh ? altPressed : ctrlPressed)) { // zoom in -@@ -502 +502 @@ class InlineImageView { -- const isScrollWhellKeyPressed = platform.isMacintosh ? altPressed : ctrlPressed; -+ const isScrollWhellKeyPressed = browser.isMacintosh ? altPressed : ctrlPressed; ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts -index 8b40624..43df4de 100644 +index 9191514..6bb0a35 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -7 +7 @@ import 'vs/css!./media/tabstitlecontrol'; -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/browser/parts/quickinput/quickInputList.ts b/src/vs/workbench/browser/parts/quickinput/quickInputList.ts -index 78c0846..f20462f 100644 +index 78c0846..45cb777 100644 --- a/src/vs/workbench/browser/parts/quickinput/quickInputList.ts +++ b/src/vs/workbench/browser/parts/quickinput/quickInputList.ts @@ -24 +24 @@ import { range } from 'vs/base/common/arrays'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -265 +265 @@ export class QuickInputList { -- if (platform.isMacintosh ? e.metaKey : e.ctrlKey) { -+ if (browser.isMacintosh ? e.metaKey : e.ctrlKey) { ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css b/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css index a215bde..df7562b 100644 --- a/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css @@ -615,7 +482,7 @@ index a215bde..df7562b 100644 @@ -44,0 +45 @@ +.web > .monaco-workbench .part.titlebar, diff --git a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts -index a822341..43b882a 100644 +index 32a8c99..f29c93d 100644 --- a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts +++ b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts @@ -16 +16,2 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; @@ -637,14 +504,14 @@ index a822341..43b882a 100644 @@ -304 +305 @@ export class MenubarControl extends Disposable { - if (!isMacintosh && this.currentTitlebarStyleSetting === 'custom') { + if (!(isNative && isMacintosh) && this.currentTitlebarStyleSetting === 'custom') { -@@ -473 +474 @@ export class MenubarControl extends Disposable { +@@ -472 +473 @@ export class MenubarControl extends Disposable { - if (!isMacintosh) { + if (!(isNative && isMacintosh)) { -@@ -699 +700 @@ export class MenubarControl extends Disposable { +@@ -698 +699 @@ export class MenubarControl extends Disposable { - if (!isMacintosh && this.currentTitlebarStyleSetting === 'custom') { + if (!(isNative && isMacintosh) && this.currentTitlebarStyleSetting === 'custom') { diff --git a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts -index 028f375..f740471 100644 +index d96209b..1be5cc1 100644 --- a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts +++ b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts @@ -11 +11 @@ import { ITitleService, ITitleProperties } from 'vs/workbench/services/title/com @@ -653,19 +520,16 @@ index 028f375..f740471 100644 @@ -25 +25 @@ import { TITLE_BAR_ACTIVE_BACKGROUND, TITLE_BAR_ACTIVE_FOREGROUND, TITLE_BAR_INA -import { isMacintosh, isWindows, isLinux } from 'vs/base/common/platform'; +import { isNative } from 'vs/base/common/platform'; -@@ -327 +327 @@ export class TitlebarPart extends Part implements ITitleService { +@@ -328 +328 @@ export class TitlebarPart extends Part implements ITitleService { - if (!isMacintosh) { + if (!(isNative && isMacintosh)) { -@@ -343 +343 @@ export class TitlebarPart extends Part implements ITitleService { +@@ -344 +344 @@ export class TitlebarPart extends Part implements ITitleService { - if (!isMacintosh) { -+ // if (!(isNative && isMacintosh)) { -@@ -346 +346 @@ export class TitlebarPart extends Part implements ITitleService { -- } -+ // } -@@ -549 +549 @@ export class TitlebarPart extends Part implements ITitleService { ++ if (!(isNative && isMacintosh)) { +@@ -550 +550 @@ export class TitlebarPart extends Part implements ITitleService { - if (!isMacintosh && + if (!(isNative && isMacintosh) && -@@ -567 +567 @@ export class TitlebarPart extends Part implements ITitleService { +@@ -568 +568 @@ export class TitlebarPart extends Part implements ITitleService { - if (isMacintosh || this.configurationService.getValue('window.menuBarVisibility') === 'hidden') { + if ((isNative && isMacintosh) || this.configurationService.getValue('window.menuBarVisibility') === 'hidden') { diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts @@ -676,44 +540,29 @@ index 696f351..47af9f7 100644 -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/browser/workbench.ts b/src/vs/workbench/browser/workbench.ts -index c69d1ab..a34dd7e 100644 +index 1f9fdde..078c1a1 100644 --- a/src/vs/workbench/browser/workbench.ts +++ b/src/vs/workbench/browser/workbench.ts -@@ -13 +13 @@ import { runWhenIdle, IdleValue } from 'vs/base/common/async'; --import { getZoomLevel } from 'vs/base/browser/browser'; -+import { getZoomLevel, isWindows, isLinux } from 'vs/base/browser/browser'; -@@ -17 +17 @@ import { Registry } from 'vs/platform/registry/common/platform'; --import { isWindows, isLinux } from 'vs/base/common/platform'; -+import { isWeb } from 'vs/base/common/platform'; @@ -83 +83 @@ export class Workbench extends Layout { -- // Inform user about loading issues from the loader -+ /*// Inform user about loading issues from the loader -@@ -90 +90 @@ export class Workbench extends Layout { +- (window).require.config({ ++ /*(window).require.config({ +@@ -89 +89 @@ export class Workbench extends Layout { - }); + });*/ -@@ -272 +272 @@ export class Workbench extends Layout { -- addClasses(document.body, platformClass); // used by our fonts -+ addClasses(document.body, platformClass, isWeb ? 'web' : 'native'); // used by our fonts diff --git a/src/vs/workbench/common/contextkeys.ts b/src/vs/workbench/common/contextkeys.ts -index e5b4a41..e623101 100644 +index cb129ec..dbb00be 100644 --- a/src/vs/workbench/common/contextkeys.ts +++ b/src/vs/workbench/common/contextkeys.ts @@ -7 +7 @@ import { RawContextKey } from 'vs/platform/contextkey/common/contextkey'; -import { isMacintosh, isLinux, isWindows } from 'vs/base/common/platform'; +import { isMacintosh, isLinux, isWindows } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts b/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts -index 787c9ef..bd50c14 100644 +index 787c9ef..7a5fbe9 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts @@ -15 +15 @@ import { Disposable } from 'vs/base/common/lifecycle'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -197 +197 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget { -- platform.isMacintosh -+ browser.isMacintosh -@@ -239 +239 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget { -- platform.isMacintosh -+ browser.isMacintosh ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts b/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts index b949e00..8a9005c 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts @@ -722,15 +571,12 @@ index b949e00..8a9005c 100644 -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts b/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts -index 5e1b6da..f8643d2 100644 +index 5e1b6da..256bb0c 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts @@ -8 +8 @@ import { Action } from 'vs/base/common/actions'; -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -84 +84 @@ MenuRegistry.appendMenuItem(MenuId.MenubarSelectionMenu, { -- platform.isMacintosh -+ browser.isMacintosh ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts b/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts index de8fe1e..e8749fa 100644 --- a/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts @@ -750,60 +596,51 @@ index de8fe1e..e8749fa 100644 - const stopKey = env.isMacintosh ? KeyCode.Meta : KeyCode.Ctrl; + const stopKey = browser.isMacintosh ? KeyCode.Meta : KeyCode.Ctrl; diff --git a/src/vs/workbench/contrib/debug/browser/linkDetector.ts b/src/vs/workbench/contrib/debug/browser/linkDetector.ts -index 1b6f41c..0c9bf68 100644 +index f40b247..810b6fa 100644 --- a/src/vs/workbench/contrib/debug/browser/linkDetector.ts +++ b/src/vs/workbench/contrib/debug/browser/linkDetector.ts @@ -9 +9 @@ import { URI as uri } from 'vs/base/common/uri'; -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts b/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts -index 5ed1eda..60d3815 100644 +index a847add..78f20a7 100644 --- a/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts +++ b/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts @@ -38 +38 @@ import { IViewsRegistry, Extensions as ViewExtensions } from 'vs/workbench/commo -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; -diff --git a/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts -index 7c58491..63ac200 100644 ---- a/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts -+++ b/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts -@@ -118 +118 @@ class Extension implements IExtension { -- return `${product.extensionsGallery.itemUrl}?itemName=${this.publisher}.${this.name}`; -+ return undefined; // `${product.extensionsGallery.itemUrl}?itemName=${this.publisher}.${this.name}`; diff --git a/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts b/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts -index a9f017e..75fe519 100644 +index cfaeef2..52f5d72 100644 --- a/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts +++ b/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts @@ -17 +17 @@ import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/co -import { isWindows, isMacintosh } from 'vs/base/common/platform'; +import { isWindows, isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/files/browser/fileCommands.ts b/src/vs/workbench/contrib/files/browser/fileCommands.ts -index 59922c1..62d4d5b 100644 +index 9bda6ca..ef36375 100644 --- a/src/vs/workbench/contrib/files/browser/fileCommands.ts +++ b/src/vs/workbench/contrib/files/browser/fileCommands.ts @@ -28 +28 @@ import { KeyMod, KeyCode, KeyChord } from 'vs/base/common/keyCodes'; -import { isWindows, isMacintosh } from 'vs/base/common/platform'; +import { isWindows, isMacintosh } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/files/browser/views/emptyView.ts b/src/vs/workbench/contrib/files/browser/views/emptyView.ts -index 89e2def..9005795 100644 +index 89e2def..fb01e37 100644 --- a/src/vs/workbench/contrib/files/browser/views/emptyView.ts +++ b/src/vs/workbench/contrib/files/browser/views/emptyView.ts -@@ -7,0 +8 @@ import * as errors from 'vs/base/common/errors'; -+import * as browser from 'vs/base/browser/browser'; -@@ -76 +77 @@ export class EmptyView extends ViewletPanel { -- const actionClass = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? AddRootFolderAction : env.isMacintosh ? OpenFileFolderAction : OpenFolderAction; -+ const actionClass = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? AddRootFolderAction : browser.isMacintosh ? OpenFileFolderAction : OpenFolderAction; +@@ -8 +8 @@ import * as errors from 'vs/base/common/errors'; +-import * as env from 'vs/base/common/platform'; ++import * as env from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts b/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts -index b3c2d15..067215e 100644 +index 6a46cb1..7e16086 100644 --- a/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts +++ b/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts @@ -38 +38 @@ import { DesktopDragAndDropData, ExternalElementsDragAndDropData, ElementsDragAn -import { isMacintosh, isLinux } from 'vs/base/common/platform'; +import { isMacintosh, isLinux } from 'vs/base/browser/browser'; -@@ -606,0 +607 @@ export class FileDragAndDrop implements ITreeDragAndDrop { +@@ -607,0 +608 @@ export class FileDragAndDrop implements ITreeDragAndDrop { + return (require('vs/../../../../packages/vscode/src/workbench') as typeof import('vs/../../../../packages/vscode/src/workbench')).workbench.handleExternalDrop(target, originalEvent); diff --git a/src/vs/workbench/contrib/files/common/explorerModel.ts b/src/vs/workbench/contrib/files/common/explorerModel.ts -index a5cd043..0569a5f 100644 +index 99d4790..9c37b76 100644 --- a/src/vs/workbench/contrib/files/common/explorerModel.ts +++ b/src/vs/workbench/contrib/files/common/explorerModel.ts @@ -77,0 +78 @@ export class ExplorerItem { @@ -815,69 +652,69 @@ index a5cd043..0569a5f 100644 @@ -277,0 +280 @@ export class ExplorerItem { + this.forgotChildren = true; diff --git a/src/vs/workbench/contrib/files/common/explorerService.ts b/src/vs/workbench/contrib/files/common/explorerService.ts -index 46d87e4..fd3f927 100644 +index 6bec4db..0f43623 100644 --- a/src/vs/workbench/contrib/files/common/explorerService.ts +++ b/src/vs/workbench/contrib/files/common/explorerService.ts -@@ -333 +333 @@ export class ExplorerService implements IExplorerService { +@@ -341 +341 @@ export class ExplorerService implements IExplorerService { - if (shouldRefresh()) { + if (true || shouldRefresh()) { diff --git a/src/vs/workbench/contrib/logs/common/logs.contribution.ts b/src/vs/workbench/contrib/logs/common/logs.contribution.ts -index 25df212..6c40c9d 100644 +index 3ce77b2..33c6606 100644 --- a/src/vs/workbench/contrib/logs/common/logs.contribution.ts +++ b/src/vs/workbench/contrib/logs/common/logs.contribution.ts -@@ -31 +31,2 @@ class LogOutputChannels extends Disposable implements IWorkbenchContribution { +@@ -29 +29,2 @@ class LogOutputChannels extends Disposable implements IWorkbenchContribution { - outputChannelRegistry.registerChannel({ id: Constants.mainLogChannelId, label: nls.localize('mainLog', "Main"), file: URI.file(join(environmentService.logsPath, `main.log`)), log: true }); + // This channel only seems to be used when loading the app and we skip all of that, so it is never actually created or written to. + // outputChannelRegistry.registerChannel({ id: Constants.mainLogChannelId, label: nls.localize('mainLog', "Main"), file: URI.file(join(environmentService.logsPath, `main.log`)), log: true }); diff --git a/src/vs/workbench/contrib/output/common/outputLinkProvider.ts b/src/vs/workbench/contrib/output/common/outputLinkProvider.ts -index efa955e..e72f41d 100644 +index ad9d566..9c894d8 100644 --- a/src/vs/workbench/contrib/output/common/outputLinkProvider.ts +++ b/src/vs/workbench/contrib/output/common/outputLinkProvider.ts -@@ -77,0 +78 @@ export class OutputLinkProvider { +@@ -78,0 +79 @@ export class OutputLinkProvider { + return Promise.resolve([]); +diff --git a/src/vs/workbench/contrib/performance/electron-browser/startupTimings.ts b/src/vs/workbench/contrib/performance/electron-browser/startupTimings.ts +index 8617cc0..f972032 100644 +--- a/src/vs/workbench/contrib/performance/electron-browser/startupTimings.ts ++++ b/src/vs/workbench/contrib/performance/electron-browser/startupTimings.ts +@@ -84,0 +85 @@ export class StartupTimings implements IWorkbenchContribution { ++ return false; diff --git a/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts b/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts -index 92f9b7c..b8300c6 100644 +index 92f9b7c..8f7c382 100644 --- a/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts +++ b/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts @@ -6 +6 @@ -import * as env from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -94 +94 @@ Registry.as(QuickOpenExtensions.Quickopen).registerQuickOpen -- description: env.isMacintosh ? nls.localize('gotoLineDescriptionMac', "Go to Line") : nls.localize('gotoLineDescriptionWin', "Go to Line") -+ description: browser.isMacintosh ? nls.localize('gotoLineDescriptionMac', "Go to Line") : nls.localize('gotoLineDescriptionWin', "Go to Line") ++import * as env from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts b/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts -index e3c9552..a64fda2 100644 +index 16e1029..e36db83 100644 --- a/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts +++ b/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts @@ -18 +18,2 @@ import { isEqual } from 'vs/base/common/resources'; -import { isLinux, isMacintosh } from 'vs/base/common/platform'; +import { isNative, isLinux } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; -@@ -69 +70 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo +@@ -65 +66 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo - if (isMacintosh && config.window && typeof config.window.nativeTabs === 'boolean' && config.window.nativeTabs !== this.nativeTabs) { + if (isNative && isMacintosh && config.window && typeof config.window.nativeTabs === 'boolean' && config.window.nativeTabs !== this.nativeTabs) { -@@ -75 +76 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo +@@ -71 +72 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo - if (isMacintosh && config.window && typeof config.window.nativeFullScreen === 'boolean' && config.window.nativeFullScreen !== this.nativeFullScreen) { + if (isNative && isMacintosh && config.window && typeof config.window.nativeFullScreen === 'boolean' && config.window.nativeFullScreen !== this.nativeFullScreen) { diff --git a/src/vs/workbench/contrib/scm/browser/scmViewlet.ts b/src/vs/workbench/contrib/scm/browser/scmViewlet.ts -index b8db2f2..be84602 100644 +index 0b0cba6..c254f70 100644 --- a/src/vs/workbench/contrib/scm/browser/scmViewlet.ts +++ b/src/vs/workbench/contrib/scm/browser/scmViewlet.ts @@ -46 +46 @@ import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/la -import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -769 +769 @@ export class RepositoryPanel extends ViewletPanel { -- const label = binding ? binding.getLabel() : (platform.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter'); -+ const label = binding ? binding.getLabel() : (browser.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter'); ++import * as platform from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/contrib/search/browser/search.contribution.ts b/src/vs/workbench/contrib/search/browser/search.contribution.ts -index 1f8088e..f5b0551 100644 +index f675087..18f53d2 100644 --- a/src/vs/workbench/contrib/search/browser/search.contribution.ts +++ b/src/vs/workbench/contrib/search/browser/search.contribution.ts -@@ -686 +686 @@ configurationRegistry.registerConfiguration({ +@@ -701 +701 @@ configurationRegistry.registerConfiguration({ - included: platform.isMacintosh + included: platform.isNative && platform.isMacintosh diff --git a/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts b/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts -index 24ba122..3ab8804 100644 +index eb7a270..1ba3e81 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts @@ -12,0 +13 @@ import * as nls from 'vs/nls'; @@ -889,117 +726,107 @@ index 24ba122..3ab8804 100644 - default: platform.isMacintosh ? 'selectWord' : platform.isWindows ? 'copyPaste' : 'default', + default: browser.isMacintosh ? 'selectWord' : browser.isWindows ? 'copyPaste' : 'default', diff --git a/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts b/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts -index 933e4ea..b661a7e 100644 +index 8adb02d..134b4a9 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts @@ -7,0 +8 @@ import * as platform from 'vs/base/common/platform'; +import * as browser from 'vs/base/browser/browser'; -@@ -234 +235 @@ export class TerminalLinkHandler { +@@ -239 +240 @@ export class TerminalLinkHandler { - return platform.isMacintosh ? event.metaKey : event.ctrlKey; + return browser.isMacintosh ? event.metaKey : event.ctrlKey; -@@ -242 +243 @@ export class TerminalLinkHandler { +@@ -247 +248 @@ export class TerminalLinkHandler { - if (platform.isMacintosh) { + if (browser.isMacintosh) { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts b/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts -index 780147c..2e8c9af 100644 +index 780147c..622e1ef 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts -@@ -8,0 +9 @@ import * as platform from 'vs/base/common/platform'; -+import * as browser from 'vs/base/browser/browser'; -@@ -211 +212 @@ export class TerminalPanel extends Panel { -- if (event.which === 2 && platform.isLinux) { -+ if (event.which === 2 && browser.isLinux) { -@@ -234 +235 @@ export class TerminalPanel extends Panel { -- if (platform.isMacintosh) { -+ if (browser.isMacintosh) { -diff --git a/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js b/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js -index 74fc798..0b6b5eb 100644 ---- a/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js -+++ b/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js -@@ -10 +10,19 @@ -- const ipcRenderer = require('electron').ipcRenderer; -+ const ipcRenderer = { -+ on: (channel, callback) => { -+ window.addEventListener("message", (event) => { -+ if (event.data.channel === channel) { -+ callback(event.data.channel, ...event.data.data); -+ } -+ }); -+ }, -+ sendToHost: (channel, ...args) => { -+ window.parent.postMessage({ -+ channel, -+ data: args, -+ id: document.body.id, -+ }, "*"); -+ }, -+ }; -+ const process = { -+ pid: undefined, -+ }; -@@ -22,7 +40,7 @@ -- require('electron').webFrame.registerURLSchemeAsPrivileged('vscode-resource', { -- secure: true, -- bypassCSP: false, -- allowServiceWorkers: false, -- supportFetchAPI: true, -- corsEnabled: true -- }); -+ // require('electron').webFrame.registerURLSchemeAsPrivileged('vscode-resource', { -+ // secure: true, -+ // bypassCSP: false, -+ // allowServiceWorkers: false, -+ // supportFetchAPI: true, -+ // corsEnabled: true -+ // }); -@@ -328 +346,3 @@ +@@ -8 +8 @@ import * as nls from 'vs/nls'; +-import * as platform from 'vs/base/common/platform'; ++import * as platform from 'vs/base/browser/browser'; +diff --git a/src/vs/workbench/contrib/webview/browser/pre/main.js b/src/vs/workbench/contrib/webview/browser/pre/main.js +index 133b3d2..00e9e76 100644 +--- a/src/vs/workbench/contrib/webview/browser/pre/main.js ++++ b/src/vs/workbench/contrib/webview/browser/pre/main.js +@@ -95,0 +96,18 @@ const defaultCssRules = ` ++const process = { pid: undefined }; ++const host = { ++ onMessage: (channel, callback) => { ++ window.addEventListener("message", (event) => { ++ if (event.data.channel === channel) { ++ callback(event.data.channel, ...event.data.data); ++ } ++ }); ++ }, ++ postMessage: (channel, ...args) => { ++ window.parent.postMessage({ ++ channel, ++ data: args, ++ id: document.body.id, ++ }, "*"); ++ }, ++}; ++ +@@ -103 +121 @@ const defaultCssRules = ` +-module.exports = function createWebviewManager(host) { ++// module.exports = function createWebviewManager(host) { +@@ -375 +393,3 @@ module.exports = function createWebviewManager(host) { - newFrame.contentWindow.focus(); + if (document.hasFocus()) { + newFrame.contentWindow.focus(); + } -diff --git a/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts b/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts -index 484ff86..f3f57cb 100644 ---- a/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts -+++ b/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts -@@ -23 +23 @@ import { InputFocusedContextKey } from 'vs/platform/contextkey/common/contextkey +@@ -446 +466 @@ module.exports = function createWebviewManager(host) { +-}; ++// }; +diff --git a/src/vs/workbench/contrib/webview/browser/webview.contribution.ts b/src/vs/workbench/contrib/webview/browser/webview.contribution.ts +index f055918..764635f 100644 +--- a/src/vs/workbench/contrib/webview/browser/webview.contribution.ts ++++ b/src/vs/workbench/contrib/webview/browser/webview.contribution.ts +@@ -7 +7 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; -import { isMacintosh } from 'vs/base/common/platform'; -+import { isMacintosh } from 'vs/base/browser/browser'; ++import { isMacintosh, isNative } from 'vs/base/common/platform'; +@@ -77 +77 @@ export function registerWebViewCommands(editorId: string): void { +- if (isMacintosh) { ++ if (isNative && isMacintosh) { diff --git a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts -index 3e56ee1..3880c57 100644 +index 1477b88..35c4422 100644 --- a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts @@ -11 +11 @@ import { Disposable } from 'vs/base/common/lifecycle'; -import { isMacintosh } from 'vs/base/common/platform'; +import { isMacintosh } from 'vs/base/browser/browser'; +@@ -393 +393 @@ export class WebviewElement extends Disposable implements Webview { +- this._webview.preload = require.toUrl('./pre/electron-index.js'); ++ this._webview.preload = require.toUrl('../browser/pre/main.js'); diff --git a/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts b/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts -index 147f05b..6bc9061 100644 +index f768172..f34b56f 100644 --- a/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts +++ b/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts -@@ -30,0 +31 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW -+ /* -@@ -38 +39,11 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW -- }) : this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => content.value)); -+ */ -+ // This works because the only walkthrough that is a module is the welcome page. -+ // We have to explicitly import it or Webpack won't pick it up. -+ import("vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page").then((content) => { -+ resolve(content.default()); -+ }).catch((err) => { -+ reject(err); -+ }); +@@ -31 +31 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW +- require([query.moduleId], content => { ++ /*require([query.moduleId], content => { +@@ -38 +38,9 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW +- }) : this.textFileService.readStream(URI.file(resource.fsPath)).then(content => content.value)); ++ }) : this.textFileService.readStream(URI.file(resource.fsPath)).then(content => content.value)); */ ++ // This works because the only walkthrough that is a module is the welcome page. ++ // We have to explicitly import it or Webpack won't pick it up. ++ import("vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page") ++ .then((content) => { resolve(content.default()); }) ++ .catch(reject); + }) : (resource.scheme !== "file" + ? fetch(resource.path).then((res) => res.text()) -+ : this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => content.value))); -@@ -64 +75 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi -- return this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => { ++ : this.textFileService.readStream(URI.file(resource.fsPath)).then(content => content.value))); +@@ -64 +72 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi +- return this.textFileService.readStream(URI.file(resource.fsPath)).then(content => { + return fetch(resource.path).then((res) => res.text()).then((content) => { -@@ -80,0 +92 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi -+ /* -@@ -85 +97,2 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi +@@ -81 +89 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi +- const textBuffer = content.value.create(DefaultEndOfLine.LF); ++ /* const textBuffer = content.value.create(DefaultEndOfLine.LF); +@@ -85 +93,2 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi - marked(markdown, { renderer }); -+ */ ++ marked(markdown, { renderer }); */ + marked(content, { renderer }); -@@ -91 +104 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi +@@ -91 +100 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi - this.modelService.updateModel(codeEditorModel, content.value); + this.modelService.updateModel(codeEditorModel, content); diff --git a/src/vs/workbench/electron-browser/actions/helpActions.ts b/src/vs/workbench/electron-browser/actions/helpActions.ts @@ -1011,14 +838,14 @@ index 79e2ba2..8c1b21b 100644 +import { language } from 'vs/base/common/platform'; +import { isMacintosh, isLinux } from 'vs/base/browser/browser'; diff --git a/src/vs/workbench/electron-browser/actions/windowActions.ts b/src/vs/workbench/electron-browser/actions/windowActions.ts -index 48ef482..dc47f81 100644 +index 223fda7..b857b45 100644 --- a/src/vs/workbench/electron-browser/actions/windowActions.ts +++ b/src/vs/workbench/electron-browser/actions/windowActions.ts -@@ -388 +388 @@ export abstract class BaseOpenRecentAction extends Action { +@@ -386 +386 @@ export abstract class BaseOpenRecentAction extends Action { - placeHolder: isMacintosh ? nls.localize('openRecentPlaceHolderMac', "Select to open (hold Cmd-key to open in new window)") : nls.localize('openRecentPlaceHolder', "Select to open (hold Ctrl-key to open in new window)"), + placeHolder: browser.isMacintosh ? nls.localize('openRecentPlaceHolderMac', "Select to open (hold Cmd-key to open in new window)") : nls.localize('openRecentPlaceHolder', "Select to open (hold Ctrl-key to open in new window)"), diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts -index 71bc992..a76dad4 100644 +index de7017c..adb6956 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -13 +13,2 @@ import { KeyMod, KeyChord, KeyCode } from 'vs/base/common/keyCodes'; @@ -1046,26 +873,25 @@ index 71bc992..a76dad4 100644 @@ -633 +634 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; - 'included': isWindows || isLinux + 'included': isWeb || isWindows || isLinux -@@ -649,2 +650,2 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; +@@ -650,2 +651,2 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; - 'enum': ['native', 'custom'], - 'default': isLinux ? 'native' : 'custom', + 'enum': ['custom'], + 'default': isNative && isLinux ? 'native' : 'custom', -@@ -659 +660 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; +@@ -660 +661 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; - 'included': isMacintosh && parseFloat(os.release()) >= 16 // Minimum: macOS Sierra (10.12.x = darwin 16.x) + 'included': isNative && isMacintosh && parseFloat(os.release()) >= 16 // Minimum: macOS Sierra (10.12.x = darwin 16.x) -@@ -665 +666 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; +@@ -667 +668 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService'; - 'included': isMacintosh + 'included': isNative && isMacintosh diff --git a/src/vs/workbench/electron-browser/main.ts b/src/vs/workbench/electron-browser/main.ts -index b94daa8..5963023 100644 +index 1d13aba..610c6cf 100644 --- a/src/vs/workbench/electron-browser/main.ts +++ b/src/vs/workbench/electron-browser/main.ts -@@ -140,0 +141,2 @@ class CodeRendererMain extends Disposable { -+ +@@ -139,0 +140 @@ class CodeRendererMain extends Disposable { + (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.serviceCollection = services.serviceCollection; diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts -index 111982b..73d83a4 100644 +index 7687183..33b3d2e 100644 --- a/src/vs/workbench/electron-browser/window.ts +++ b/src/vs/workbench/electron-browser/window.ts @@ -53 +53 @@ const TextInputActions: IAction[] = [ @@ -1075,7 +901,7 @@ index 111982b..73d83a4 100644 - !isMacintosh || // macOS only + !browser.isMacintosh || // macOS only diff --git a/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts b/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts -index 75f0026..2e94683 100644 +index f4dae2a..55966e8 100644 --- a/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts +++ b/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts @@ -22 +22 @@ import { getTitleBarStyle } from 'vs/platform/windows/common/windows'; @@ -1085,7 +911,7 @@ index 75f0026..2e94683 100644 - if (!isMacintosh && getTitleBarStyle(configurationService, environmentService) === 'custom') { + if (!(isNative && isMacintosh) && getTitleBarStyle(configurationService, environmentService) === 'custom') { diff --git a/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts b/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts -index 059f821..b19f292 100644 +index 40a8c83..579c7e7 100644 --- a/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts +++ b/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts @@ -32,0 +33 @@ function getSystemExtensionsRoot(): string { @@ -1103,14 +929,14 @@ index 059f821..b19f292 100644 - new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionsPath, false, false, translations), + new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionsPath, false, false, translations, environmentService.extraExtensionPaths), diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts -index 9133b7e..8c801b7 100644 +index 1707b52..0906abc 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts -@@ -461 +461 @@ export class ExtensionHostProcessWorker implements IExtensionHostStarter { +@@ -439 +439 @@ export class ExtensionHostProcessWorker implements IExtensionHostStarter { - if (errorMessage === this._lastExtensionHostError) { + if (errorMessage === this._lastExtensionHostError || errorMessage === "disconnected") { diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts -index b337206..0477464 100644 +index 6692f75..0168837 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts @@ -96,0 +97 @@ export class ExtensionService extends Disposable implements IExtensionService { @@ -1119,15 +945,15 @@ index b337206..0477464 100644 + extHostProcessWorker.start()!.then(() => this.retry.recover()); @@ -449,0 +452 @@ export class ExtensionService extends Disposable implements IExtensionService { + return this.retry.run(); -diff --git a/src/vs/workbench/services/extensions/node/extensionHostProcess.ts b/src/vs/workbench/services/extensions/node/extensionHostProcess.ts -index 838a9c7..2308cee 100644 ---- a/src/vs/workbench/services/extensions/node/extensionHostProcess.ts -+++ b/src/vs/workbench/services/extensions/node/extensionHostProcess.ts -@@ -192 +192 @@ function connectToRenderer(protocol: IMessagePassingProtocol): Promise { + if (a.length !== b.length || atimes.length !== btimes.length) { @@ -1153,73 +979,60 @@ index 6e2179d..e6f38c9 100644 + } + return true; + }; -@@ -479,0 +498 @@ export class ExtensionScannerInput { ++ +@@ -479,0 +499 @@ export class ExtensionScannerInput { + && eq(a.extraFolderPaths, b.extraFolderPaths, a.extraMtimes, b.extraMtimes) -@@ -530 +549 @@ export class ExtensionScanner { -- * Scan a list of extensions defined in `absoluteFolderPath` -+ * Scan a list of extensions defined in `absoluteFolderPath` and `extraFolderPaths` -@@ -532 +551 @@ export class ExtensionScanner { +@@ -532 +552 @@ export class ExtensionScanner { - public static async scanExtensions(input: ExtensionScannerInput, log: ILog, resolver: IExtensionResolver | null = null): Promise { + public static async scanExtensions(input: ExtensionScannerInput, log: ILog, resolvers: IExtensionResolver | IExtensionResolver[] | null = null): Promise { -@@ -533,0 +553 @@ export class ExtensionScanner { +@@ -535,0 +556 @@ export class ExtensionScanner { + const extraFolderPaths = input.extraFolderPaths; -@@ -537,2 +557,4 @@ export class ExtensionScanner { +@@ -537,2 +558,4 @@ export class ExtensionScanner { - if (!resolver) { - resolver = new DefaultExtensionResolver(absoluteFolderPath); + if (!resolvers) { + resolvers = [absoluteFolderPath, ...extraFolderPaths].map((p) => new DefaultExtensionResolver(p)); + } else if (!Array.isArray(resolvers)) { + resolvers = [resolvers]; -@@ -552 +574,2 @@ export class ExtensionScanner { +@@ -552 +575,2 @@ export class ExtensionScanner { - let refs = await resolver.resolveExtensions(); + let refs = await Promise.all(resolvers.map((resolver) => resolver.resolveExtensions())) + .then((results) => results.reduce((flat, current) => flat.concat(current), [])); diff --git a/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts b/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts -index 33d3697..af71b01 100644 +index 8924e12..7beecb4 100644 --- a/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts -@@ -26,0 +27 @@ export class FileWatcher { +@@ -21,0 +22 @@ export class FileWatcher extends Disposable { + private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Watcher', () => this.startWatching()); -@@ -56,0 +58,2 @@ export class FileWatcher { -+ this.toDispose = dispose(this.toDispose); +@@ -53,0 +55 @@ export class FileWatcher extends Disposable { + return this.retry.run(); -@@ -113 +116 @@ export class FileWatcher { -- })); -+ })).then(() => this.retry.recover()); +@@ -84 +86 @@ export class FileWatcher extends Disposable { +- this.service.setRoots(folders); ++ this.service.setRoots(folders).then(() => this.retry.recover()); diff --git a/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts b/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts -index 8059d2c..b5a3d68 100644 +index 04ce480..76854cb 100644 --- a/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts -@@ -26,0 +27 @@ export class FileWatcher { +@@ -21,0 +22 @@ export class FileWatcher extends Disposable { + private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Watcher', () => this.startWatching()); -@@ -59,0 +61,2 @@ export class FileWatcher { -+ this.toDispose = dispose(this.toDispose); +@@ -53,0 +55 @@ export class FileWatcher extends Disposable { + return this.retry.run(); -@@ -116 +119 @@ export class FileWatcher { -- })); -+ })).then(() => this.retry.recover()); +@@ -78 +80 @@ export class FileWatcher extends Disposable { +- this.service.setRoots(this.folders); ++ this.setFolders(this.folders); +@@ -84 +86 @@ export class FileWatcher extends Disposable { +- this.service.setRoots(folders); ++ this.service.setRoots(folders).then(() => this.retry.recover()); diff --git a/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts b/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts -index 74dad64..7bc591a 100644 +index 95d8797..0f5d4cf 100644 --- a/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts -@@ -25,0 +26 @@ export class OutOfProcessWin32FolderWatcher { +@@ -23,0 +24 @@ export class OutOfProcessWin32FolderWatcher { + private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Watcher', () => this.startWatcher()); -@@ -52,0 +54 @@ export class OutOfProcessWin32FolderWatcher { +@@ -56,0 +58 @@ export class OutOfProcessWin32FolderWatcher { + this.handle.stdout.once('data', () => this.retry.recover()); -@@ -110,0 +113 @@ export class OutOfProcessWin32FolderWatcher { +@@ -113,0 +116 @@ export class OutOfProcessWin32FolderWatcher { + return this.retry.run(); -diff --git a/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts b/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts -index 18edf56..8e5b395 100644 ---- a/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts -+++ b/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts -@@ -79,2 +79,2 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro -- for (let i = 0; i < children.length; i++) { -- const child = children[i]; -+ await Promise.all(children.map(async (child) => { // for (let i = 0; i < children.length; i++) { -+ // const child = children[i]; -@@ -88 +88 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro -- } -+ })); // } diff --git a/src/vs/workbench/services/heap/node/heap.ts b/src/vs/workbench/services/heap/node/heap.ts index 8f627ba..9a795eb 100644 --- a/src/vs/workbench/services/heap/node/heap.ts @@ -1237,39 +1050,31 @@ index 0c3d16f..e27e98c 100644 - if (OS === OperatingSystem.Windows) { + if (isNative && OS === OperatingSystem.Windows) { diff --git a/src/vs/workbench/services/search/node/searchService.ts b/src/vs/workbench/services/search/node/searchService.ts -index fcef06a..80f6800 100644 +index fcef06a..db26457 100644 --- a/src/vs/workbench/services/search/node/searchService.ts +++ b/src/vs/workbench/services/search/node/searchService.ts -@@ -11 +11 @@ import { Event } from 'vs/base/common/event'; --import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; -+import { Disposable, IDisposable, toDisposable, dispose } from 'vs/base/common/lifecycle'; -@@ -422,0 +423 @@ export class DiskSearch implements ISearchResultProvider { -+ private toDispose: IDisposable[] = []; -@@ -458,6 +459,15 @@ export class DiskSearch implements ISearchResultProvider { +@@ -458,6 +458,11 @@ export class DiskSearch implements ISearchResultProvider { - const client = new Client( - getPathFromAmdModule(require, 'bootstrap-fork'), - opts); - - const channel = getNextTickChannel(client.getChannel('search')); - this.raw = new SearchChannelClient(channel); -+ const connect = (): Promise => { ++ const connect = (): Promise => { + const client = new Client( + getPathFromAmdModule(require, 'bootstrap-fork'), + opts); -+ client.onDidProcessExit(() => { -+ this.toDispose = dispose(this.toDispose); -+ retry.run(); -+ }, null, this.toDispose); -+ this.toDispose.push(client); ++ client.onDidProcessExit(() => retry.run()); + const channel = getNextTickChannel(client.getChannel('search')); + this.raw = new SearchChannelClient(channel); + return this.raw.clearCache('test-connectivity'); + }; + const retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Searcher', connect); + retry.run(); -diff --git a/src/vs/workbench/services/timer/electron-browser/timerService.ts b/src/vs/workbench/services/timer/electron-browser/timerService.ts -index 6e6fbcc..645bd72 100644 ---- a/src/vs/workbench/services/timer/electron-browser/timerService.ts -+++ b/src/vs/workbench/services/timer/electron-browser/timerService.ts -@@ -426,0 +427 @@ export function didUseCachedData(): boolean { -+ return false; +diff --git a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts +index d905178..b32043f 100644 +--- a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts ++++ b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts +@@ -41 +41 @@ export class TelemetryService extends Disposable implements ITelemetryService { +- piiPaths: [environmentService.appRoot, environmentService.extensionsPath] ++ piiPaths: [environmentService.appRoot, environmentService.extensionsPath, ...environmentService.extraExtensionPaths] diff --git a/scripts/vstar.sh b/scripts/vstar.sh index c7be0b719036..266115b1cce4 100755 --- a/scripts/vstar.sh +++ b/scripts/vstar.sh @@ -4,7 +4,7 @@ set -euxo pipefail # Builds a tarfile containing vscode sourcefiles neccessary for CI. # Done outside the CI and uploaded to object storage to reduce CI time. -branch=1.33.1 +branch=1.34.0 dir=/tmp/vstar outfile=/tmp/vstar-$branch.tar.gz rm -rf $dir diff --git a/yarn.lock b/yarn.lock index 3db1a2ffd0fa..3b8dbc364f6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5595,10 +5595,10 @@ typescript-tslint-plugin@^0.2.1: mock-require "^3.0.2" vscode-languageserver "^5.1.0" -typescript@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5" - integrity sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg== +typescript@3.4.5: + version "3.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" + integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== uglify-js@3.4.x, uglify-js@^3.0.0: version "3.4.9"