提交 adf73b89 编写于 作者: S Sandeep Somavarapu

#29462 IConfigurationService.keys

- Provide folder specific keys
上级 4e6ee69a
...@@ -43,7 +43,7 @@ export interface IConfigurationService { ...@@ -43,7 +43,7 @@ export interface IConfigurationService {
* Returns the defined keys of configurations in the different scopes * Returns the defined keys of configurations in the different scopes
* the key is defined. * the key is defined.
*/ */
keys(): IConfigurationKeys; keys(overrides?: IConfigurationOverrides): IConfigurationKeys;
/** /**
* Similar to #getConfiguration() but ensures that the latest configuration * Similar to #getConfiguration() but ensures that the latest configuration
...@@ -91,6 +91,7 @@ export interface IConfigurationKeys { ...@@ -91,6 +91,7 @@ export interface IConfigurationKeys {
default: string[]; default: string[];
user: string[]; user: string[];
workspace: string[]; workspace: string[];
folder: string[];
} }
/** /**
...@@ -268,11 +269,13 @@ export class Configuration<T> { ...@@ -268,11 +269,13 @@ export class Configuration<T> {
}; };
} }
keys(): IConfigurationKeys { keys(overrides: IConfigurationOverrides = {}): IConfigurationKeys {
const folderConfigurationModel = this.getFolderConfigurationModelForResource(overrides.resource);
return { return {
default: this._defaults.keys, default: this._defaults.keys,
user: this._user.keys, user: this._user.keys,
workspace: this._workspaceConfiguration.keys workspace: this._workspaceConfiguration.keys,
folder: folderConfigurationModel ? folderConfigurationModel.keys : []
}; };
} }
......
...@@ -72,12 +72,12 @@ export class ConfigurationService<T> extends Disposable implements IConfiguratio ...@@ -72,12 +72,12 @@ export class ConfigurationService<T> extends Disposable implements IConfiguratio
return this.configuration().getValue<C>(section, options); return this.configuration().getValue<C>(section, options);
} }
public lookup<C>(key: string, options?: IConfigurationOverrides): IConfigurationValue<C> { public lookup<C>(key: string, overrides?: IConfigurationOverrides): IConfigurationValue<C> {
return this.configuration().lookup<C>(key, options); return this.configuration().lookup<C>(key, overrides);
} }
public keys(): IConfigurationKeys { public keys(overrides?: IConfigurationOverrides): IConfigurationKeys {
return this.configuration().keys(); return this.configuration().keys(overrides);
} }
public values<V>(): IConfigurationValues { public values<V>(): IConfigurationValues {
......
...@@ -50,7 +50,8 @@ export class TestConfigurationService extends EventEmitter implements IConfigura ...@@ -50,7 +50,8 @@ export class TestConfigurationService extends EventEmitter implements IConfigura
return { return {
default: getConfigurationKeys(), default: getConfigurationKeys(),
user: Object.keys(this.configuration), user: Object.keys(this.configuration),
workspace: [] workspace: [],
folder: []
}; };
} }
......
...@@ -696,7 +696,7 @@ suite('TelemetryService', () => { ...@@ -696,7 +696,7 @@ suite('TelemetryService', () => {
folder: null folder: null
}; };
}, },
keys() { return { default: [], user: [], workspace: [] }; }, keys() { return { default: [], user: [], workspace: [], folder: [] }; },
values() { return {}; }, values() { return {}; },
onDidUpdateConfiguration: emitter.event onDidUpdateConfiguration: emitter.event
}); });
......
...@@ -19,7 +19,7 @@ class MockConfigurationService implements IConfigurationService { ...@@ -19,7 +19,7 @@ class MockConfigurationService implements IConfigurationService {
public constructor(private configuration: any = {}) { } public constructor(private configuration: any = {}) { }
public reloadConfiguration<T>(section?: string): TPromise<T> { return TPromise.as(this.getConfiguration()); } public reloadConfiguration<T>(section?: string): TPromise<T> { return TPromise.as(this.getConfiguration()); }
public lookup<T>(key: string, overrides?: IConfigurationOverrides): IConfigurationValue<T> { return { value: getConfigurationValue<T>(this.getConfiguration(), key), default: getConfigurationValue<T>(this.getConfiguration(), key), user: getConfigurationValue<T>(this.getConfiguration(), key), workspace: void 0, folder: void 0 }; } public lookup<T>(key: string, overrides?: IConfigurationOverrides): IConfigurationValue<T> { return { value: getConfigurationValue<T>(this.getConfiguration(), key), default: getConfigurationValue<T>(this.getConfiguration(), key), user: getConfigurationValue<T>(this.getConfiguration(), key), workspace: void 0, folder: void 0 }; }
public keys() { return { default: [], user: [], workspace: [] }; } public keys() { return { default: [], user: [], workspace: [], folder: [] }; }
public values() { return {}; } public values() { return {}; }
public getConfiguration(): any { return this.configuration; } public getConfiguration(): any { return this.configuration; }
public getConfigurationData(): any { return null; } public getConfigurationData(): any { return null; }
......
...@@ -256,8 +256,8 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat ...@@ -256,8 +256,8 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat
return this._configuration.lookup<C>(key, overrides); return this._configuration.lookup<C>(key, overrides);
} }
public keys(): IConfigurationKeys { public keys(overrides?: IConfigurationOverrides): IConfigurationKeys {
return this._configuration.keys(); return this._configuration.keys(overrides);
} }
public values<V>(): IConfigurationValues { public values<V>(): IConfigurationValues {
......
...@@ -343,7 +343,7 @@ class MockConfigurationService implements IConfigurationService { ...@@ -343,7 +343,7 @@ class MockConfigurationService implements IConfigurationService {
public constructor(private configuration: any = {}) { } public constructor(private configuration: any = {}) { }
public reloadConfiguration<T>(section?: string): TPromise<T> { return TPromise.as(this.getConfiguration()); } public reloadConfiguration<T>(section?: string): TPromise<T> { return TPromise.as(this.getConfiguration()); }
public lookup<T>(key: string, overrides?: IConfigurationOverrides): IConfigurationValue<T> { return { value: getConfigurationValue<T>(this.getConfiguration(), key), default: getConfigurationValue<T>(this.getConfiguration(), key), user: getConfigurationValue<T>(this.getConfiguration(), key), workspace: void 0, folder: void 0 }; } public lookup<T>(key: string, overrides?: IConfigurationOverrides): IConfigurationValue<T> { return { value: getConfigurationValue<T>(this.getConfiguration(), key), default: getConfigurationValue<T>(this.getConfiguration(), key), user: getConfigurationValue<T>(this.getConfiguration(), key), workspace: void 0, folder: void 0 }; }
public keys() { return { default: [], user: [], workspace: [] }; } public keys() { return { default: [], user: [], workspace: [], folder: [] }; }
public values() { return {}; } public values() { return {}; }
public getConfiguration(): any { return this.configuration; } public getConfiguration(): any { return this.configuration; }
public getConfigurationData(): any { return null; } public getConfigurationData(): any { return null; }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册