SQL Operations Studio Public Preview 1 (0.23) release source code

This commit is contained in:
Karl Burtram
2017-11-09 14:30:27 -08:00
parent b88ecb8d93
commit 3cdac41339
8829 changed files with 759707 additions and 286 deletions

View File

@@ -0,0 +1,79 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { IJSONSchema } from 'vs/base/common/jsonSchema';
import platform = require('vs/platform/registry/common/platform');
import { EventEmitter } from 'vs/base/common/eventEmitter';
import { IDisposable } from 'vs/base/common/lifecycle';
export const Extensions = {
JSONContribution: 'base.contributions.json'
};
export interface ISchemaContributions {
schemas?: { [id: string]: IJSONSchema };
}
export interface IJSONContributionRegistry {
/**
* Register a schema to the registry.
*/
registerSchema(uri: string, unresolvedSchemaContent: IJSONSchema): void;
/**
* Get all schemas
*/
getSchemaContributions(): ISchemaContributions;
/**
* Adds a change listener
*/
addRegistryChangedListener(callback: (e: IJSONContributionRegistryEvent) => void): IDisposable;
}
export interface IJSONContributionRegistryEvent {
}
function normalizeId(id: string) {
if (id.length > 0 && id.charAt(id.length - 1) === '#') {
return id.substring(0, id.length - 1);
}
return id;
}
class JSONContributionRegistry implements IJSONContributionRegistry {
private schemasById: { [id: string]: IJSONSchema };
private eventEmitter: EventEmitter;
constructor() {
this.schemasById = {};
this.eventEmitter = new EventEmitter();
}
public addRegistryChangedListener(callback: (e: IJSONContributionRegistryEvent) => void): IDisposable {
return this.eventEmitter.addListener('registryChanged', callback);
}
public registerSchema(uri: string, unresolvedSchemaContent: IJSONSchema): void {
this.schemasById[normalizeId(uri)] = unresolvedSchemaContent;
this.eventEmitter.emit('registryChanged', {});
}
public getSchemaContributions(): ISchemaContributions {
return {
schemas: this.schemasById,
};
}
}
const jsonContributionRegistry = new JSONContributionRegistry();
platform.Registry.add(Extensions.JSONContribution, jsonContributionRegistry);