diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 335b1c152c0..3d015e909a2 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -50,7 +50,7 @@ import { CodeWindow } from "vs/code/electron-main/window"; import { KeyboardLayoutMonitor } from "vs/code/electron-main/keyboard"; import URI from 'vs/base/common/uri'; import { WorkspacesChannel } from "vs/platform/workspaces/common/workspacesIpc"; -import { IWorkspacesMainService, IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspacesMainService, IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; import { findWindowOnWorkspaceOrFolder } from "vs/code/node/windowsFinder"; export class CodeApplication { @@ -204,7 +204,7 @@ export class CodeApplication { }); }); - ipc.on('vscode:broadcast', (event, windowId: number, target: IWorkspaceIdentifier | string, broadcast: { channel: string; payload: any; }) => { + ipc.on('vscode:broadcast', (event, windowId: number, target: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, broadcast: { channel: string; payload: any; }) => { if (this.windowsMainService && broadcast.channel && !isUndefinedOrNull(broadcast.payload)) { this.logService.log('IPC#vscode:broadcast', target, broadcast.channel, broadcast.payload); diff --git a/src/vs/code/electron-main/menus.ts b/src/vs/code/electron-main/menus.ts index 14d4dda077c..c58e9040d27 100644 --- a/src/vs/code/electron-main/menus.ts +++ b/src/vs/code/electron-main/menus.ts @@ -22,7 +22,7 @@ import { tildify } from 'vs/base/common/labels'; import { KeybindingsResolver } from "vs/code/electron-main/keyboard"; import { IWindowsMainService } from "vs/platform/windows/electron-main/windows"; import { IHistoryMainService } from "vs/platform/history/common/history"; -import { IWorkspaceIdentifier, IWorkspacesMainService, getWorkspaceLabel } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, IWorkspacesMainService, getWorkspaceLabel, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; interface IExtensionViewlet { id: string; @@ -471,7 +471,7 @@ export class CodeMenu { } } - private createOpenRecentMenuItem(recent: IWorkspaceIdentifier | string, commandId: string): Electron.MenuItem { + private createOpenRecentMenuItem(recent: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, commandId: string): Electron.MenuItem { const label = (typeof recent === 'string') ? this.unmnemonicLabel(tildify(recent, this.environmentService.userHome)) : getWorkspaceLabel(this.environmentService, recent); const path = (typeof recent === 'string') ? recent : recent.configPath; diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index aee03c3388b..ad329e47ecd 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -29,7 +29,7 @@ import { IWindowsMainService, IOpenConfiguration } from "vs/platform/windows/ele import { IHistoryMainService } from "vs/platform/history/common/history"; import { IProcessEnvironment, isLinux, isMacintosh, isWindows } from 'vs/base/common/platform'; import { TPromise } from "vs/base/common/winjs.base"; -import { IWorkspacesMainService, IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspacesMainService, IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; enum WindowError { UNRESPONSIVE, @@ -350,7 +350,7 @@ export class WindowsManager implements IWindowsMainService { // Remember in recent document list (unless this opens for extension development) // Also do not add paths when files are opened for diffing, only if opened individually if (!usedWindows.some(w => w.isExtensionDevelopmentHost) && !openConfig.cli.diff) { - const recentlyOpenedWorkspaces: (IWorkspaceIdentifier | string)[] = []; + const recentlyOpenedWorkspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[] = []; const recentlyOpenedFiles: string[] = []; windowsToOpen.forEach(win => { diff --git a/src/vs/code/node/windowsFinder.ts b/src/vs/code/node/windowsFinder.ts index 94c5d36e844..1190f482fee 100644 --- a/src/vs/code/node/windowsFinder.ts +++ b/src/vs/code/node/windowsFinder.ts @@ -10,7 +10,7 @@ import * as fs from 'fs'; import * as platform from 'vs/base/common/platform'; import * as paths from 'vs/base/common/paths'; import { OpenContext } from 'vs/platform/windows/common/windows'; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; import { isParent } from "vs/platform/files/common/files"; export interface ISimpleWindow { @@ -168,7 +168,7 @@ export function findExtensionDevelopmentWindow(windows: return null; } -export function findWindowOnWorkspaceOrFolder(windows: W[], target: IWorkspaceIdentifier | string): W { +export function findWindowOnWorkspaceOrFolder(windows: W[], target: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): W { const directTargetMatch = windows.filter(w => { if (typeof target === 'string') { return paths.isEqual(target, w.openedFolderPath, !platform.isLinux /* ignorecase */); diff --git a/src/vs/platform/backup/electron-main/backupMainService.ts b/src/vs/platform/backup/electron-main/backupMainService.ts index 5df46f0ff62..ca56d0d6275 100644 --- a/src/vs/platform/backup/electron-main/backupMainService.ts +++ b/src/vs/platform/backup/electron-main/backupMainService.ts @@ -14,7 +14,7 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment' import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IFilesConfiguration, HotExitConfiguration } from 'vs/platform/files/common/files'; import { ILogService } from "vs/platform/log/common/log"; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; export class BackupMainService implements IBackupMainService { @@ -88,14 +88,14 @@ export class BackupMainService implements IBackupMainService { return path.join(this.backupHome, backupFolder); } - private pushBackupPathsSync(workspaceIdentifier: string | IWorkspaceIdentifier, target: (string | IWorkspaceIdentifier)[]): void { + private pushBackupPathsSync(workspaceIdentifier: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, target: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): void { if (this.indexOf(workspaceIdentifier, target) === -1) { target.push(workspaceIdentifier); this.saveSync(); } } - protected removeBackupPathSync(workspaceIdentifier: string | IWorkspaceIdentifier, target: (string | IWorkspaceIdentifier)[]): void { + protected removeBackupPathSync(workspaceIdentifier: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, target: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): void { if (!target) { return; } @@ -107,7 +107,7 @@ export class BackupMainService implements IBackupMainService { this.saveSync(); } - private indexOf(workspaceIdentifier: string | IWorkspaceIdentifier, target: (string | IWorkspaceIdentifier)[]): number { + private indexOf(workspaceIdentifier: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, target: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): number { if (!target) { return -1; } @@ -117,7 +117,7 @@ export class BackupMainService implements IBackupMainService { return arrays.firstIndex(target, id => this.sanitizeId(id) === sanitizedWorkspaceIdentifier); } - private sanitizeId(workspaceIdentifier: string | IWorkspaceIdentifier): string { + private sanitizeId(workspaceIdentifier: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): string { if (typeof workspaceIdentifier === 'string') { return this.sanitizePath(workspaceIdentifier); } @@ -180,9 +180,9 @@ export class BackupMainService implements IBackupMainService { } private validateBackupWorkspaces(backups: IBackupWorkspacesFormat): void { - const staleBackupWorkspaces: { workspaceIdentifier: string | IWorkspaceIdentifier; backupPath: string; target: (string | IWorkspaceIdentifier)[] }[] = []; + const staleBackupWorkspaces: { workspaceIdentifier: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier; backupPath: string; target: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[] }[] = []; - const workspaceAndFolders: { workspaceIdentifier: string | IWorkspaceIdentifier, target: (string | IWorkspaceIdentifier)[] }[] = []; + const workspaceAndFolders: { workspaceIdentifier: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, target: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[] }[] = []; workspaceAndFolders.push(...backups.rootWorkspaces.map(r => ({ workspaceIdentifier: r, target: backups.rootWorkspaces }))); workspaceAndFolders.push(...backups.folderWorkspaces.map(f => ({ workspaceIdentifier: f, target: backups.folderWorkspaces }))); diff --git a/src/vs/platform/broadcast/electron-browser/broadcastService.ts b/src/vs/platform/broadcast/electron-browser/broadcastService.ts index 03be908ca9d..1b9e40df61b 100644 --- a/src/vs/platform/broadcast/electron-browser/broadcastService.ts +++ b/src/vs/platform/broadcast/electron-browser/broadcastService.ts @@ -9,7 +9,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import Event, { Emitter } from 'vs/base/common/event'; import { ipcRenderer as ipc } from 'electron'; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; export const IBroadcastService = createDecorator('broadcastService'); @@ -21,7 +21,7 @@ export interface IBroadcast { export interface IBroadcastService { _serviceBrand: any; - broadcast(b: IBroadcast, target?: IWorkspaceIdentifier | string): void; + broadcast(b: IBroadcast, target?: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): void; onBroadcast: Event; } @@ -47,7 +47,7 @@ export class BroadcastService implements IBroadcastService { return this._onBroadcast.event; } - public broadcast(b: IBroadcast, target?: IWorkspaceIdentifier | string): void { + public broadcast(b: IBroadcast, target?: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): void { ipc.send('vscode:broadcast', this.windowId, target, { channel: b.channel, payload: b.payload diff --git a/src/vs/platform/history/common/history.ts b/src/vs/platform/history/common/history.ts index d15f2eca2ba..0be4cd0e2b6 100644 --- a/src/vs/platform/history/common/history.ts +++ b/src/vs/platform/history/common/history.ts @@ -8,12 +8,12 @@ import { IPath } from 'vs/platform/windows/common/windows'; import CommonEvent from 'vs/base/common/event'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; export const IHistoryMainService = createDecorator('historyMainService'); export interface IRecentlyOpened { - workspaces: (IWorkspaceIdentifier | string)[]; + workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]; files: string[]; } @@ -22,12 +22,12 @@ export interface IHistoryMainService { onRecentlyOpenedChange: CommonEvent; - addRecentlyOpened(workspaces: (IWorkspaceIdentifier | string)[], files: string[]): void; + addRecentlyOpened(workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[], files: string[]): void; - getRecentlyOpened(currentWorkspace?: IWorkspaceIdentifier | string, currentFiles?: IPath[]): IRecentlyOpened; + getRecentlyOpened(currentWorkspace?: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, currentFiles?: IPath[]): IRecentlyOpened; - removeFromRecentlyOpened(toRemove: IWorkspaceIdentifier | string): void; - removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | string)[]): void; + removeFromRecentlyOpened(toRemove: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): void; + removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): void; clearRecentlyOpened(): void; diff --git a/src/vs/platform/history/electron-main/historyMainService.ts b/src/vs/platform/history/electron-main/historyMainService.ts index 1a8dcc4d817..b3a3d77e199 100644 --- a/src/vs/platform/history/electron-main/historyMainService.ts +++ b/src/vs/platform/history/electron-main/historyMainService.ts @@ -16,7 +16,7 @@ import { getPathLabel } from 'vs/base/common/labels'; import { IPath } from 'vs/platform/windows/common/windows'; import CommonEvent, { Emitter } from 'vs/base/common/event'; import { isWindows, isMacintosh, isLinux } from 'vs/base/common/platform'; -import { IWorkspaceIdentifier, IWorkspacesMainService, getWorkspaceLabel } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, IWorkspacesMainService, getWorkspaceLabel, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; import { IHistoryMainService, IRecentlyOpened } from "vs/platform/history/common/history"; import { IEnvironmentService } from "vs/platform/environment/common/environment"; @@ -43,7 +43,7 @@ export class HistoryMainService implements IHistoryMainService { ) { } - public addRecentlyOpened(workspaces: (IWorkspaceIdentifier | string)[], files: string[]): void { + public addRecentlyOpened(workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[], files: string[]): void { if ((workspaces && workspaces.length > 0) || (files && files.length > 0)) { const mru = this.getRecentlyOpened(); @@ -87,8 +87,8 @@ export class HistoryMainService implements IHistoryMainService { return typeof obj === 'string'; } - public removeFromRecentlyOpened(toRemove: IWorkspaceIdentifier | string): void; - public removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | string)[]): void; + public removeFromRecentlyOpened(toRemove: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): void; + public removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): void; public removeFromRecentlyOpened(arg1: any): void { let workspacesOrFilesToRemove: any[]; if (Array.isArray(arg1)) { @@ -100,7 +100,7 @@ export class HistoryMainService implements IHistoryMainService { const mru = this.getRecentlyOpened(); let update = false; - workspacesOrFilesToRemove.forEach((workspaceOrFileToRemove: IWorkspaceIdentifier | string) => { + workspacesOrFilesToRemove.forEach((workspaceOrFileToRemove: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier) => { // Remove workspace let index = arrays.firstIndex(mru.workspaces, workspace => this.equals(workspace, workspaceOrFileToRemove)); @@ -125,7 +125,7 @@ export class HistoryMainService implements IHistoryMainService { } } - private equals(w1: IWorkspaceIdentifier | string, w2: IWorkspaceIdentifier | string): boolean { + private equals(w1: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, w2: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier): boolean { if (w1 === w2) { return true; } @@ -145,8 +145,8 @@ export class HistoryMainService implements IHistoryMainService { this._onRecentlyOpenedChange.fire(); } - public getRecentlyOpened(currentWorkspace?: IWorkspaceIdentifier | string, currentFiles?: IPath[]): IRecentlyOpened { - let workspaces: (IWorkspaceIdentifier | string)[]; + public getRecentlyOpened(currentWorkspace?: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, currentFiles?: IPath[]): IRecentlyOpened { + let workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]; let files: string[]; // Get from storage diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index 8ec4c1cf31d..3b8035563d9 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -11,7 +11,7 @@ import Event from 'vs/base/common/event'; import { ITelemetryData } from 'vs/platform/telemetry/common/telemetry'; import { IProcessEnvironment } from 'vs/base/common/platform'; import { ParsedArgs } from 'vs/platform/environment/common/environment'; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; import { IRecentlyOpened } from "vs/platform/history/common/history"; export const IWindowsService = createDecorator('windowsService'); @@ -34,7 +34,7 @@ export interface IWindowsService { toggleFullScreen(windowId: number): TPromise; setRepresentedFilename(windowId: number, fileName: string): TPromise; addRecentlyOpened(files: string[]): TPromise; - removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | string)[]): TPromise; + removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): TPromise; clearRecentlyOpened(): TPromise; getRecentlyOpened(windowId: number): TPromise; focusWindow(windowId: number): TPromise; diff --git a/src/vs/platform/windows/common/windowsIpc.ts b/src/vs/platform/windows/common/windowsIpc.ts index 3321a238988..786ebc63c3e 100644 --- a/src/vs/platform/windows/common/windowsIpc.ts +++ b/src/vs/platform/windows/common/windowsIpc.ts @@ -10,7 +10,7 @@ import Event, { buffer } from 'vs/base/common/event'; import { IChannel, eventToCall, eventFromCall } from 'vs/base/parts/ipc/common/ipc'; import { IWindowsService } from './windows'; import { ITelemetryData } from 'vs/platform/telemetry/common/telemetry'; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; import { IRecentlyOpened } from "vs/platform/history/common/history"; export interface IWindowsChannel extends IChannel { @@ -26,7 +26,7 @@ export interface IWindowsChannel extends IChannel { call(command: 'toggleFullScreen', arg: number): TPromise; call(command: 'setRepresentedFilename', arg: [number, string]): TPromise; call(command: 'addRecentlyOpened', arg: string[]): TPromise; - call(command: 'removeFromRecentlyOpened', arg: (IWorkspaceIdentifier | string)[]): TPromise; + call(command: 'removeFromRecentlyOpened', arg: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): TPromise; call(command: 'clearRecentlyOpened'): TPromise; call(command: 'getRecentlyOpened', arg: number): TPromise; call(command: 'focusWindow', arg: number): TPromise; @@ -165,7 +165,7 @@ export class WindowsChannelClient implements IWindowsService { return this.channel.call('addRecentlyOpened', files); } - removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | string)[]): TPromise { + removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): TPromise { return this.channel.call('removeFromRecentlyOpened', toRemove); } diff --git a/src/vs/platform/windows/electron-main/windowsService.ts b/src/vs/platform/windows/electron-main/windowsService.ts index c00bd87c980..8cc7e7e47f2 100644 --- a/src/vs/platform/windows/electron-main/windowsService.ts +++ b/src/vs/platform/windows/electron-main/windowsService.ts @@ -20,7 +20,7 @@ import { ILifecycleService } from "vs/platform/lifecycle/electron-main/lifecycle import { IWindowsMainService, ISharedProcess } from "vs/platform/windows/electron-main/windows"; import { IHistoryMainService, IRecentlyOpened } from "vs/platform/history/common/history"; import { findExtensionDevelopmentWindow } from "vs/code/node/windowsFinder"; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; export class WindowsService implements IWindowsService, IDisposable { @@ -146,7 +146,7 @@ export class WindowsService implements IWindowsService, IDisposable { return TPromise.as(null); } - removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | string)[]): TPromise { + removeFromRecentlyOpened(toRemove: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): TPromise { this.historyService.removeFromRecentlyOpened(toRemove); return TPromise.as(null); diff --git a/src/vs/platform/workspaces/common/workspaces.ts b/src/vs/platform/workspaces/common/workspaces.ts index fbd476524d6..1b98da22dff 100644 --- a/src/vs/platform/workspaces/common/workspaces.ts +++ b/src/vs/platform/workspaces/common/workspaces.ts @@ -18,6 +18,11 @@ export const IWorkspacesService = createDecorator('workspace export const WORKSPACE_EXTENSION = 'code-workspace'; +/** + * A single folder workspace identifier is just the path to the folder. + */ +export type ISingleFolderWorkspaceIdentifier = string; + export interface IWorkspaceIdentifier { id: string; configPath: string; diff --git a/src/vs/workbench/electron-browser/actions.ts b/src/vs/workbench/electron-browser/actions.ts index 7d7483076b4..838e2790cf9 100644 --- a/src/vs/workbench/electron-browser/actions.ts +++ b/src/vs/workbench/electron-browser/actions.ts @@ -40,7 +40,7 @@ import { webFrame } from 'electron'; import { getPathLabel } from 'vs/base/common/labels'; import { IViewlet } from 'vs/workbench/common/viewlet'; import { IPanel } from 'vs/workbench/common/panel'; -import { IWorkspaceIdentifier, getWorkspaceLabel } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, getWorkspaceLabel, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; // --- actions @@ -668,9 +668,9 @@ export abstract class BaseOpenRecentAction extends Action { .then(({ workspaces, files }) => this.openRecent(workspaces, files)); } - private openRecent(recentWorkspaces: (IWorkspaceIdentifier | string)[], recentFiles: string[]): void { + private openRecent(recentWorkspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[], recentFiles: string[]): void { - function toPick(arg1: IWorkspaceIdentifier | string, separator: ISeparator, isFolder: boolean, environmentService: IEnvironmentService): IFilePickOpenEntry { + function toPick(arg1: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, separator: ISeparator, isFolder: boolean, environmentService: IEnvironmentService): IFilePickOpenEntry { const path = (typeof arg1 === 'string') ? arg1 : arg1.configPath; const label = (typeof arg1 === 'string') ? paths.basename(path) : getWorkspaceLabel(environmentService, arg1); const description = (typeof arg1 === 'string') ? getPathLabel(paths.dirname(path), null, environmentService) : void 0; @@ -691,7 +691,7 @@ export abstract class BaseOpenRecentAction extends Action { }; } - const runPick = (arg1: IWorkspaceIdentifier | string, context: IEntryRunContext) => { + const runPick = (arg1: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier, context: IEntryRunContext) => { const forceNewWindow = context.keymods.indexOf(KeyMod.CtrlCmd) >= 0; this.windowsService.openWindow([typeof arg1 === 'string' ? arg1 : arg1.configPath], { forceNewWindow }); }; diff --git a/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts b/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts index ad59cdd7b3c..821860aca7f 100644 --- a/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts +++ b/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts @@ -39,7 +39,7 @@ import { registerColor, focusBorder, textLinkForeground, textLinkActiveForegroun import { getExtraColor } from 'vs/workbench/parts/welcome/walkThrough/node/walkThroughUtils'; import { IExtensionsWorkbenchService } from 'vs/workbench/parts/extensions/common/extensions'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { IWorkspaceIdentifier, getWorkspaceLabel } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, getWorkspaceLabel, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; used(); @@ -201,7 +201,7 @@ class WelcomePage { .then(null, onUnexpectedError); } - private onReady(container: HTMLElement, recentlyOpened: TPromise<{ files: string[]; workspaces: (IWorkspaceIdentifier | string)[]; }>, installedExtensions: TPromise): void { + private onReady(container: HTMLElement, recentlyOpened: TPromise<{ files: string[]; workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]; }>, installedExtensions: TPromise): void { const enabled = isWelcomePageEnabled(this.configurationService); const showOnStartup = container.querySelector('#showOnStartup'); if (enabled) { diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 4b825bdf8ce..c4e814f7220 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -54,7 +54,7 @@ import { IThemeService } from 'vs/platform/theme/common/themeService'; import { isLinux } from 'vs/base/common/platform'; import { generateUuid } from 'vs/base/common/uuid'; import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService'; -import { IWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; +import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from "vs/platform/workspaces/common/workspaces"; import { IRecentlyOpened } from "vs/platform/history/common/history"; export function createFileInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput { @@ -1026,7 +1026,7 @@ export class TestWindowsService implements IWindowsService { return TPromise.as(void 0); } - removeFromRecentlyOpened(arg1: (IWorkspaceIdentifier | string)[]): TPromise { + removeFromRecentlyOpened(arg1: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]): TPromise { return TPromise.as(void 0); }