UNPKG

@codingame/monaco-vscode-extensions-service-override

Version:

VSCode public API plugged on the monaco editor - extensions service-override

68 lines (65 loc) 3.02 kB
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js'; import { URI } from 'vscode/vscode/vs/base/common/uri'; import { MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol'; import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js'; import { IFileDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service'; import { Schemas } from 'vscode/vscode/vs/base/common/network'; var MainThreadDialogs_1; let MainThreadDialogs = MainThreadDialogs_1 = class MainThreadDialogs { constructor(context, _fileDialogService) { this._fileDialogService = _fileDialogService; } dispose() { } async $showOpenDialog(options) { const convertedOptions = MainThreadDialogs_1._convertOpenOptions(options); if (!convertedOptions.defaultUri) { convertedOptions.defaultUri = await this._fileDialogService.defaultFilePath(); } return Promise.resolve(this._fileDialogService.showOpenDialog(convertedOptions)); } async $showSaveDialog(options) { const convertedOptions = MainThreadDialogs_1._convertSaveOptions(options); if (!convertedOptions.defaultUri) { convertedOptions.defaultUri = await this._fileDialogService.defaultFilePath(); } return Promise.resolve(this._fileDialogService.showSaveDialog(convertedOptions)); } static _convertOpenOptions(options) { const result = { openLabel: options?.openLabel || undefined, canSelectFiles: options?.canSelectFiles || (!options?.canSelectFiles && !options?.canSelectFolders), canSelectFolders: options?.canSelectFolders, canSelectMany: options?.canSelectMany, defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined, title: options?.title || undefined, availableFileSystems: options?.allowUIResources ? [Schemas.vscodeRemote, Schemas.file] : [] }; if (options?.filters) { result.filters = []; for (const [key, value] of Object.entries(options.filters)) { result.filters.push({ name: key, extensions: value }); } } return result; } static _convertSaveOptions(options) { const result = { defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined, saveLabel: options?.saveLabel || undefined, title: options?.title || undefined }; if (options?.filters) { result.filters = []; for (const [key, value] of Object.entries(options.filters)) { result.filters.push({ name: key, extensions: value }); } } return result; } }; MainThreadDialogs = MainThreadDialogs_1 = __decorate([ extHostNamedCustomer(MainContext.MainThreadDialogs), ( __param(1, IFileDialogService)) ], MainThreadDialogs); export { MainThreadDialogs };