From bf85a03b62d131bedb0b24c80d042c91bd060df7 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 19 Jul 2018 10:19:20 +0200 Subject: [PATCH] Add support for folder uris using folder-uris parameter --- src/vs/code/electron-main/windows.ts | 17 +++++++++++++++-- .../platform/environment/common/environment.ts | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index 27587305be1..00734951b4d 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -790,7 +790,7 @@ export class WindowsManager implements IWindowsMainService { } // Extract paths: from CLI - else if (openConfig.cli._.length > 0) { + else if (openConfig.cli._.length > 0 || openConfig.cli['folder-uris']) { windowsToOpen = this.doExtractPathsFromCLI(openConfig.cli); isCommandLineOrAPICall = true; } @@ -847,7 +847,20 @@ export class WindowsManager implements IWindowsMainService { } private doExtractPathsFromCLI(cli: ParsedArgs): IPath[] { - const pathsToOpen = arrays.coalesce(cli._.map(candidate => this.parsePath(candidate, { ignoreFileNotFound: true, gotoLineMode: cli.goto }))); + const pathsToOpen = []; + + // folder uris + if (cli['folder-uris']) { + const arg = cli['folder-uris']; + const folderUris: string[] = typeof arg === 'string' ? [arg] : arg; + pathsToOpen.push(...arrays.coalesce(folderUris.map(candidate => this.parseUri(URI.parse(candidate), { ignoreFileNotFound: true, gotoLineMode: cli.goto })))); + } + + // folder or file paths + if (cli._ && cli._.length) { + pathsToOpen.push(...arrays.coalesce(cli._.map(candidate => this.parsePath(candidate, { ignoreFileNotFound: true, gotoLineMode: cli.goto })))); + } + if (pathsToOpen.length > 0) { return pathsToOpen; } diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts index 99792a19f00..0106f4c1ae3 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts @@ -8,6 +8,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' export interface ParsedArgs { [arg: string]: any; _: string[]; + 'folder-uris'?: string | string[]; _urls?: string[]; help?: boolean; version?: boolean; -- GitLab