1c9973f76e34fa8a4d578a36ae291540745fb4924d1614375d5644943773e4969bbd42e5a5003541498ec1775b7abcf123010c02ad09c56634afe56e9924ba 1.5 KB

123456789101112131415161718192021222324252627
  1. import { addToValueTree, toValuesTree } from './configuration.js';
  2. import { ConfigurationModel } from './configurationModels.js';
  3. import { Extensions, overrideIdentifiersFromKey, OVERRIDE_PROPERTY_REGEX } from './configurationRegistry.js';
  4. import { Registry } from '../../registry/common/platform.js';
  5. export class DefaultConfigurationModel extends ConfigurationModel {
  6. constructor(configurationDefaultsOverrides = {}) {
  7. const properties = Registry.as(Extensions.Configuration).getConfigurationProperties();
  8. const keys = Object.keys(properties);
  9. const contents = Object.create(null);
  10. const overrides = [];
  11. for (const key in properties) {
  12. const defaultOverrideValue = configurationDefaultsOverrides[key];
  13. const value = defaultOverrideValue !== undefined ? defaultOverrideValue : properties[key].default;
  14. addToValueTree(contents, key, value, message => console.error(`Conflict in default settings: ${message}`));
  15. }
  16. for (const key of Object.keys(contents)) {
  17. if (OVERRIDE_PROPERTY_REGEX.test(key)) {
  18. overrides.push({
  19. identifiers: overrideIdentifiersFromKey(key),
  20. keys: Object.keys(contents[key]),
  21. contents: toValuesTree(contents[key], message => console.error(`Conflict in default settings file: ${message}`)),
  22. });
  23. }
  24. }
  25. super(contents, keys, overrides);
  26. }
  27. }