@codingame/monaco-vscode-extensions-service-override
Version:
VSCode public API plugged on the monaco editor - extensions service-override
56 lines (53 loc) • 2.43 kB
JavaScript
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
import { Emitter } from 'vscode/vscode/vs/base/common/event';
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
import { ITimelineService } from 'vscode/vscode/vs/workbench/contrib/timeline/common/timeline.service';
import { revive } from 'vscode/vscode/vs/base/common/marshalling';
let MainThreadTimeline = class MainThreadTimeline {
constructor(context, logService, _timelineService) {
this.logService = logService;
this._timelineService = _timelineService;
this._providerEmitters = ( new Map());
this._proxy = ( context.getProxy(ExtHostContext.ExtHostTimeline));
}
$registerTimelineProvider(provider) {
this.logService.trace(`MainThreadTimeline#registerTimelineProvider: id=${provider.id}`);
const proxy = this._proxy;
const emitters = this._providerEmitters;
let onDidChange = emitters.get(provider.id);
if (onDidChange === undefined) {
onDidChange = ( new Emitter());
emitters.set(provider.id, onDidChange);
}
this._timelineService.registerTimelineProvider({
...provider,
onDidChange: onDidChange.event,
async provideTimeline(uri, options, token) {
return revive(await proxy.$getTimeline(provider.id, uri, options, token));
},
dispose() {
emitters.delete(provider.id);
onDidChange?.dispose();
}
});
}
$unregisterTimelineProvider(id) {
this.logService.trace(`MainThreadTimeline#unregisterTimelineProvider: id=${id}`);
this._timelineService.unregisterTimelineProvider(id);
}
$emitTimelineChangeEvent(e) {
this.logService.trace(`MainThreadTimeline#emitChangeEvent: id=${e.id}, uri=${e.uri?.toString(true)}`);
const emitter = this._providerEmitters.get(e.id);
emitter?.fire(e);
}
dispose() {
}
};
MainThreadTimeline = __decorate([
extHostNamedCustomer(MainContext.MainThreadTimeline),
( __param(1, ILogService)),
( __param(2, ITimelineService))
], MainThreadTimeline);
export { MainThreadTimeline };