From 0cdb2ced44af7202e80c1261b3c4564d681e0831 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Sat, 23 Jan 2016 21:13:46 +0100 Subject: [PATCH] Use 'vscode' URI for configuration schema and default doc --- .../common/configurationRegistry.ts | 25 ++++++++++--------- .../workbench/browser/actions/openSettings.ts | 4 +-- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 9d27ad2b769..48289b90edc 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -50,15 +50,24 @@ export interface IConfigurationNode { definitions?: { [path: string]: IJSONSchema; }; } +const schemaId = 'vscode://schemas/settings'; +const contributionRegistry = platform.Registry.as(JSONContributionRegistry.Extensions.JSONContribution); + class ConfigurationRegistry implements IConfigurationRegistry { private configurationContributors: IConfigurationNode[]; - private hasJSONContributions: boolean; + private configurationSchema: IJSONSchema; private _onDidRegisterConfiguration: Emitter; constructor() { this.configurationContributors = []; - this.hasJSONContributions = false; + this.configurationSchema = { anyOf: [] }; this._onDidRegisterConfiguration = new Emitter(); + + contributionRegistry.registerSchema(schemaId, this.configurationSchema); + + contributionRegistry.addSchemaFileAssociation('vscode://defaultsettings/settings.json', schemaId); + contributionRegistry.addSchemaFileAssociation('%APP_SETTINGS_HOME%/settings.json', schemaId); + contributionRegistry.addSchemaFileAssociation('/.vscode/settings.json', schemaId); } public get onDidRegisterConfiguration() { @@ -77,17 +86,9 @@ class ConfigurationRegistry implements IConfigurationRegistry { } private registerJSONConfiguration(configuration: IConfigurationNode) { - var schemaId = strings.format('local://schemas/settings/{0}', configuration.id); - var schema = objects.clone(configuration); - schema.id = schemaId; - - var contributionRegistry = platform.Registry.as(JSONContributionRegistry.Extensions.JSONContribution); - contributionRegistry.registerSchema(schemaId, schema); - - contributionRegistry.addSchemaFileAssociation('inmemory://defaults/settings.json', schemaId); - contributionRegistry.addSchemaFileAssociation('%APP_SETTINGS_HOME%/settings.json', schemaId); - contributionRegistry.addSchemaFileAssociation('/.vscode/settings.json', schemaId); + this.configurationSchema.anyOf.push(schema); + contributionRegistry.registerSchema(schemaId, this.configurationSchema); } } diff --git a/src/vs/workbench/browser/actions/openSettings.ts b/src/vs/workbench/browser/actions/openSettings.ts index 2c5445aefa3..666e7d86eff 100644 --- a/src/vs/workbench/browser/actions/openSettings.ts +++ b/src/vs/workbench/browser/actions/openSettings.ts @@ -182,7 +182,7 @@ class DefaultSettingsInput extends StringEditorInput { } protected getResource(): URI { - return URI.create(network.schemas.inMemory, 'defaults', '/settings.json'); // URI is used to register JSON schema support + return URI.create('vscode', 'defaultsettings', '/settings.json'); // URI is used to register JSON schema support } } @@ -201,7 +201,7 @@ class DefaultKeybindingsInput extends StringEditorInput { } protected getResource(): URI { - return URI.create(network.schemas.inMemory, 'defaults', '/keybindings.json'); // URI is used to register JSON schema support + return URI.create('vscode', 'defaultsettings', '/keybindings.json'); // URI is used to register JSON schema support } } -- GitLab