UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

38 lines (37 loc) 1.32 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Emitter } from '@sussudio/base/common/event.mjs'; import * as platform from '../../registry/common/platform.mjs'; export const Extensions = { JSONContribution: 'base.contributions.json', }; function normalizeId(id) { if (id.length > 0 && id.charAt(id.length - 1) === '#') { return id.substring(0, id.length - 1); } return id; } class JSONContributionRegistry { schemasById; _onDidChangeSchema = new Emitter(); onDidChangeSchema = this._onDidChangeSchema.event; constructor() { this.schemasById = {}; } registerSchema(uri, unresolvedSchemaContent) { this.schemasById[normalizeId(uri)] = unresolvedSchemaContent; this._onDidChangeSchema.fire(uri); } notifySchemaChanged(uri) { this._onDidChangeSchema.fire(uri); } getSchemaContributions() { return { schemas: this.schemasById, }; } } const jsonContributionRegistry = new JSONContributionRegistry(); platform.Registry.add(Extensions.JSONContribution, jsonContributionRegistry);