diff --git a/src/vs/platform/configuration/common/configuration2.ts b/src/vs/platform/configuration/common/configuration2.ts new file mode 100644 index 0000000000000000000000000000000000000000..a3edb5c004887d8f9ce0d14f47060a4788883785 --- /dev/null +++ b/src/vs/platform/configuration/common/configuration2.ts @@ -0,0 +1,63 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { TPromise } from 'vs/base/common/winjs.base'; +import URI from 'vs/base/common/uri'; +import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import Event from 'vs/base/common/event'; + +export const IConfigurationService = createDecorator('configurationService'); + +export interface IConfigurationOverrides { + overrideIdentifier?: string; + resource?: URI; +} + +export enum ConfigurationTarget { + USER, + WORKSPACE, + WORKSPACE_FOLDER, + MEMORY +} + +export interface IConfigurationServiceEvent { + sections: string[]; + keys: string[]; +} + +export interface IConfiguration { + readonly [key: string]: any; +} + +export interface IConfigurationService { + _serviceBrand: any; + + onDidUpdateConfiguration: Event; + + getConfiguration(): T; + getConfiguration(section: string): T; + getConfiguration(overrides: IConfigurationOverrides): T; + getConfiguration(section: string, overrides: IConfigurationOverrides): T; + + updateConfiguration(key: string, value: any): TPromise; + updateConfiguration(key: string, value: any, overrides: IConfigurationOverrides): TPromise; + updateConfiguration(key: string, value: any, target: ConfigurationTarget): TPromise; + updateConfiguration(key: string, value: any, overrides: IConfigurationOverrides, target: ConfigurationTarget): TPromise; + + inspect(key: string): { + default: T, + user: T, + workspace: T, + workspaceFolder: T + value: T, + }; + + keys(): { + default: string[]; + user: string[]; + workspace: string[]; + workspaceFolder: string[]; + }; +} \ No newline at end of file