src/Tools/VSCode/patches/cli.patch
author wenzelm
Mon, 14 Mar 2022 16:03:15 +0100
changeset 75277 f64725832d63
child 75279 9229f2681db7
permissions -rw-r--r--
support Electron application framework; clarified vscodium startup;

diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts
--- a/src/vs/code/node/cli.ts
+++ b/src/vs/code/node/cli.ts
@@ -24,6 +24,7 @@ import product from 'vs/platform/product/common/product';
 import { CancellationTokenSource } from 'vs/base/common/cancellation';
 import { randomPath } from 'vs/base/common/extpath';
 import { Utils } from 'vs/platform/profiling/common/profiling';
+import * as path from 'path';
 
 function shouldSpawnCliProcess(argv: NativeParsedArgs): boolean {
 	return !!argv['install-source']
@@ -363,9 +364,11 @@ export async function main(argv: string[]): Promise<any> {
 		}
 
 		let child: ChildProcess;
+		const app_arg = '--app=' + path.join(path.dirname(process.execPath), 'resources', 'vscodium');
+		const electron_args = [app_arg].concat(argv.slice(2));
 		if (!isMacOSBigSurOrNewer) {
 			// We spawn process.execPath directly
-			child = spawn(process.execPath, argv.slice(2), options);
+			child = spawn(process.execPath, electron_args, options);
 		} else {
 			// On Big Sur, we spawn using the open command to obtain behavior
 			// similar to if the app was launched from the dock
@@ -425,7 +428,7 @@ export async function main(argv: string[]): Promise<any> {
 				}
 			}
 
-			spawnArgs.push('--args', ...argv.slice(2)); // pass on our arguments
+			spawnArgs.push('--args', ...electron_args); // pass on our arguments
 
 			if (env['VSCODE_DEV']) {
 				// If we're in development mode, replace the . arg with the