From 1f80e3954c626ea0a4f4ae2180cecb3c8398e43c Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 27 Sep 2019 11:56:47 +0200 Subject: [PATCH] debt - extract node only window options --- .../electron/electron-main/electronMainService.ts | 5 +++-- src/vs/platform/electron/node/electron.ts | 5 +++-- src/vs/platform/windows/common/windows.ts | 5 +---- src/vs/platform/windows/node/window.ts | 14 ++++++++++++++ src/vs/workbench/api/node/extHostCLIServer.ts | 5 +++-- 5 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 src/vs/platform/windows/node/window.ts diff --git a/src/vs/platform/electron/electron-main/electronMainService.ts b/src/vs/platform/electron/electron-main/electronMainService.ts index 362bc9b26ae..f4990f13d02 100644 --- a/src/vs/platform/electron/electron-main/electronMainService.ts +++ b/src/vs/platform/electron/electron-main/electronMainService.ts @@ -6,8 +6,9 @@ import { Event } from 'vs/base/common/event'; import { IWindowsMainService } from 'vs/platform/windows/electron-main/windows'; import { MessageBoxOptions, MessageBoxReturnValue, shell, OpenDevToolsOptions, SaveDialogOptions, SaveDialogReturnValue, OpenDialogOptions, OpenDialogReturnValue, CrashReporterStartOptions, crashReporter, Menu, BrowserWindow, app } from 'electron'; +import { INativeOpenInWindowOptions } from 'vs/platform/windows/node/window'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; -import { IOpenedWindow, OpenContext, IWindowOpenable, IOpenInWindowOptions, IOpenEmptyWindowOptions } from 'vs/platform/windows/common/windows'; +import { IOpenedWindow, OpenContext, IWindowOpenable, IOpenEmptyWindowOptions } from 'vs/platform/windows/common/windows'; import { INativeOpenDialogOptions } from 'vs/platform/dialogs/node/dialogs'; import { isMacintosh, IProcessEnvironment } from 'vs/base/common/platform'; import { IElectronService } from 'vs/platform/electron/node/electron'; @@ -72,7 +73,7 @@ export class ElectronMainService implements AddFirstParameterToFunctions { + async openInWindow(windowId: number, toOpen: IWindowOpenable[], options: INativeOpenInWindowOptions = Object.create(null)): Promise { if (toOpen.length > 0) { this.windowsMainService.open({ context: OpenContext.API, diff --git a/src/vs/platform/electron/node/electron.ts b/src/vs/platform/electron/node/electron.ts index 749c3d79110..3d4221373ff 100644 --- a/src/vs/platform/electron/node/electron.ts +++ b/src/vs/platform/electron/node/electron.ts @@ -6,11 +6,12 @@ import { Event } from 'vs/base/common/event'; import { MessageBoxOptions, MessageBoxReturnValue, OpenDevToolsOptions, SaveDialogOptions, OpenDialogOptions, OpenDialogReturnValue, SaveDialogReturnValue, CrashReporterStartOptions } from 'electron'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { IWindowOpenable, IOpenInWindowOptions, IOpenEmptyWindowOptions, IOpenedWindow } from 'vs/platform/windows/common/windows'; +import { IWindowOpenable, IOpenEmptyWindowOptions, IOpenedWindow } from 'vs/platform/windows/common/windows'; import { INativeOpenDialogOptions } from 'vs/platform/dialogs/node/dialogs'; import { ISerializableCommandAction } from 'vs/platform/actions/common/actions'; import { ParsedArgs } from 'vscode-minimist'; import { IProcessEnvironment } from 'vs/base/common/platform'; +import { INativeOpenInWindowOptions } from 'vs/platform/windows/node/window'; export const IElectronService = createDecorator('electronService'); @@ -33,7 +34,7 @@ export interface IElectronService { getActiveWindowId(): Promise; openEmptyWindow(options?: IOpenEmptyWindowOptions): Promise; - openInWindow(toOpen: IWindowOpenable[], options?: IOpenInWindowOptions): Promise; + openInWindow(toOpen: IWindowOpenable[], options?: INativeOpenInWindowOptions): Promise; toggleFullScreen(): Promise; diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index 19a6e9464f3..a14b45cca82 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -22,11 +22,8 @@ export interface IOpenedWindow { export interface IOpenInWindowOptions { forceNewWindow?: boolean; forceReuseWindow?: boolean; - diffMode?: boolean; - addMode?: boolean; - gotoLineMode?: boolean; + noRecentEntry?: boolean; - waitMarkerFileURI?: URI; } export interface IOpenEmptyWindowOptions { diff --git a/src/vs/platform/windows/node/window.ts b/src/vs/platform/windows/node/window.ts new file mode 100644 index 00000000000..a201aa309a5 --- /dev/null +++ b/src/vs/platform/windows/node/window.ts @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { IOpenInWindowOptions } from 'vs/platform/windows/common/windows'; +import { URI } from 'vs/base/common/uri'; + +export interface INativeOpenInWindowOptions extends IOpenInWindowOptions { + diffMode?: boolean; + addMode?: boolean; + gotoLineMode?: boolean; + waitMarkerFileURI?: URI; +} diff --git a/src/vs/workbench/api/node/extHostCLIServer.ts b/src/vs/workbench/api/node/extHostCLIServer.ts index 4cdb2967e9c..f0a3c70ec91 100644 --- a/src/vs/workbench/api/node/extHostCLIServer.ts +++ b/src/vs/workbench/api/node/extHostCLIServer.ts @@ -7,9 +7,10 @@ import { generateRandomPipeName } from 'vs/base/parts/ipc/node/ipc.net'; import * as http from 'http'; import * as fs from 'fs'; import { IExtHostCommands } from 'vs/workbench/api/common/extHostCommands'; -import { IWindowOpenable, IOpenInWindowOptions } from 'vs/platform/windows/common/windows'; +import { IWindowOpenable } from 'vs/platform/windows/common/windows'; import { URI } from 'vs/base/common/uri'; import { hasWorkspaceFileExtension } from 'vs/platform/workspaces/common/workspaces'; +import { INativeOpenInWindowOptions } from 'vs/platform/windows/node/window'; export interface OpenCommandPipeArgs { type: 'open'; @@ -126,7 +127,7 @@ export class CLIServer { } if (urisToOpen.length) { const waitMarkerFileURI = waitMarkerFilePath ? URI.file(waitMarkerFilePath) : undefined; - const windowOpenArgs: IOpenInWindowOptions = { forceNewWindow, diffMode, addMode, gotoLineMode, forceReuseWindow, waitMarkerFileURI }; + const windowOpenArgs: INativeOpenInWindowOptions = { forceNewWindow, diffMode, addMode, gotoLineMode, forceReuseWindow, waitMarkerFileURI }; this._commands.executeCommand('_files.windowOpen', urisToOpen, windowOpenArgs); } res.writeHead(200);