import { ConfigurationModel } from '../models/configuration-model'; import { toValuesTree } from '../helpers'; import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; //src/vs/platform/configuration/common/configurationModels.ts export class AbstractConfigurationChangeEvent { protected doesConfigurationContains(configuration: ConfigurationModel, config: string): boolean { let changedKeysTree = configuration.contents; let requestedTree = toValuesTree({ [config]: true }, () => { }); let key; while (typeof requestedTree === 'object' && (key = Object.keys(requestedTree)[0])) { // Only one key should present, since we added only one property changedKeysTree = changedKeysTree[key]; if (!changedKeysTree) { return false; // Requested tree is not found } requestedTree = requestedTree[key]; } return true; } protected updateKeys(configuration: ConfigurationModel, keys: string[], resource?: URI): void { for (const key of keys) { configuration.setValue(key, {}); } } }