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

#29462 IConfigurationService.keys

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