diff --git a/build/gulpfile.hygiene.js b/build/gulpfile.hygiene.js index a1f47447c18..62b42afdf32 100644 --- a/build/gulpfile.hygiene.js +++ b/build/gulpfile.hygiene.js @@ -57,6 +57,7 @@ const indentationFilter = [ '!test/assert.js', // except specific folders + '!test/automation/out/**', '!test/smoke/out/**', '!extensions/vscode-api-tests/testWorkspace/**', '!extensions/vscode-api-tests/testWorkspace2/**', @@ -152,6 +153,7 @@ const tslintCoreFilter = [ 'src/**/*.ts', 'test/**/*.ts', '!extensions/**/*.ts', + '!test/automation/**', '!test/smoke/**', ...tslintBaseFilter ]; @@ -160,6 +162,7 @@ const tslintExtensionsFilter = [ 'extensions/**/*.ts', '!src/**/*.ts', '!test/**/*.ts', + 'test/automation/**/*.ts', ...tslintBaseFilter ]; diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js index fa4393c4bd4..52660b0df12 100644 --- a/build/gulpfile.vscode.linux.js +++ b/build/gulpfile.vscode.linux.js @@ -42,6 +42,7 @@ function prepareDebPackage(arch) { .pipe(replace('@@NAME_LONG@@', product.nameLong)) .pipe(replace('@@NAME_SHORT@@', product.nameShort)) .pipe(replace('@@NAME@@', product.applicationName)) + .pipe(replace('@@EXEC@@', `/usr/share/${product.applicationName}/${product.applicationName}`)) .pipe(replace('@@ICON@@', product.linuxIconName)) .pipe(replace('@@URLPROTOCOL@@', product.urlProtocol)); @@ -134,6 +135,7 @@ function prepareRpmPackage(arch) { .pipe(replace('@@NAME_LONG@@', product.nameLong)) .pipe(replace('@@NAME_SHORT@@', product.nameShort)) .pipe(replace('@@NAME@@', product.applicationName)) + .pipe(replace('@@EXEC@@', `/usr/share/${product.applicationName}/${product.applicationName}`)) .pipe(replace('@@ICON@@', product.linuxIconName)) .pipe(replace('@@URLPROTOCOL@@', product.urlProtocol)); @@ -203,21 +205,25 @@ function prepareSnapPackage(arch) { const destination = getSnapBuildPath(arch); return function () { + // A desktop file that is placed in snap/gui will be placed into meta/gui verbatim. const desktop = gulp.src('resources/linux/code.desktop', { base: '.' }) - .pipe(rename(`usr/share/applications/${product.applicationName}.desktop`)); + .pipe(rename(`snap/gui/${product.applicationName}.desktop`)); + // A desktop file that is placed in snap/gui will be placed into meta/gui verbatim. const desktopUrlHandler = gulp.src('resources/linux/code-url-handler.desktop', { base: '.' }) - .pipe(rename(`usr/share/applications/${product.applicationName}-url-handler.desktop`)); + .pipe(rename(`snap/gui/${product.applicationName}-url-handler.desktop`)); const desktops = es.merge(desktop, desktopUrlHandler) .pipe(replace('@@NAME_LONG@@', product.nameLong)) .pipe(replace('@@NAME_SHORT@@', product.nameShort)) .pipe(replace('@@NAME@@', product.applicationName)) - .pipe(replace('@@ICON@@', `/usr/share/pixmaps/${product.linuxIconName}.png`)) + .pipe(replace('@@EXEC@@', product.applicationName)) + .pipe(replace('@@ICON@@', `\${SNAP}/meta/gui/${product.linuxIconName}.png`)) .pipe(replace('@@URLPROTOCOL@@', product.urlProtocol)); + // An icon that is placed in snap/gui will be placed into meta/gui verbatim. const icon = gulp.src('resources/linux/code.png', { base: '.' }) - .pipe(rename(`usr/share/pixmaps/${product.linuxIconName}.png`)); + .pipe(rename(`snap/gui/${product.linuxIconName}.png`)); const code = gulp.src(binaryDir + '/**/*', { base: binaryDir }) .pipe(rename(function (p) { p.dirname = `usr/share/${product.applicationName}/${p.dirname}`; })); diff --git a/build/gulpfile.vscode.web.js b/build/gulpfile.vscode.web.js index d0cb6be52c7..846ceb219fd 100644 --- a/build/gulpfile.vscode.web.js +++ b/build/gulpfile.vscode.web.js @@ -35,7 +35,7 @@ const vscodeWebResources = [ // Workbench 'out-build/vs/{base,platform,editor,workbench}/**/*.{svg,png}', - 'out-build/vs/code/browser/workbench/workbench.html', + 'out-build/vs/code/browser/workbench/*.html', 'out-build/vs/base/browser/ui/octiconLabel/octicons/**', 'out-build/vs/**/markdown.css', diff --git a/build/lib/compilation.js b/build/lib/compilation.js index d317c06a870..170e086b35b 100644 --- a/build/lib/compilation.js +++ b/build/lib/compilation.js @@ -69,11 +69,12 @@ function createCompile(src, build, emitError) { function compileTask(src, out, build) { return function () { const compile = createCompile(src, build, true); + const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); let generator = new MonacoGenerator(false); if (src === 'src') { generator.execute(); } - return compile.tsProjectSrc() + return srcPipe .pipe(generator.stream) .pipe(compile()) .pipe(gulp.dest(out)); @@ -83,7 +84,7 @@ exports.compileTask = compileTask; function watchTask(out, build) { return function () { const compile = createCompile('src', build); - const src = compile.tsProjectSrc(); + const src = gulp.src('src/**', { base: 'src' }); const watchSrc = watch('src/**', { base: 'src', readDelay: 200 }); let generator = new MonacoGenerator(true); generator.execute(); diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts index 74778a1d9f1..6f37821c775 100644 --- a/build/lib/compilation.ts +++ b/build/lib/compilation.ts @@ -82,13 +82,13 @@ export function compileTask(src: string, out: string, build: boolean): () => Nod return function () { const compile = createCompile(src, build, true); - + const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); let generator = new MonacoGenerator(false); if (src === 'src') { generator.execute(); } - return compile.tsProjectSrc() + return srcPipe .pipe(generator.stream) .pipe(compile()) .pipe(gulp.dest(out)); @@ -100,7 +100,7 @@ export function watchTask(out: string, build: boolean): () => NodeJS.ReadWriteSt return function () { const compile = createCompile('src', build); - const src = compile.tsProjectSrc(); + const src = gulp.src('src/**', { base: 'src' }); const watchSrc = watch('src/**', { base: 'src', readDelay: 200 }); let generator = new MonacoGenerator(true); diff --git a/build/lib/util.js b/build/lib/util.js index be2670261d7..6acb7ab574f 100644 --- a/build/lib/util.js +++ b/build/lib/util.js @@ -121,7 +121,7 @@ function loadSourcemaps() { return; } if (!f.contents) { - cb(new Error('empty file')); + cb(undefined, f); return; } const contents = f.contents.toString('utf8'); diff --git a/build/lib/util.ts b/build/lib/util.ts index 578271e6648..6a82295ae26 100644 --- a/build/lib/util.ts +++ b/build/lib/util.ts @@ -165,7 +165,7 @@ export function loadSourcemaps(): NodeJS.ReadWriteStream { } if (!f.contents) { - cb(new Error('empty file')); + cb(undefined, f); return; } diff --git a/build/lib/watch/index.js b/build/lib/watch/index.js index 0a4af2a798f..a9ab5972977 100644 --- a/build/lib/watch/index.js +++ b/build/lib/watch/index.js @@ -5,17 +5,6 @@ const es = require('event-stream'); -/** Ugly hack for gulp-tsb */ -function handleDeletions() { - return es.mapSync(f => { - if (/\.ts$/.test(f.relative) && !f.contents) { - f.contents = Buffer.from(''); - f.stat = { mtime: new Date() }; - } - - return f; - }); -} let watch = undefined; @@ -24,6 +13,5 @@ if (!watch) { } module.exports = function () { - return watch.apply(null, arguments) - .pipe(handleDeletions()); + return watch.apply(null, arguments); }; diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js index 6b1159bc65c..87eeb860e0e 100644 --- a/build/npm/postinstall.js +++ b/build/npm/postinstall.js @@ -70,6 +70,7 @@ runtime "${runtime}"`; } yarnInstall(`build`); // node modules required for build +yarnInstall('test/automation'); // node modules required for smoketest yarnInstall('test/smoke'); // node modules required for smoketest yarnInstallBuildDependencies(); // node modules for watching, specific to host node version, not electron diff --git a/build/yarn.lock b/build/yarn.lock index 3ff05c280fa..937eb1daa43 100644 --- a/build/yarn.lock +++ b/build/yarn.lock @@ -2433,9 +2433,9 @@ vsce@1.48.0: yazl "^2.2.2" vscode-ripgrep@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.5.6.tgz#93bf5c99ca5f8248950a305e224f6ca153c30af4" - integrity sha512-WRIM9XpUj6dsfdAmuI3ANbmT1ysPUVsYy/2uCLDHJa9kbiB4T7uGvFnnc0Rgx2qQnyRAwL7PeWaFgUljPPxf2g== + version "1.5.7" + resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.5.7.tgz#acb6b548af488a4bca5d0f1bb5faf761343289ce" + integrity sha512-/Vsz/+k8kTvui0q3O74pif9FK0nKopgFTiGNVvxicZANxtSA8J8gUE9GQ/4dpi7D/2yI/YVORszwVskFbz46hQ== vscode-telemetry-extractor@^1.5.4: version "1.5.4" diff --git a/extensions/html-language-features/server/package.json b/extensions/html-language-features/server/package.json index ca358e22b9b..ec693b876f7 100644 --- a/extensions/html-language-features/server/package.json +++ b/extensions/html-language-features/server/package.json @@ -10,7 +10,7 @@ "main": "./out/htmlServerMain", "dependencies": { "vscode-css-languageservice": "^4.0.3-next.6", - "vscode-html-languageservice": "^3.0.4-next.2", + "vscode-html-languageservice": "^3.0.4-next.3", "vscode-languageserver": "^5.3.0-next.8", "vscode-languageserver-types": "3.15.0-next.2", "vscode-nls": "^4.1.1", diff --git a/extensions/html-language-features/server/yarn.lock b/extensions/html-language-features/server/yarn.lock index 4ac895b439c..c2b7f141cc6 100644 --- a/extensions/html-language-features/server/yarn.lock +++ b/extensions/html-language-features/server/yarn.lock @@ -238,10 +238,10 @@ vscode-css-languageservice@^4.0.3-next.6: vscode-nls "^4.1.1" vscode-uri "^2.0.3" -vscode-html-languageservice@^3.0.4-next.2: - version "3.0.4-next.2" - resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.0.4-next.2.tgz#afdbe2781daa0a72613afac77068593925bd2e07" - integrity sha512-tlyiflBm/k/PoTwGzg4LL0cwq6wS7mnKxDVYSlY2Iw21dONWINaS0MynYCn6Zs4PzIpgueCSMuTBQTey4d+BBQ== +vscode-html-languageservice@^3.0.4-next.3: + version "3.0.4-next.3" + resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.0.4-next.3.tgz#7a0fc33aae846165b157acbb8b133cc3fcf2ca0d" + integrity sha512-PGIcKFxqsvVMv51QWreuQx9LhN43Vzhgl8RYI8CcWThjl+J8uUKImjwAWq9zndOiiRUPF2Zk7zME/dMIis1hOw== dependencies: vscode-languageserver-types "^3.15.0-next.2" vscode-nls "^4.1.1" diff --git a/extensions/package.json b/extensions/package.json index ed5fcecf4cb..cbdafd7231d 100644 --- a/extensions/package.json +++ b/extensions/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "description": "Dependencies shared by all extensions", "dependencies": { - "typescript": "3.6.2" + "typescript": "3.6.3-insiders.20190909" }, "scripts": { "postinstall": "node ./postinstall" diff --git a/extensions/yarn.lock b/extensions/yarn.lock index 5368726a68d..f6ffdca517a 100644 --- a/extensions/yarn.lock +++ b/extensions/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -typescript@3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54" - integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw== +typescript@3.6.3-insiders.20190909: + version "3.6.3-insiders.20190909" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3-insiders.20190909.tgz#65b6b2d809288311a970819849e1964ac73e1fda" + integrity sha512-Lr7ONd8Y05EhrI+zKoI5tgvO5dhuRDrK5pyOLG33DeMln8zb8w7Yc8AoIEyqvxB5Btj9F7zBmXBXJdTI3SuX0Q== diff --git a/package.json b/package.json index d4fbc2463c4..965864e8adc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.39.0", - "distro": "8516b3c6e37976c7f4a183ec1196a939f0ff11bf", + "distro": "11a8f56d5044ab27417b2d81f5d8f65c5d55f48c", "author": { "name": "Microsoft Corporation" }, @@ -49,7 +49,7 @@ "vscode-chokidar": "2.1.7", "vscode-minimist": "^1.2.1", "vscode-proxy-agent": "0.4.0", - "vscode-ripgrep": "^1.5.6", + "vscode-ripgrep": "^1.5.7", "vscode-sqlite3": "4.0.8", "vscode-textmate": "^4.2.2", "xterm": "3.15.0-beta108", diff --git a/remote/package.json b/remote/package.json index 8463c3e9148..b1e9ba10c32 100644 --- a/remote/package.json +++ b/remote/package.json @@ -19,7 +19,7 @@ "vscode-chokidar": "2.1.7", "vscode-minimist": "^1.2.1", "vscode-proxy-agent": "0.4.0", - "vscode-ripgrep": "^1.5.6", + "vscode-ripgrep": "^1.5.7", "vscode-textmate": "^4.2.2", "xterm": "3.15.0-beta108", "xterm-addon-search": "0.2.0-beta5", diff --git a/remote/yarn.lock b/remote/yarn.lock index 9bc2cb3a7da..20accc7c140 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock @@ -1139,10 +1139,10 @@ vscode-proxy-agent@0.4.0: https-proxy-agent "2.2.1" socks-proxy-agent "4.0.1" -vscode-ripgrep@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.5.6.tgz#93bf5c99ca5f8248950a305e224f6ca153c30af4" - integrity sha512-WRIM9XpUj6dsfdAmuI3ANbmT1ysPUVsYy/2uCLDHJa9kbiB4T7uGvFnnc0Rgx2qQnyRAwL7PeWaFgUljPPxf2g== +vscode-ripgrep@^1.5.7: + version "1.5.7" + resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.5.7.tgz#acb6b548af488a4bca5d0f1bb5faf761343289ce" + integrity sha512-/Vsz/+k8kTvui0q3O74pif9FK0nKopgFTiGNVvxicZANxtSA8J8gUE9GQ/4dpi7D/2yI/YVORszwVskFbz46hQ== vscode-textmate@^4.2.2: version "4.2.2" diff --git a/resources/linux/bin/code.sh b/resources/linux/bin/code.sh index 64109f1fa12..564f13ef95c 100755 --- a/resources/linux/bin/code.sh +++ b/resources/linux/bin/code.sh @@ -4,7 +4,7 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # test that VSCode wasn't installed inside WSL -if grep -qi Microsoft /proc/version; then +if grep -qi Microsoft /proc/version && [ -z "$DONT_PROMPT_WSL_INSTALL" ]; then echo "To use VS Code with the Windows Subsystem for Linux, please install VS Code in Windows and uninstall the Linux version in WSL. You can then use the '@@PRODNAME@@' command in a WSL terminal just as you would in a normal command prompt." 1>&2 read -e -p "Do you want to continue anyways ? [y/N] " YN diff --git a/resources/linux/code-url-handler.desktop b/resources/linux/code-url-handler.desktop index 09e39c57c51..7106e0e0969 100644 --- a/resources/linux/code-url-handler.desktop +++ b/resources/linux/code-url-handler.desktop @@ -2,7 +2,7 @@ Name=@@NAME_LONG@@ - URL Handler Comment=Code Editing. Redefined. GenericName=Text Editor -Exec=/usr/share/@@NAME@@/@@NAME@@ --open-url %U +Exec=@@EXEC@@ --open-url %U Icon=@@ICON@@ Type=Application NoDisplay=true diff --git a/resources/linux/code.desktop b/resources/linux/code.desktop index dbc7818cecf..1273bb2db7c 100644 --- a/resources/linux/code.desktop +++ b/resources/linux/code.desktop @@ -2,7 +2,7 @@ Name=@@NAME_LONG@@ Comment=Code Editing. Redefined. GenericName=Text Editor -Exec=/usr/share/@@NAME@@/@@NAME@@ --unity-launch %F +Exec=@@EXEC@@ --unity-launch %F Icon=@@ICON@@ Type=Application StartupNotify=false @@ -14,5 +14,5 @@ Keywords=vscode; [Desktop Action new-empty-window] Name=New Empty Window -Exec=/usr/share/@@NAME@@/@@NAME@@ --new-window %F +Exec=@@EXEC@@ --new-window %F Icon=@@ICON@@ diff --git a/resources/linux/snap/snapcraft.yaml b/resources/linux/snap/snapcraft.yaml index 28b3e59ad7e..0f872089195 100644 --- a/resources/linux/snap/snapcraft.yaml +++ b/resources/linux/snap/snapcraft.yaml @@ -49,16 +49,14 @@ parts: apps: @@NAME@@: - command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ - desktop: usr/share/applications/@@NAME@@.desktop + command: electron-launch $SNAP/usr/share/@@NAME@@/@@NAME@@ common-id: @@NAME@@.desktop environment: DISABLE_WAYLAND: 1 GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas url-handler: - command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ --open-url - desktop: usr/share/applications/@@NAME@@-url-handler.desktop + command: electron-launch $SNAP/usr/share/@@NAME@@/@@NAME@@ --open-url environment: DISABLE_WAYLAND: 1 - GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas \ No newline at end of file + GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas diff --git a/scripts/code.sh b/scripts/code.sh index a074797ce0f..e82babd818a 100755 --- a/scripts/code.sh +++ b/scripts/code.sh @@ -47,6 +47,7 @@ function code() { export VSCODE_CLI=1 export ELECTRON_ENABLE_STACK_DUMPING=1 export ELECTRON_ENABLE_LOGGING=1 + export VSCODE_LOGS= # Launch Code exec "$CODE" . "$@" diff --git a/src/vs/code/browser/workbench/callback.html b/src/vs/code/browser/workbench/callback.html new file mode 100644 index 00000000000..da6c907b666 --- /dev/null +++ b/src/vs/code/browser/workbench/callback.html @@ -0,0 +1,79 @@ + + + +
+ + + + + + + + +