提交 db8a4cbd 编写于 作者: C Christof Marti

Cleanup (#20671)

上级 160bd447
......@@ -7,6 +7,27 @@ import Event from 'vs/base/common/event';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IWindowsService } from 'vs/platform/windows/common/windows';
export enum OpenContext {
// opening when running from the command line
CLI,
// macOS only: opening from the dock (also when opening files to a running instance from desktop)
DOCK,
// opening from the main application window
MENU,
// opening from a file or folder dialog
DIALOG,
// opening from the OS's UI
DESKTOP,
// opening through the API
API
}
export interface IWindowEventService {
_serviceBrand: any;
......
......@@ -5,7 +5,8 @@
'use strict';
import { IWindowsMainService, OpenContext } from 'vs/code/electron-main/windows';
import { OpenContext } from 'vs/code/common/windows';
import { IWindowsMainService } from 'vs/code/electron-main/windows';
import { VSCodeWindow } from 'vs/code/electron-main/window';
import { TPromise } from 'vs/base/common/winjs.base';
import { IChannel } from 'vs/base/parts/ipc/common/ipc';
......
......@@ -11,7 +11,8 @@ import * as platform from 'vs/base/common/platform';
import { parseMainProcessArgv } from 'vs/platform/environment/node/argv';
import { mkdirp } from 'vs/base/node/pfs';
import { validatePaths } from 'vs/code/electron-main/paths';
import { IWindowsMainService, WindowsManager, OpenContext } from 'vs/code/electron-main/windows';
import { OpenContext } from 'vs/code/common/windows';
import { IWindowsMainService, WindowsManager } from 'vs/code/electron-main/windows';
import { IWindowsService } from 'vs/platform/windows/common/windows';
import { WindowsChannel } from 'vs/platform/windows/common/windowsIpc';
import { WindowsService } from 'vs/platform/windows/electron-main/windowsService';
......
......@@ -10,7 +10,8 @@ import { isMacintosh, isLinux, isWindows, language } from 'vs/base/common/platfo
import * as arrays from 'vs/base/common/arrays';
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
import { ipcMain as ipc, app, shell, dialog, Menu, MenuItem } from 'electron';
import { IWindowsMainService, OpenContext } from 'vs/code/electron-main/windows';
import { OpenContext } from 'vs/code/common/windows';
import { IWindowsMainService } from 'vs/code/electron-main/windows';
import { VSCodeWindow } from 'vs/code/electron-main/window';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IStorageService } from 'vs/code/electron-main/storage';
......
......@@ -26,18 +26,16 @@ import { ILogService } from 'vs/code/electron-main/log';
import { getPathLabel } from 'vs/base/common/labels';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IWindowSettings } from 'vs/platform/windows/common/windows';
import { getLastActiveWindow, OpenContext as OriginalOpenContext, findBestWindowOrFolder } from 'vs/code/node/windowsUtils';
import { getLastActiveWindow, findBestWindowOrFolder } from 'vs/code/node/windowsUtils';
import CommonEvent, { Emitter } from 'vs/base/common/event';
import product from 'vs/platform/node/product';
import { OpenContext } from 'vs/code/common/windows';
enum WindowError {
UNRESPONSIVE,
CRASHED
}
export const OpenContext = OriginalOpenContext;
export type OpenContext = OriginalOpenContext;
export interface IOpenConfiguration {
context: OpenContext;
cli: ParsedArgs;
......
......@@ -9,27 +9,7 @@ import * as path from 'path';
import * as fs from 'original-fs';
import * as platform from 'vs/base/common/platform';
import * as paths from 'vs/base/common/paths';
export enum OpenContext {
// opening when running from the command line
CLI,
// macOS only: opening from the dock (also when opening files to a running instance from desktop)
DOCK,
// opening from the main application window
MENU,
// opening from a file or folder dialog
DIALOG,
// opening from the OS's UI
DESKTOP,
// opening through the API
API
}
import { OpenContext } from 'vs/code/common/windows';
/**
* Exported subset of VSCodeWindow for testing.
......@@ -42,8 +22,8 @@ export interface ISimpleWindow {
/**
* Exported for testing.
*/
export interface IBestWindowOrFolderOptions<WINDOW> {
windows: WINDOW[];
export interface IBestWindowOrFolderOptions<SimpleWindow extends ISimpleWindow> {
windows: SimpleWindow[];
newWindow: boolean;
reuseWindow: boolean;
context: OpenContext;
......@@ -52,7 +32,7 @@ export interface IBestWindowOrFolderOptions<WINDOW> {
vscodeFolder?: string;
}
export function findBestWindowOrFolder<WINDOW extends ISimpleWindow>({ windows, newWindow, reuseWindow, context, filePath, userHome, vscodeFolder }: IBestWindowOrFolderOptions<WINDOW>): WINDOW | string {
export function findBestWindowOrFolder<SimpleWindow extends ISimpleWindow>({ windows, newWindow, reuseWindow, context, filePath, userHome, vscodeFolder }: IBestWindowOrFolderOptions<SimpleWindow>): SimpleWindow | string {
// OpenContext.DOCK implies newWindow unless overwritten by settings.
const findBest = filePath && (context === OpenContext.DESKTOP || context === OpenContext.CLI || context === OpenContext.DOCK);
const bestWindow = !newWindow && findBest && findBestWindow(windows, filePath);
......
......@@ -6,7 +6,8 @@
import assert = require('assert');
import path = require('path');
import { findBestWindowOrFolder, OpenContext, ISimpleWindow, IBestWindowOrFolderOptions } from 'vs/code/node/windowsUtils';
import { findBestWindowOrFolder, ISimpleWindow, IBestWindowOrFolderOptions } from 'vs/code/node/windowsUtils';
import { OpenContext } from 'vs/code/common/windows';
const fixturesFolder = require.toUrl('./fixtures');
......
......@@ -16,7 +16,8 @@ import { fromEventEmitter } from 'vs/base/node/event';
import { IURLService } from 'vs/platform/url/common/url';
// TODO@Joao: remove this dependency, move all implementation to this class
import { IWindowsMainService, OpenContext } from 'vs/code/electron-main/windows';
import { OpenContext } from 'vs/code/common/windows';
import { IWindowsMainService } from 'vs/code/electron-main/windows';
export class WindowsService implements IWindowsService, IDisposable {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册