diff --git a/src/vs/editor/standalone/browser/simpleServices.ts b/src/vs/editor/standalone/browser/simpleServices.ts index 23ed80e4d83..97f3a7f14aa 100644 --- a/src/vs/editor/standalone/browser/simpleServices.ts +++ b/src/vs/editor/standalone/browser/simpleServices.ts @@ -18,7 +18,7 @@ import { KeybindingResolver } from 'vs/platform/keybinding/common/keybindingReso import { IKeybindingEvent, KeybindingSource, IKeyboardEvent } from 'vs/platform/keybinding/common/keybinding'; import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IConfirmation, IMessageService } from 'vs/platform/message/common/message'; -import { IWorkspaceContextService, IWorkspace, WorkbenchState, WorkspaceFolder, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, IWorkspace, WorkbenchState, IWorkspaceFolder, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; import * as editorCommon from 'vs/editor/common/editorCommon'; import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser'; import { Selection } from 'vs/editor/common/core/selection'; @@ -552,7 +552,7 @@ export class SimpleWorkspaceContextService implements IWorkspaceContextService { return WorkbenchState.EMPTY; } - public getWorkspaceFolder(resource: URI): WorkspaceFolder { + public getWorkspaceFolder(resource: URI): IWorkspaceFolder { return resource && resource.scheme === SimpleWorkspaceContextService.SCHEME ? this.workspace.folders[0] : void 0; } @@ -560,7 +560,7 @@ export class SimpleWorkspaceContextService implements IWorkspaceContextService { return resource && resource.scheme === SimpleWorkspaceContextService.SCHEME; } - public toResource(workspaceRelativePath: string, workspaceFolder: WorkspaceFolder): URI { + public toResource(workspaceRelativePath: string, workspaceFolder: IWorkspaceFolder): URI { return URI.file(workspaceRelativePath); } diff --git a/src/vs/platform/workspace/common/workspace.ts b/src/vs/platform/workspace/common/workspace.ts index b03e37e9e5f..755eb652c21 100644 --- a/src/vs/platform/workspace/common/workspace.ts +++ b/src/vs/platform/workspace/common/workspace.ts @@ -22,9 +22,9 @@ export enum WorkbenchState { } export interface IWorkspaceFoldersChangeEvent { - added: WorkspaceFolder[]; - removed: WorkspaceFolder[]; - changed: WorkspaceFolder[]; + added: IWorkspaceFolder[]; + removed: IWorkspaceFolder[]; + changed: IWorkspaceFolder[]; } export interface IWorkspaceContextService { @@ -64,7 +64,7 @@ export interface IWorkspaceContextService { * Returns the folder for the given resource from the workspace. * Can be null if there is no workspace or the resource is not inside the workspace. */ - getWorkspaceFolder(resource: URI): WorkspaceFolder; + getWorkspaceFolder(resource: URI): IWorkspaceFolder; /** * Return `true` if the current workspace has the given identifier otherwise `false`. @@ -79,7 +79,7 @@ export interface IWorkspaceContextService { /** * Given a workspace relative path and workspace folder, returns the resource with the absolute path. */ - toResource: (workspaceRelativePath: string, workspaceFolder: WorkspaceFolder) => URI; + toResource: (workspaceRelativePath: string, workspaceFolder: IWorkspaceFolder) => URI; } export interface IWorkspace { @@ -97,7 +97,7 @@ export interface IWorkspace { /** * Folders in the workspace. */ - readonly folders: WorkspaceFolder[]; + readonly folders: IWorkspaceFolder[]; /** * the location of the workspace configuration @@ -105,7 +105,7 @@ export interface IWorkspace { readonly configuration?: URI; } -export interface WorkspaceFolder { +export interface IWorkspaceFolder { /** * The associated URI for this workspace folder. @@ -131,13 +131,13 @@ export interface WorkspaceFolder { export class Workspace implements IWorkspace { - private _foldersMap: TrieMap = new TrieMap(); - private _folders: WorkspaceFolder[]; + private _foldersMap: TrieMap = new TrieMap(); + private _folders: IWorkspaceFolder[]; constructor( private _id: string, private _name: string = '', - folders: WorkspaceFolder[] = [], + folders: IWorkspaceFolder[] = [], private _configuration: URI = null, private _ctime?: number ) { @@ -152,11 +152,11 @@ export class Workspace implements IWorkspace { this.folders = workspace.folders; } - public get folders(): WorkspaceFolder[] { + public get folders(): IWorkspaceFolder[] { return this._folders; } - public set folders(folders: WorkspaceFolder[]) { + public set folders(folders: IWorkspaceFolder[]) { this._folders = folders; this.updateFoldersMap(); } @@ -185,7 +185,7 @@ export class Workspace implements IWorkspace { this._configuration = configuration; } - public getFolder(resource: URI): WorkspaceFolder { + public getFolder(resource: URI): IWorkspaceFolder { if (!resource) { return null; } @@ -194,7 +194,7 @@ export class Workspace implements IWorkspace { } private updateFoldersMap(): void { - this._foldersMap = new TrieMap(); + this._foldersMap = new TrieMap(); for (const folder of this.folders) { this._foldersMap.insert(folder.uri.toString(), folder); } @@ -205,13 +205,13 @@ export class Workspace implements IWorkspace { } } -export function toWorkspaceFolders(configuredFolders: IStoredWorkspaceFolder[], relativeTo?: URI): WorkspaceFolder[] { +export function toWorkspaceFolders(configuredFolders: IStoredWorkspaceFolder[], relativeTo?: URI): IWorkspaceFolder[] { let workspaceFolders = parseWorkspaceFolders(configuredFolders, relativeTo); return ensureUnique(coalesce(workspaceFolders)) .map(({ uri, raw, name }, index) => ({ uri, raw, name: name || paths.basename(uri.fsPath), index })); } -function parseWorkspaceFolders(configuredFolders: IStoredWorkspaceFolder[], relativeTo: URI): WorkspaceFolder[] { +function parseWorkspaceFolders(configuredFolders: IStoredWorkspaceFolder[], relativeTo: URI): IWorkspaceFolder[] { return configuredFolders.map((configuredFolder, index) => { const uri = toUri(configuredFolder.path, relativeTo); if (!uri) { @@ -233,6 +233,6 @@ function toUri(path: string, relativeTo: URI): URI { return null; } -function ensureUnique(folders: WorkspaceFolder[]): WorkspaceFolder[] { +function ensureUnique(folders: IWorkspaceFolder[]): IWorkspaceFolder[] { return distinct(folders, folder => isLinux ? folder.uri.fsPath : folder.uri.fsPath.toLowerCase()); } diff --git a/src/vs/platform/workspace/test/common/workspace.test.ts b/src/vs/platform/workspace/test/common/workspace.test.ts index f81c9186eb9..b25db238f1e 100644 --- a/src/vs/platform/workspace/test/common/workspace.test.ts +++ b/src/vs/platform/workspace/test/common/workspace.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import { Workspace, WorkspaceFolder, toWorkspaceFolders } from 'vs/platform/workspace/common/workspace'; +import { Workspace, IWorkspaceFolder, toWorkspaceFolders } from 'vs/platform/workspace/common/workspace'; import URI from 'vs/base/common/uri'; suite('Workspace', () => { @@ -191,7 +191,7 @@ suite('Workspace', () => { assert.equal(actual[2].name, 'test1'); }); - function aWorkspaceFolder(uri: URI, index: number = 0): WorkspaceFolder { + function aWorkspaceFolder(uri: URI, index: number = 0): IWorkspaceFolder { return { uri, raw: { path: uri.fsPath }, index, name: '' }; diff --git a/src/vs/platform/workspaces/common/workspaces.ts b/src/vs/platform/workspaces/common/workspaces.ts index bd9d29dc731..51b846f937f 100644 --- a/src/vs/platform/workspaces/common/workspaces.ts +++ b/src/vs/platform/workspaces/common/workspaces.ts @@ -14,7 +14,7 @@ import { isLinux } from 'vs/base/common/platform'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import Event from 'vs/base/common/event'; import { tildify, getPathLabel } from 'vs/base/common/labels'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; export const IWorkspacesMainService = createDecorator('workspacesMainService'); export const IWorkspacesService = createDecorator('workspacesService'); @@ -39,7 +39,7 @@ export interface IStoredWorkspaceFolder { } export interface IResolvedWorkspace extends IWorkspaceIdentifier { - folders: WorkspaceFolder[]; + folders: IWorkspaceFolder[]; } export interface IWorkspaceSavedEvent { diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index b2c0b08a943..5dfdba9d121 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -47,7 +47,7 @@ import { ITreeItem } from 'vs/workbench/common/views'; import { ThemeColor } from 'vs/platform/theme/common/themeService'; import { IDisposable } from 'vs/base/common/lifecycle'; import { SerializedError } from 'vs/base/common/errors'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IStat, IFileChange } from 'vs/platform/files/common/files'; export interface IEnvironment { @@ -65,7 +65,7 @@ export interface IEnvironment { export interface IWorkspaceData { id: string; name: string; - folders: WorkspaceFolder[]; + folders: IWorkspaceFolder[]; } export interface IInitData { diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 6cb4347fe67..687d891b493 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -17,7 +17,7 @@ import { ISuggestion } from 'vs/editor/common/modes'; import { Source } from 'vs/workbench/parts/debug/common/debugSource'; import { Range, IRange } from 'vs/editor/common/core/range'; import { RawContextKey, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; export const VIEWLET_ID = 'workbench.view.debug'; @@ -88,7 +88,7 @@ export interface IExpression extends IReplElement, IExpressionContainer { } export interface ISession { - root: WorkspaceFolder; + root: IWorkspaceFolder; stackTrace(args: DebugProtocol.StackTraceArguments): TPromise; exceptionInfo(args: DebugProtocol.ExceptionInfoArguments): TPromise; scopes(args: DebugProtocol.ScopesArguments): TPromise; @@ -422,7 +422,7 @@ export interface ILaunch { */ uri: uri; - workspace: WorkspaceFolder; + workspace: IWorkspaceFolder; /** * Returns a configuration with the specified name. @@ -585,12 +585,12 @@ export interface IDebugService { * Also saves all files, manages if compounds are present in the configuration * and calls the startSessionCommand if an adapter registered it. */ - startDebugging(root: WorkspaceFolder, configOrName?: IConfig | string, noDebug?: boolean): TPromise; + startDebugging(root: IWorkspaceFolder, configOrName?: IConfig | string, noDebug?: boolean): TPromise; /** * Creates a new debug process. Depending on the configuration will either 'launch' or 'attach'. */ - createProcess(root: WorkspaceFolder, config: IConfig): TPromise; + createProcess(root: IWorkspaceFolder, config: IConfig): TPromise; /** * Find process by ID. diff --git a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts index 5d892d5f946..cb3a63ce624 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts @@ -26,7 +26,7 @@ import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/plat import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IFileService } from 'vs/platform/files/common/files'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { IWorkspaceContextService, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IDebugConfigurationProvider, IRawAdapter, ICompound, IDebugConfiguration, DEBUG_SCHEME, IConfig, IEnvConfig, IGlobalConfig, IConfigurationManager, ILaunch } from 'vs/workbench/parts/debug/common/debug'; @@ -473,7 +473,7 @@ class Launch implements ILaunch { constructor( private configurationManager: ConfigurationManager, - public workspace: WorkspaceFolder, + public workspace: IWorkspaceFolder, @IFileService private fileService: IFileService, @IWorkbenchEditorService private editorService: IWorkbenchEditorService, @IConfigurationService private configurationService: IConfigurationService, diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 2370ea76f51..9ea9e9781bb 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -46,7 +46,7 @@ import { IPanelService } from 'vs/workbench/services/panel/common/panelService'; import { IPartService, Parts } from 'vs/workbench/services/part/common/partService'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { IWorkspaceContextService, WorkbenchState, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, WorkbenchState, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { ILogEntry, EXTENSION_LOG_BROADCAST_CHANNEL, EXTENSION_ATTACH_BROADCAST_CHANNEL, EXTENSION_TERMINATE_BROADCAST_CHANNEL, EXTENSION_CLOSE_EXTHOST_BROADCAST_CHANNEL, EXTENSION_RELOAD_BROADCAST_CHANNEL } from 'vs/platform/extensions/common/extensionHost'; import { IBroadcastService, IBroadcast } from 'vs/platform/broadcast/electron-browser/broadcastService'; @@ -623,7 +623,7 @@ export class DebugService implements debug.IDebugService { return this.model.evaluateWatchExpressions(this.viewModel.focusedProcess, this.viewModel.focusedStackFrame); } - public startDebugging(root: WorkspaceFolder, configOrName?: debug.IConfig | string, noDebug = false, topCompoundName?: string): TPromise { + public startDebugging(root: IWorkspaceFolder, configOrName?: debug.IConfig | string, noDebug = false, topCompoundName?: string): TPromise { // make sure to save all files and that the configuration is up to date return this.extensionService.activateByEvent('onDebug').then(() => this.textFileService.saveAll().then(() => this.configurationService.reloadConfiguration().then(() => @@ -730,7 +730,7 @@ export class DebugService implements debug.IDebugService { return null; } - public createProcess(root: WorkspaceFolder, config: debug.IConfig): TPromise { + public createProcess(root: IWorkspaceFolder, config: debug.IConfig): TPromise { return this.textFileService.saveAll().then(() => (this.configurationManager.selectedLaunch ? this.configurationManager.selectedLaunch.resolveConfiguration(config) : TPromise.as(config)).then(resolvedConfig => { if (!resolvedConfig) { @@ -800,7 +800,7 @@ export class DebugService implements debug.IDebugService { ); } - private doCreateProcess(root: WorkspaceFolder, configuration: debug.IConfig, sessionId = generateUuid()): TPromise { + private doCreateProcess(root: IWorkspaceFolder, configuration: debug.IConfig, sessionId = generateUuid()): TPromise { configuration.__sessionId = sessionId; this.updateStateAndEmit(sessionId, debug.State.Initializing); this.inDebugMode.set(true); @@ -925,7 +925,7 @@ export class DebugService implements debug.IDebugService { }); } - private runPreLaunchTask(root: WorkspaceFolder, taskName: string): TPromise { + private runPreLaunchTask(root: IWorkspaceFolder, taskName: string): TPromise { if (!taskName) { return TPromise.as(null); } diff --git a/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts b/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts index 035a4b72ad5..3a5f8153adc 100644 --- a/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts +++ b/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts @@ -22,7 +22,7 @@ import debug = require('vs/workbench/parts/debug/common/debug'); import { Adapter } from 'vs/workbench/parts/debug/node/debugAdapter'; import { V8Protocol } from 'vs/workbench/parts/debug/node/v8Protocol'; import { IOutputService } from 'vs/workbench/parts/output/common/output'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { ExtensionsChannelId } from 'vs/platform/extensionManagement/common/extensionManagement'; import { TerminalSupport } from 'vs/workbench/parts/debug/electron-browser/terminalSupport'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -71,7 +71,7 @@ export class RawDebugSession extends V8Protocol implements debug.ISession { private debugServerPort: number, private adapter: Adapter, private customTelemetryService: ITelemetryService, - public root: WorkspaceFolder, + public root: IWorkspaceFolder, @IMessageService private messageService: IMessageService, @ITelemetryService private telemetryService: ITelemetryService, @IOutputService private outputService: IOutputService, diff --git a/src/vs/workbench/parts/debug/node/debugAdapter.ts b/src/vs/workbench/parts/debug/node/debugAdapter.ts index faa649ea280..a403b824a7c 100644 --- a/src/vs/workbench/parts/debug/node/debugAdapter.ts +++ b/src/vs/workbench/parts/debug/node/debugAdapter.ts @@ -14,7 +14,7 @@ import * as objects from 'vs/base/common/objects'; import * as paths from 'vs/base/common/paths'; import * as platform from 'vs/base/common/platform'; import { IJSONSchema, IJSONSchemaSnippet } from 'vs/base/common/jsonSchema'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IConfig, IRawAdapter, IAdapterExecutable, INTERNAL_CONSOLE_OPTIONS_SCHEMA } from 'vs/workbench/parts/debug/common/debug'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; @@ -35,7 +35,7 @@ export class Adapter { public hasConfigurationProvider = false; - public getAdapterExecutable(root: WorkspaceFolder, verifyAgainstFS = true): TPromise { + public getAdapterExecutable(root: IWorkspaceFolder, verifyAgainstFS = true): TPromise { if (this.rawAdapter.adapterExecutableCommand) { return this.commandService.executeCommand(this.rawAdapter.adapterExecutableCommand, root.uri.toString()).then(ad => { diff --git a/src/vs/workbench/parts/debug/test/common/mockDebug.ts b/src/vs/workbench/parts/debug/test/common/mockDebug.ts index 177358f5521..26b2b0b7c71 100644 --- a/src/vs/workbench/parts/debug/test/common/mockDebug.ts +++ b/src/vs/workbench/parts/debug/test/common/mockDebug.ts @@ -7,7 +7,7 @@ import uri from 'vs/base/common/uri'; import Event, { Emitter } from 'vs/base/common/event'; import { TPromise } from 'vs/base/common/winjs.base'; import * as debug from 'vs/workbench/parts/debug/common/debug'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; export class MockDebugService implements debug.IDebugService { public _serviceBrand: any; @@ -88,11 +88,11 @@ export class MockDebugService implements debug.IDebugService { return TPromise.as(null); } - public startDebugging(root: WorkspaceFolder, configOrName?: debug.IConfig | string, noDebug?: boolean): TPromise { + public startDebugging(root: IWorkspaceFolder, configOrName?: debug.IConfig | string, noDebug?: boolean): TPromise { return TPromise.as(null); } - public createProcess(root: WorkspaceFolder, config: debug.IConfig): TPromise { + public createProcess(root: IWorkspaceFolder, config: debug.IConfig): TPromise { return TPromise.as(null); } @@ -129,7 +129,7 @@ export class MockSession implements debug.ISession { return 'mockrawsession'; } - public root: WorkspaceFolder; + public root: IWorkspaceFolder; public getLengthInSeconds(): number { return 100; diff --git a/src/vs/workbench/parts/extensions/browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/browser/extensionsActions.ts index d631f79db21..531618cd8f2 100644 --- a/src/vs/workbench/parts/extensions/browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/browser/extensionsActions.ts @@ -26,7 +26,7 @@ import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { Query } from 'vs/workbench/parts/extensions/common/extensionQuery'; import { IFileService, IContent } from 'vs/platform/files/common/files'; -import { IWorkspaceContextService, WorkbenchState, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, WorkbenchState, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWindowService } from 'vs/platform/windows/common/windows'; import { IExtensionService, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import URI from 'vs/base/common/uri'; @@ -1410,7 +1410,7 @@ export class ConfigureWorkspaceFolderRecommendedExtensionsAction extends Abstrac } public run(): TPromise { - return this.commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND) + return this.commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND) .then(workspaceFolder => { if (workspaceFolder) { return this.openExtensionsFile(this.contextService.toResource(paths.join('.vscode', 'extensions.json'), workspaceFolder)); diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts index 0676fc1ba02..538f56523ca 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts @@ -19,7 +19,7 @@ import { IChoiceService, IMessageService } from 'vs/platform/message/common/mess import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ShowRecommendedExtensionsAction, ShowWorkspaceRecommendedExtensionsAction } from 'vs/workbench/parts/extensions/browser/extensionsActions'; import Severity from 'vs/base/common/severity'; -import { IWorkspaceContextService, WorkspaceFolder, IWorkspace } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, IWorkspaceFolder, IWorkspace } from 'vs/platform/workspace/common/workspace'; import { Schemas } from 'vs/base/common/network'; import { IFileService } from 'vs/platform/files/common/files'; import { IExtensionsConfiguration, ConfigurationKey } from 'vs/workbench/parts/extensions/common/extensions'; @@ -84,7 +84,7 @@ export class ExtensionTipsService implements IExtensionTipsService { return TPromise.as([]); } - private resolveWorkspaceFolderRecommendations(workspaceFolder: WorkspaceFolder): TPromise { + private resolveWorkspaceFolderRecommendations(workspaceFolder: IWorkspaceFolder): TPromise { return this.fileService.resolveContent(this.contextService.toResource(paths.join('.vscode', 'extensions.json'), workspaceFolder)) .then(content => this.processWorkspaceRecommendations(json.parse(content.value, [])), err => []); } diff --git a/src/vs/workbench/parts/files/browser/views/explorerView.ts b/src/vs/workbench/parts/files/browser/views/explorerView.ts index b2b8d890596..755418e131e 100644 --- a/src/vs/workbench/parts/files/browser/views/explorerView.ts +++ b/src/vs/workbench/parts/files/browser/views/explorerView.ts @@ -32,7 +32,7 @@ import { FileStat, Model } from 'vs/workbench/parts/files/common/explorerModel'; import { IListService } from 'vs/platform/list/browser/listService'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IPartService } from 'vs/workbench/services/part/common/partService'; -import { IWorkspaceContextService, WorkbenchState, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, WorkbenchState, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -680,7 +680,7 @@ export class ExplorerView extends CollapsibleView { })); } - private refreshFromEvent(newRoots: WorkspaceFolder[] = []): void { + private refreshFromEvent(newRoots: IWorkspaceFolder[] = []): void { if (this.isVisible()) { this.explorerRefreshDelayer.trigger(() => { if (!this.explorerViewer.getHighlight()) { diff --git a/src/vs/workbench/parts/preferences/browser/preferencesActions.ts b/src/vs/workbench/parts/preferences/browser/preferencesActions.ts index c1e222a04dd..f120d63a291 100644 --- a/src/vs/workbench/parts/preferences/browser/preferencesActions.ts +++ b/src/vs/workbench/parts/preferences/browser/preferencesActions.ts @@ -12,7 +12,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { IModeService } from 'vs/editor/common/services/modeService'; import { IQuickOpenService, IPickOpenEntry, IFilePickOpenEntry } from 'vs/platform/quickOpen/common/quickOpen'; import { IPreferencesService } from 'vs/workbench/parts/preferences/common/preferences'; -import { IWorkspaceContextService, WorkbenchState, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, WorkbenchState, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { PICK_WORKSPACE_FOLDER_COMMAND } from 'vs/workbench/browser/actions/workspaceActions'; @@ -128,7 +128,7 @@ export class OpenFolderSettingsAction extends Action { } public run(): TPromise { - return this.commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND) + return this.commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND) .then(workspaceFolder => { if (workspaceFolder) { return this.preferencesService.openFolderSettings(workspaceFolder.uri); diff --git a/src/vs/workbench/parts/tasks/common/taskService.ts b/src/vs/workbench/parts/tasks/common/taskService.ts index 3710927f7c4..57ca26da803 100644 --- a/src/vs/workbench/parts/tasks/common/taskService.ts +++ b/src/vs/workbench/parts/tasks/common/taskService.ts @@ -10,7 +10,7 @@ import { IEventEmitter } from 'vs/base/common/eventEmitter'; import { LinkedMap } from 'vs/base/common/map'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { Task, ContributedTask, CustomTask, TaskSet, TaskSorter } from 'vs/workbench/parts/tasks/common/tasks'; import { ITaskSummary, TaskEvent, TaskType, TaskTerminateResponse } from 'vs/workbench/parts/tasks/common/taskSystem'; @@ -57,7 +57,7 @@ export interface ITaskService extends IEventEmitter { /** * @param identifier The task's name, label or defined identifier. */ - getTask(workspaceFolder: WorkspaceFolder | string, identifier: string): TPromise; + getTask(workspaceFolder: IWorkspaceFolder | string, identifier: string): TPromise; getTasksForGroup(group: string): TPromise; getRecentlyUsedTasks(): LinkedMap; createSorter(): TaskSorter; diff --git a/src/vs/workbench/parts/tasks/common/taskSystem.ts b/src/vs/workbench/parts/tasks/common/taskSystem.ts index 11b78e506ef..50c34926ecf 100644 --- a/src/vs/workbench/parts/tasks/common/taskSystem.ts +++ b/src/vs/workbench/parts/tasks/common/taskSystem.ts @@ -9,7 +9,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { TerminateResponse } from 'vs/base/common/processes'; import { IEventEmitter } from 'vs/base/common/eventEmitter'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { Task } from './tasks'; @@ -104,7 +104,7 @@ export interface TaskEvent { } export interface ITaskResolver { - resolve(workspaceFolder: WorkspaceFolder, identifier: string): Task; + resolve(workspaceFolder: IWorkspaceFolder, identifier: string): Task; } export interface TaskTerminateResponse extends TerminateResponse { diff --git a/src/vs/workbench/parts/tasks/common/tasks.ts b/src/vs/workbench/parts/tasks/common/tasks.ts index 898c6b9b5d3..12c20adf3a3 100644 --- a/src/vs/workbench/parts/tasks/common/tasks.ts +++ b/src/vs/workbench/parts/tasks/common/tasks.ts @@ -11,7 +11,7 @@ import * as Objects from 'vs/base/common/objects'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ProblemMatcher } from 'vs/platform/markers/common/problemMatcher'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; export interface ShellConfiguration { /** @@ -231,7 +231,7 @@ export namespace TaskSourceKind { } export interface TaskSourceConfigElement { - workspaceFolder: WorkspaceFolder; + workspaceFolder: IWorkspaceFolder; file: string; index: number; element: any; @@ -249,7 +249,7 @@ export interface ExtensionTaskSource { readonly label: string; readonly extension: string; readonly scope: TaskScope; - readonly workspaceFolder: WorkspaceFolder | undefined; + readonly workspaceFolder: IWorkspaceFolder | undefined; } export interface ExtensionTaskSourceTransfer { @@ -269,7 +269,7 @@ export interface TaskIdentifier { } export interface TaskDependency { - workspaceFolder: WorkspaceFolder; + workspaceFolder: IWorkspaceFolder; task: string; } @@ -432,7 +432,7 @@ export namespace Task { } } - export function getWorkspaceFolder(task: Task): WorkspaceFolder | undefined { + export function getWorkspaceFolder(task: Task): IWorkspaceFolder | undefined { if (CustomTask.is(task)) { return task._source.config.workspaceFolder; } else if (ContributedTask.is(task)) { @@ -506,7 +506,7 @@ export class TaskSorter { private _order: Map = new Map(); - constructor(workspaceFolders: WorkspaceFolder[]) { + constructor(workspaceFolders: IWorkspaceFolder[]) { for (let i = 0; i < workspaceFolders.length; i++) { this._order.set(workspaceFolders[i].uri.toString(), i); } diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index b86ab02f64c..a23135e551a 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -66,7 +66,7 @@ import { IPartService } from 'vs/workbench/services/part/common/partService'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; import { IConfigurationEditingService, ConfigurationTarget, IConfigurationValue } from 'vs/workbench/services/configuration/common/configurationEditing'; -import { IWorkspaceContextService, WorkbenchState, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, WorkbenchState, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { IOutputService, IOutputChannelRegistry, Extensions as OutputExt, IOutputChannel } from 'vs/workbench/parts/output/common/output'; @@ -618,11 +618,11 @@ interface WorkspaceTaskResult { } interface WorkspaceFolderTaskResult extends WorkspaceTaskResult { - workspaceFolder: WorkspaceFolder; + workspaceFolder: IWorkspaceFolder; } interface WorkspaceFolderConfigurationResult { - workspaceFolder: WorkspaceFolder; + workspaceFolder: IWorkspaceFolder; config: TaskConfig.ExternalTaskRunnerConfiguration; hasErrors: boolean; } @@ -641,7 +641,7 @@ class TaskMap { this._store.forEach(callback); } - public get(workspaceFolder: WorkspaceFolder | string): Task[] { + public get(workspaceFolder: IWorkspaceFolder | string): Task[] { let result: Task[] = Types.isString(workspaceFolder) ? this._store.get(workspaceFolder) : this._store.get(workspaceFolder.uri.toString()); if (!result) { result = []; @@ -650,11 +650,11 @@ class TaskMap { return result; } - public has(workspaceFolder: WorkspaceFolder): boolean { + public has(workspaceFolder: IWorkspaceFolder): boolean { return this._store.has(workspaceFolder.uri.toString()); } - public add(workspaceFolder: WorkspaceFolder | string, ...task: Task[]): void { + public add(workspaceFolder: IWorkspaceFolder | string, ...task: Task[]): void { let values = Types.isString(workspaceFolder) ? this._store.get(workspaceFolder) : this._store.get(workspaceFolder.uri.toString()); if (!values) { values = []; @@ -702,7 +702,7 @@ class TaskService extends EventEmitter implements ITaskService { private _configHasErrors: boolean; private _schemaVersion: JsonSchemaVersion; private _executionEngine: ExecutionEngine; - private _workspaceFolders: WorkspaceFolder[]; + private _workspaceFolders: IWorkspaceFolder[]; private _providers: Map; private _workspaceTasksPromise: TPromise>; @@ -860,7 +860,7 @@ class TaskService extends EventEmitter implements ITaskService { return this._providers.delete(handle); } - public getTask(folder: WorkspaceFolder | string, alias: string): TPromise { + public getTask(folder: IWorkspaceFolder | string, alias: string): TPromise { return this.getGroupedTasks().then((map) => { let values = map.get(folder); if (!values) { @@ -1217,7 +1217,7 @@ class TaskService extends EventEmitter implements ITaskService { }); } - private writeConfiguration(workspaceFolder: WorkspaceFolder, value: IConfigurationValue): TPromise { + private writeConfiguration(workspaceFolder: IWorkspaceFolder, value: IConfigurationValue): TPromise { if (this.contextService.getWorkbenchState() === WorkbenchState.FOLDER) { return this.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, value); } else if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) { @@ -1272,7 +1272,7 @@ class TaskService extends EventEmitter implements ITaskService { } }); let resolver: ITaskResolver = { - resolve: (workspaceFolder: WorkspaceFolder, alias: string) => { + resolve: (workspaceFolder: IWorkspaceFolder, alias: string) => { let data = resolverData.get(workspaceFolder.uri.toString()); if (!data) { return undefined; @@ -1328,7 +1328,7 @@ class TaskService extends EventEmitter implements ITaskService { } }); return { - resolve: (workspaceFolder: WorkspaceFolder, alias: string) => { + resolve: (workspaceFolder: IWorkspaceFolder, alias: string) => { let data = resolverData.get(workspaceFolder.uri.toString()); if (!data) { return undefined; @@ -1599,7 +1599,7 @@ class TaskService extends EventEmitter implements ITaskService { } } - private computeWorkspaceFolderTasks(workspaceFolder: WorkspaceFolder): TPromise { + private computeWorkspaceFolderTasks(workspaceFolder: IWorkspaceFolder): TPromise { return (this._executionEngine === ExecutionEngine.Process ? this.computeLegacyConfiguration(workspaceFolder) : this.computeConfiguration(workspaceFolder)). @@ -1633,12 +1633,12 @@ class TaskService extends EventEmitter implements ITaskService { }); } - private computeConfiguration(workspaceFolder: WorkspaceFolder): TPromise { + private computeConfiguration(workspaceFolder: IWorkspaceFolder): TPromise { let { config, hasParseErrors } = this.getConfiguration(workspaceFolder); return TPromise.as({ workspaceFolder, config, hasErrors: hasParseErrors }); } - private computeLegacyConfiguration(workspaceFolder: WorkspaceFolder): TPromise { + private computeLegacyConfiguration(workspaceFolder: IWorkspaceFolder): TPromise { let { config, hasParseErrors } = this.getConfiguration(workspaceFolder); if (hasParseErrors) { return TPromise.as({ workspaceFolder: workspaceFolder, hasErrors: true, config: undefined }); @@ -1678,13 +1678,13 @@ class TaskService extends EventEmitter implements ITaskService { } } - private computeWorkspaceFolders(): [WorkspaceFolder[], ExecutionEngine, JsonSchemaVersion] { - let workspaceFolders: WorkspaceFolder[] = []; + private computeWorkspaceFolders(): [IWorkspaceFolder[], ExecutionEngine, JsonSchemaVersion] { + let workspaceFolders: IWorkspaceFolder[] = []; let executionEngine = ExecutionEngine.Terminal; let schemaVersion = JsonSchemaVersion.V2_0_0; if (this.contextService.getWorkbenchState() === WorkbenchState.FOLDER) { - let workspaceFolder: WorkspaceFolder = this.contextService.getWorkspace().folders[0]; + let workspaceFolder: IWorkspaceFolder = this.contextService.getWorkspace().folders[0]; workspaceFolders.push(workspaceFolder); executionEngine = this.computeExecutionEngine(workspaceFolder); schemaVersion = this.computeJsonSchemaVersion(workspaceFolder); @@ -1703,7 +1703,7 @@ class TaskService extends EventEmitter implements ITaskService { return [workspaceFolders, executionEngine, schemaVersion]; } - private computeExecutionEngine(workspaceFolder: WorkspaceFolder): ExecutionEngine { + private computeExecutionEngine(workspaceFolder: IWorkspaceFolder): ExecutionEngine { let { config } = this.getConfiguration(workspaceFolder); if (!config) { return ExecutionEngine._default; @@ -1711,7 +1711,7 @@ class TaskService extends EventEmitter implements ITaskService { return TaskConfig.ExecutionEngine.from(config); } - private computeJsonSchemaVersion(workspaceFolder: WorkspaceFolder): JsonSchemaVersion { + private computeJsonSchemaVersion(workspaceFolder: IWorkspaceFolder): JsonSchemaVersion { let { config } = this.getConfiguration(workspaceFolder); if (!config) { return JsonSchemaVersion.V2_0_0; @@ -1719,7 +1719,7 @@ class TaskService extends EventEmitter implements ITaskService { return TaskConfig.JsonSchemaVersion.from(config); } - private getConfiguration(workspaceFolder: WorkspaceFolder): { config: TaskConfig.ExternalTaskRunnerConfiguration; hasParseErrors: boolean } { + private getConfiguration(workspaceFolder: IWorkspaceFolder): { config: TaskConfig.ExternalTaskRunnerConfiguration; hasParseErrors: boolean } { let result = this.contextService.getWorkbenchState() !== WorkbenchState.EMPTY ? this.configurationService.getConfiguration('tasks', { resource: workspaceFolder.uri }) : undefined; diff --git a/src/vs/workbench/parts/tasks/node/taskConfiguration.ts b/src/vs/workbench/parts/tasks/node/taskConfiguration.ts index 5720bd9573e..fe0429bd85e 100644 --- a/src/vs/workbench/parts/tasks/node/taskConfiguration.ts +++ b/src/vs/workbench/parts/tasks/node/taskConfiguration.ts @@ -20,7 +20,7 @@ import { isNamedProblemMatcher, ProblemMatcherRegistry } from 'vs/platform/markers/common/problemMatcher'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import * as Tasks from '../common/tasks'; import { TaskDefinitionRegistry } from '../common/taskDefinitionRegistry'; @@ -563,7 +563,7 @@ function _freeze(this: void, target: T, properties: MetaData[]): Read } interface ParseContext { - workspaceFolder: WorkspaceFolder; + workspaceFolder: IWorkspaceFolder; problemReporter: IProblemReporter; namedProblemMatchers: IStringDictionary; uuidMap: UUIDMap; @@ -1682,11 +1682,11 @@ class UUIDMap { class ConfigurationParser { - private workspaceFolder: WorkspaceFolder; + private workspaceFolder: IWorkspaceFolder; private problemReporter: IProblemReporter; private uuidMap: UUIDMap; - constructor(workspaceFolder: WorkspaceFolder, problemReporter: IProblemReporter, uuidMap: UUIDMap) { + constructor(workspaceFolder: IWorkspaceFolder, problemReporter: IProblemReporter, uuidMap: UUIDMap) { this.workspaceFolder = workspaceFolder; this.problemReporter = problemReporter; this.uuidMap = uuidMap; @@ -1791,7 +1791,7 @@ class ConfigurationParser { } let uuidMaps: Map = new Map(); -export function parse(workspaceFolder: WorkspaceFolder, configuration: ExternalTaskRunnerConfiguration, logger: IProblemReporter): ParseResult { +export function parse(workspaceFolder: IWorkspaceFolder, configuration: ExternalTaskRunnerConfiguration, logger: IProblemReporter): ParseResult { let uuidMap = uuidMaps.get(workspaceFolder.uri.toString()); if (!uuidMap) { uuidMap = new UUIDMap(); diff --git a/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts b/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts index 715c3e1c11a..8ffa18cdb49 100644 --- a/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts +++ b/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts @@ -12,12 +12,12 @@ import * as UUID from 'vs/base/common/uuid'; import * as Platform from 'vs/base/common/platform'; import { ValidationStatus } from 'vs/base/common/parsers'; import { ProblemMatcher, FileLocationKind, ProblemPattern, ApplyToKind } from 'vs/platform/markers/common/problemMatcher'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import * as Tasks from 'vs/workbench/parts/tasks/common/tasks'; import { parse, ParseResult, IProblemReporter, ExternalTaskRunnerConfiguration, CustomTask } from 'vs/workbench/parts/tasks/node/taskConfiguration'; -const workspaceFolder: WorkspaceFolder = { +const workspaceFolder: IWorkspaceFolder = { uri: URI.file('/workspace/folderOne'), name: 'folderOne', index: 0, diff --git a/src/vs/workbench/services/configuration/node/configuration.ts b/src/vs/workbench/services/configuration/node/configuration.ts index a5199b8236c..5fb8a8f0b77 100644 --- a/src/vs/workbench/services/configuration/node/configuration.ts +++ b/src/vs/workbench/services/configuration/node/configuration.ts @@ -17,7 +17,7 @@ import { RunOnceScheduler } from 'vs/base/common/async'; import { readFile, stat, writeFile } from 'vs/base/node/pfs'; import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import * as extfs from 'vs/base/node/extfs'; -import { IWorkspaceContextService, IWorkspace, Workspace, WorkbenchState, WorkspaceFolder, toWorkspaceFolders, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, IWorkspace, Workspace, WorkbenchState, IWorkspaceFolder, toWorkspaceFolders, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; import { FileChangeType, FileChangesEvent } from 'vs/platform/files/common/files'; import { isLinux } from 'vs/base/common/platform'; import { ConfigWatcher } from 'vs/base/node/config'; @@ -290,7 +290,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat return WorkbenchState.EMPTY; } - public getWorkspaceFolder(resource: URI): WorkspaceFolder { + public getWorkspaceFolder(resource: URI): IWorkspaceFolder { return this.workspace.getFolder(resource); } @@ -308,7 +308,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat return false; } - public toResource(workspaceRelativePath: string, workspaceFolder: WorkspaceFolder): URI { + public toResource(workspaceRelativePath: string, workspaceFolder: IWorkspaceFolder): URI { return URI.file(paths.join(workspaceFolder.uri.fsPath, workspaceRelativePath)); } @@ -443,7 +443,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat } } - private compareFolders(currentFolders: WorkspaceFolder[], newFolders: WorkspaceFolder[]): IWorkspaceFoldersChangeEvent { + private compareFolders(currentFolders: IWorkspaceFolder[], newFolders: IWorkspaceFolder[]): IWorkspaceFoldersChangeEvent { const result = { added: [], removed: [], changed: [] }; result.added = newFolders.filter(newFolder => !currentFolders.some(currentFolder => newFolder.uri.toString() === currentFolder.uri.toString())); @@ -472,14 +472,14 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat this.initCachesForFolders(this.workspace.folders); } - private initCachesForFolders(folders: WorkspaceFolder[]): void { + private initCachesForFolders(folders: IWorkspaceFolder[]): void { for (const folder of folders) { this.cachedFolderConfigs.set(folder.uri, this._register(new FolderConfiguration(folder.uri, this.workspaceSettingsRootFolder, this.getWorkbenchState() === WorkbenchState.WORKSPACE ? ConfigurationScope.RESOURCE : ConfigurationScope.WINDOW))); this.updateFolderConfiguration(folder, new FolderConfigurationModel(new FolderSettingsModel(null), [], ConfigurationScope.RESOURCE), false); } } - private updateConfiguration(folders: WorkspaceFolder[] = this.workspace.folders): TPromise { + private updateConfiguration(folders: IWorkspaceFolder[] = this.workspace.folders): TPromise { return TPromise.join([...folders.map(folder => this.cachedFolderConfigs.get(folder.uri).loadConfiguration() .then(configuration => this.updateFolderConfiguration(folder, configuration, true)))]) .then(changed => changed.reduce((result, value) => result || value, false)) @@ -545,7 +545,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat return TPromise.as(false); } - private updateFolderConfiguration(folder: WorkspaceFolder, folderConfiguration: FolderConfigurationModel, compare: boolean): boolean { + private updateFolderConfiguration(folder: IWorkspaceFolder, folderConfiguration: FolderConfigurationModel, compare: boolean): boolean { let configurationChanged = this._configuration.updateFolderConfiguration(folder.uri, folderConfiguration, compare); if (this.getWorkbenchState() === WorkbenchState.FOLDER) { // Workspace configuration changed diff --git a/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts b/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts index 9e191e760ec..e2dc0febf79 100644 --- a/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts +++ b/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts @@ -6,7 +6,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IStringDictionary } from 'vs/base/common/collections'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; export const IConfigurationResolverService = createDecorator('configurationResolverService'); @@ -14,9 +14,9 @@ export interface IConfigurationResolverService { _serviceBrand: any; // TODO@Isidor improve this API - resolve(root: WorkspaceFolder, value: string): string; - resolve(root: WorkspaceFolder, value: string[]): string[]; - resolve(root: WorkspaceFolder, value: IStringDictionary): IStringDictionary; - resolveAny(root: WorkspaceFolder, value: T): T; + resolve(root: IWorkspaceFolder, value: string): string; + resolve(root: IWorkspaceFolder, value: string[]): string[]; + resolve(root: IWorkspaceFolder, value: IStringDictionary): IStringDictionary; + resolveAny(root: IWorkspaceFolder, value: T): T; resolveInteractiveVariables(configuration: any, interactiveVariablesMap: { [key: string]: string }): TPromise; } diff --git a/src/vs/workbench/services/configurationResolver/node/configurationResolverService.ts b/src/vs/workbench/services/configurationResolver/node/configurationResolverService.ts index 183fa02bf13..d5bb08cfbb4 100644 --- a/src/vs/workbench/services/configurationResolver/node/configurationResolverService.ts +++ b/src/vs/workbench/services/configurationResolver/node/configurationResolverService.ts @@ -13,14 +13,14 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment' import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { ICommonCodeEditor } from 'vs/editor/common/editorCommon'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { toResource } from 'vs/workbench/common/editor'; export class ConfigurationResolverService implements IConfigurationResolverService { _serviceBrand: any; private _execPath: string; - private _lastWorkspaceFolder: WorkspaceFolder; + private _lastWorkspaceFolder: IWorkspaceFolder; constructor( envVariables: { [key: string]: string }, @@ -109,10 +109,10 @@ export class ConfigurationResolverService implements IConfigurationResolverServi return paths.normalize(fileResource.fsPath, true); } - public resolve(root: WorkspaceFolder, value: string): string; - public resolve(root: WorkspaceFolder, value: string[]): string[]; - public resolve(root: WorkspaceFolder, value: IStringDictionary): IStringDictionary; - public resolve(root: WorkspaceFolder, value: any): any { + public resolve(root: IWorkspaceFolder, value: string): string; + public resolve(root: IWorkspaceFolder, value: string[]): string[]; + public resolve(root: IWorkspaceFolder, value: IStringDictionary): IStringDictionary; + public resolve(root: IWorkspaceFolder, value: any): any { try { this._lastWorkspaceFolder = root; if (types.isString(value)) { @@ -128,8 +128,8 @@ export class ConfigurationResolverService implements IConfigurationResolverServi } } - public resolveAny(root: WorkspaceFolder, value: T): T; - public resolveAny(root: WorkspaceFolder, value: any): any { + public resolveAny(root: IWorkspaceFolder, value: T): T; + public resolveAny(root: IWorkspaceFolder, value: any): any { try { this._lastWorkspaceFolder = root; if (types.isString(value)) { @@ -145,7 +145,7 @@ export class ConfigurationResolverService implements IConfigurationResolverServi } } - private resolveString(root: WorkspaceFolder, value: string): string { + private resolveString(root: IWorkspaceFolder, value: string): string { let regexp = /\$\{(.*?)\}/g; const originalValue = value; const resolvedString = value.replace(regexp, (match: string, name: string) => { @@ -160,7 +160,7 @@ export class ConfigurationResolverService implements IConfigurationResolverServi return this.resolveConfigVariable(root, resolvedString, originalValue); } - private resolveConfigVariable(root: WorkspaceFolder, value: string, originalValue: string): string { + private resolveConfigVariable(root: IWorkspaceFolder, value: string, originalValue: string): string { const replacer = (match: string, name: string) => { let config = this.configurationService.getConfiguration(); let newValue: any; @@ -191,7 +191,7 @@ export class ConfigurationResolverService implements IConfigurationResolverServi return value.replace(/\$\{config:(.+?)\}/g, replacer); } - private resolveLiteral(root: WorkspaceFolder, values: IStringDictionary | string[]>): IStringDictionary | string[]> { + private resolveLiteral(root: IWorkspaceFolder, values: IStringDictionary | string[]>): IStringDictionary | string[]> { let result: IStringDictionary | string[]> = Object.create(null); Object.keys(values).forEach(key => { let value = values[key]; @@ -200,8 +200,8 @@ export class ConfigurationResolverService implements IConfigurationResolverServi return result; } - private resolveAnyLiteral(root: WorkspaceFolder, values: T): T; - private resolveAnyLiteral(root: WorkspaceFolder, values: any): any { + private resolveAnyLiteral(root: IWorkspaceFolder, values: T): T; + private resolveAnyLiteral(root: IWorkspaceFolder, values: any): any { let result: IStringDictionary | string[]> = Object.create(null); Object.keys(values).forEach(key => { let value = values[key]; @@ -210,12 +210,12 @@ export class ConfigurationResolverService implements IConfigurationResolverServi return result; } - private resolveArray(root: WorkspaceFolder, value: string[]): string[] { + private resolveArray(root: IWorkspaceFolder, value: string[]): string[] { return value.map(s => this.resolveString(root, s)); } - private resolveAnyArray(root: WorkspaceFolder, value: T[]): T[]; - private resolveAnyArray(root: WorkspaceFolder, value: any[]): any[] { + private resolveAnyArray(root: IWorkspaceFolder, value: T[]): T[]; + private resolveAnyArray(root: IWorkspaceFolder, value: any[]): any[] { return value.map(s => this.resolveAny(root, s)); } diff --git a/src/vs/workbench/services/configurationResolver/test/node/configurationResolverService.test.ts b/src/vs/workbench/services/configurationResolver/test/node/configurationResolverService.test.ts index 139e1c758b6..0f8f279cda8 100644 --- a/src/vs/workbench/services/configurationResolver/test/node/configurationResolverService.test.ts +++ b/src/vs/workbench/services/configurationResolver/test/node/configurationResolverService.test.ts @@ -11,7 +11,7 @@ import { IConfigurationService, getConfigurationValue, IConfigurationOverrides, import { ICommandService } from 'vs/platform/commands/common/commands'; import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; import { ConfigurationResolverService } from 'vs/workbench/services/configurationResolver/node/configurationResolverService'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { TestEnvironmentService, TestEditorService } from 'vs/workbench/test/workbenchTestServices'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; @@ -20,7 +20,7 @@ suite('Configuration Resolver Service', () => { let envVariables: { [key: string]: string } = { key1: 'Value for Key1', key2: 'Value for Key2' }; let mockCommandService: MockCommandService; let editorService: TestEditorService; - let workspace: WorkspaceFolder; + let workspace: IWorkspaceFolder; setup(() => { diff --git a/src/vs/workbench/services/files/test/node/fileService.test.ts b/src/vs/workbench/services/files/test/node/fileService.test.ts index d08e9e93cc4..b4ba620ede2 100644 --- a/src/vs/workbench/services/files/test/node/fileService.test.ts +++ b/src/vs/workbench/services/files/test/node/fileService.test.ts @@ -20,7 +20,7 @@ import encodingLib = require('vs/base/node/encoding'); import utils = require('vs/workbench/services/files/test/node/utils'); import { onError } from 'vs/base/test/common/utils'; import { TestContextService, TestTextResourceConfigurationService } from 'vs/workbench/test/workbenchTestServices'; -import { Workspace, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { Workspace, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; suite('FileService', () => { @@ -853,7 +853,7 @@ suite('FileService', () => { }); }); - function aWorkspaceFolder(path: string, index: number, name: string = ''): WorkspaceFolder { + function aWorkspaceFolder(path: string, index: number, name: string = ''): IWorkspaceFolder { return { uri: uri.file(path), index, diff --git a/src/vs/workbench/test/electron-browser/api/extHostConfiguration.test.ts b/src/vs/workbench/test/electron-browser/api/extHostConfiguration.test.ts index 20792c4a191..c4fca1c3ef0 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostConfiguration.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostConfiguration.test.ts @@ -15,7 +15,7 @@ import { ConfigurationTarget, ConfigurationEditingErrorCode, ConfigurationEditin import { ConfigurationModel } from 'vs/platform/configuration/common/configuration'; import { TestThreadService } from './testThreadService'; import { mock } from 'vs/workbench/test/electron-browser/api/mock'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IStoredWorkspaceFolder } from 'vs/platform/workspaces/common/workspaces'; suite('ExtHostConfiguration', function () { @@ -405,7 +405,7 @@ suite('ExtHostConfiguration', function () { .then(() => assert.ok(false), err => { /* expecting rejection */ }); }); - function aWorkspaceFolder(raw: IStoredWorkspaceFolder, index: number, name: string = ''): WorkspaceFolder { + function aWorkspaceFolder(raw: IStoredWorkspaceFolder, index: number, name: string = ''): IWorkspaceFolder { return { uri: URI.file(raw.path), index, diff --git a/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts b/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts index fcf619a2309..b57a2b3d8a2 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts @@ -11,7 +11,7 @@ import { basename } from 'path'; import { ExtHostWorkspace } from 'vs/workbench/api/node/extHostWorkspace'; import { TestThreadService } from './testThreadService'; import { normalize } from 'vs/base/common/paths'; -import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; suite('ExtHostWorkspace', function () { @@ -195,7 +195,7 @@ suite('ExtHostWorkspace', function () { sub.dispose(); }); - function aWorkspaceFolder(uri: URI, index: number, name: string = ''): WorkspaceFolder { + function aWorkspaceFolder(uri: URI, index: number, name: string = ''): IWorkspaceFolder { return { uri, index, diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 7f89866c96d..ada172ca08d 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -27,7 +27,7 @@ import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { IEditorInput, IEditorOptions, Position, Direction, IEditor, IResourceInput, ITextEditorSelection } from 'vs/platform/editor/common/editor'; import { IUntitledEditorService, UntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService'; import { IMessageService, IConfirmation } from 'vs/platform/message/common/message'; -import { IWorkspaceContextService, IWorkspace as IWorkbenchWorkspace, WorkbenchState, WorkspaceFolder, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, IWorkspace as IWorkbenchWorkspace, WorkbenchState, IWorkspaceFolder, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; import { ILifecycleService, ShutdownEvent, ShutdownReason, StartupKind, LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle'; import { EditorStacksModel } from 'vs/workbench/common/editor/editorStacksModel'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; @@ -97,7 +97,7 @@ export class TestContextService implements IWorkspaceContextService { return this._onDidChangeWorkbenchState.event; } - public getFolders(): WorkspaceFolder[] { + public getFolders(): IWorkspaceFolder[] { return this.workspace ? this.workspace.folders : []; } @@ -115,7 +115,7 @@ export class TestContextService implements IWorkspaceContextService { return this.workspace; } - public getWorkspaceFolder(resource: URI): WorkspaceFolder { + public getWorkspaceFolder(resource: URI): IWorkspaceFolder { return this.isInsideWorkspace(resource) ? this.workspace.folders[0] : null; }