@codingame/monaco-vscode-extensions-service-override
Version:
VSCode public API plugged on the monaco editor - extensions service-override
42 lines (39 loc) • 2 kB
JavaScript
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
import { DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
import { revive } from 'vscode/vscode/vs/base/common/marshalling';
import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
import { IChatVariablesService } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatVariables.service';
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
let MainThreadChatVariables = class MainThreadChatVariables {
constructor(extHostContext, _chatVariablesService) {
this._chatVariablesService = _chatVariablesService;
this._variables = ( new DisposableMap());
this._pendingProgress = ( new Map());
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostChatVariables));
}
dispose() {
this._variables.clearAndDisposeAll();
}
$registerVariable(handle, data) {
const registration = this._chatVariablesService.registerVariable(data, async (messageText, _arg, model, progress, token) => {
const varRequestId = `${model.sessionId}-${handle}`;
this._pendingProgress.set(varRequestId, progress);
const result = revive(await this._proxy.$resolveVariable(handle, varRequestId, messageText, token));
this._pendingProgress.delete(varRequestId);
return result;
});
this._variables.set(handle, registration);
}
async $handleProgressChunk(requestId, progress) {
const revivedProgress = revive(progress);
this._pendingProgress.get(requestId)?.(revivedProgress);
}
$unregisterVariable(handle) {
this._variables.deleteAndDispose(handle);
}
};
MainThreadChatVariables = __decorate([
extHostNamedCustomer(MainContext.MainThreadChatVariables),
( __param(1, IChatVariablesService))
], MainThreadChatVariables);
export { MainThreadChatVariables };