提交 0cdb2ced 编写于 作者: M Martin Aeschlimann

Use 'vscode' URI for configuration schema and default doc

上级 5ce70e05
......@@ -50,15 +50,24 @@ export interface IConfigurationNode {
definitions?: { [path: string]: IJSONSchema; };
}
const schemaId = 'vscode://schemas/settings';
const contributionRegistry = <JSONContributionRegistry.IJSONContributionRegistry>platform.Registry.as(JSONContributionRegistry.Extensions.JSONContribution);
class ConfigurationRegistry implements IConfigurationRegistry {
private configurationContributors: IConfigurationNode[];
private hasJSONContributions: boolean;
private configurationSchema: IJSONSchema;
private _onDidRegisterConfiguration: Emitter<IConfigurationRegistry>;
constructor() {
this.configurationContributors = [];
this.hasJSONContributions = false;
this.configurationSchema = { anyOf: [] };
this._onDidRegisterConfiguration = new Emitter<IConfigurationRegistry>();
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 = <IJSONSchema> objects.clone(configuration);
schema.id = schemaId;
var contributionRegistry = <JSONContributionRegistry.IJSONContributionRegistry>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);
}
}
......
......@@ -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
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册