in src/utils/configUtils.ts [12:44]
export async function loadRunConfig(workspaceFolder: WorkspaceFolder): Promise<IExecutionConfig | undefined> {
const configSetting: IExecutionConfig[] | IExecutionConfig = workspace.getConfiguration(undefined, workspaceFolder.uri).get<IExecutionConfig[] | IExecutionConfig>(Configurations.CONFIG_SETTING_KEY, {});
const configItems: IExecutionConfig[] = [];
if (!_.isEmpty(configSetting)) {
if (_.isArray(configSetting)) {
configItems.push(...configSetting);
} else if (_.isPlainObject(configSetting)) {
configItems.push(configSetting);
}
}
const defaultConfigName: string | undefined = workspace.getConfiguration(undefined, workspaceFolder.uri).get<string>(Configurations.DEFAULT_CONFIG_NAME_SETTING_KEY);
if (defaultConfigName) {
if (defaultConfigName === Configurations.BUILTIN_CONFIG_NAME) {
sendInfo('', { usingDefaultConfig: 1 });
return getBuiltinConfig();
}
const defaultConfigs: IExecutionConfig[] = configItems.filter((config: IExecutionConfig) => {
return config.name === defaultConfigName;
});
if (defaultConfigs.length === 0) {
window.showWarningMessage(`Failed to find the default configuration item: ${defaultConfigName}, use the empty configuration instead.`);
return {};
} else if (defaultConfigs.length > 1) {
window.showWarningMessage(`More than one configuration item found with name: ${defaultConfigName}, use the empty configuration instead.`);
return {};
} else {
return defaultConfigs[0];
}
}
return await selectQuickPick(configItems, workspaceFolder);
}