mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-29 16:20:29 -04:00
SQL Operations Studio Public Preview 1 (0.23) release source code
This commit is contained in:
67
extensions/merge-conflict/src/services.ts
Normal file
67
extensions/merge-conflict/src/services.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import * as vscode from 'vscode';
|
||||
import DocumentTracker from './documentTracker';
|
||||
import CodeLensProvider from './codelensProvider';
|
||||
import CommandHandler from './commandHandler';
|
||||
import ContentProvider from './contentProvider';
|
||||
import Decorator from './mergeDecorator';
|
||||
import * as interfaces from './interfaces';
|
||||
|
||||
const ConfigurationSectionName = 'merge-conflict';
|
||||
|
||||
export default class ServiceWrapper implements vscode.Disposable {
|
||||
|
||||
private services: vscode.Disposable[] = [];
|
||||
|
||||
constructor(private context: vscode.ExtensionContext) {
|
||||
}
|
||||
|
||||
begin() {
|
||||
|
||||
let configuration = this.createExtensionConfiguration();
|
||||
const documentTracker = new DocumentTracker();
|
||||
|
||||
this.services.push(
|
||||
documentTracker,
|
||||
new CommandHandler(this.context, documentTracker),
|
||||
new CodeLensProvider(this.context, documentTracker),
|
||||
new ContentProvider(this.context),
|
||||
new Decorator(this.context, documentTracker),
|
||||
);
|
||||
|
||||
this.services.forEach((service: any) => {
|
||||
if (service.begin && service.begin instanceof Function) {
|
||||
service.begin(configuration);
|
||||
}
|
||||
});
|
||||
|
||||
vscode.workspace.onDidChangeConfiguration(() => {
|
||||
this.services.forEach((service: any) => {
|
||||
if (service.configurationUpdated && service.configurationUpdated instanceof Function) {
|
||||
service.configurationUpdated(this.createExtensionConfiguration());
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
createExtensionConfiguration(): interfaces.IExtensionConfiguration {
|
||||
const workspaceConfiguration = vscode.workspace.getConfiguration(ConfigurationSectionName);
|
||||
const codeLensEnabled: boolean = workspaceConfiguration.get('codeLens.enabled', true);
|
||||
const decoratorsEnabled: boolean = workspaceConfiguration.get('decorators.enabled', true);
|
||||
|
||||
return {
|
||||
enableCodeLens: codeLensEnabled,
|
||||
enableDecorations: decoratorsEnabled,
|
||||
enableEditorOverview: decoratorsEnabled
|
||||
};
|
||||
}
|
||||
|
||||
dispose() {
|
||||
this.services.forEach(disposable => disposable.dispose());
|
||||
this.services = [];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user