-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathextensionHostServices.ts
34 lines (26 loc) · 1.31 KB
/
extensionHostServices.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import * as vscode from 'vscode';
import {Services as BaseServices} from './services';
import {ExtensionServer} from '../ipc/extensionServer';
import {AnalyticsService} from '../analytics/analyticsService';
import {WorkspaceConfigService} from '../common/workspaceConfigService';
export class ExtensionHostServices extends BaseServices {
private _globalState: vscode.Memento;
private _workspaceConfigService: WorkspaceConfigService;
private _extensionServer: ExtensionServer;
private _analyticsService: AnalyticsService;
public get globalState(): vscode.Memento { return this._globalState; }
public set globalState(globalState: vscode.Memento) { this._globalState = globalState; }
public workspaceConfigService(): WorkspaceConfigService {
this._workspaceConfigService = this._workspaceConfigService || new WorkspaceConfigService();
return this._workspaceConfigService;
}
public extensionServer(): ExtensionServer {
this._extensionServer = this._extensionServer || new ExtensionServer();
return this._extensionServer;
}
public analyticsService(): AnalyticsService {
this._analyticsService = this._analyticsService || new AnalyticsService(this.globalState);
return this._analyticsService;
}
}
export let Services = new ExtensionHostServices();