@codingame/monaco-vscode-extensions-service-override
Version:
VSCode public API plugged on the monaco editor - extensions service-override
58 lines (55 loc) • 2.62 kB
JavaScript
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
import { Event } from 'vscode/vscode/vs/base/common/event';
import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
import { URI } from 'vscode/vscode/vs/base/common/uri';
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
import { IUserActivityService } from 'vscode/vscode/vs/workbench/services/userActivity/common/userActivityService.service';
let MainThreadWindow = class MainThreadWindow {
constructor(extHostContext, hostService, openerService, userActivityService) {
this.hostService = hostService;
this.openerService = openerService;
this.userActivityService = userActivityService;
this.disposables = ( new DisposableStore());
this.proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostWindow));
Event.latch(hostService.onDidChangeFocus)(this.proxy.$onDidChangeWindowFocus, this.proxy, this.disposables);
userActivityService.onDidChangeIsActive(this.proxy.$onDidChangeWindowActive, this.proxy, this.disposables);
}
dispose() {
this.disposables.dispose();
}
$getInitialState() {
return Promise.resolve({
isFocused: this.hostService.hasFocus,
isActive: this.userActivityService.isActive,
});
}
async $openUri(uriComponents, uriString, options) {
const uri = ( URI.from(uriComponents));
let target;
if (uriString && ( ( URI.parse(uriString)).toString()) === ( uri.toString())) {
target = uriString;
}
else {
target = uri;
}
return this.openerService.open(target, {
openExternal: true,
allowTunneling: options.allowTunneling,
allowContributedOpeners: options.allowContributedOpeners,
});
}
async $asExternalUri(uriComponents, options) {
const result = await this.openerService.resolveExternalUri(URI.revive(uriComponents), options);
return result.resolved;
}
};
MainThreadWindow = __decorate([
extHostNamedCustomer(MainContext.MainThreadWindow),
( __param(1, IHostService)),
( __param(2, IOpenerService)),
( __param(3, IUserActivityService))
], MainThreadWindow);
export { MainThreadWindow };