@codingame/monaco-vscode-api 1.80.0-next.5 → 1.80.0-next.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +20 -8
  2. package/dist/default-extensions/bat.js +3 -3
  3. package/dist/default-extensions/clojure.js +2 -2
  4. package/dist/default-extensions/coffeescript.js +3 -3
  5. package/dist/default-extensions/configuration-editing.js +3 -3
  6. package/dist/default-extensions/cpp.js +8 -8
  7. package/dist/default-extensions/csharp.js +3 -3
  8. package/dist/default-extensions/css-language-features.js +5 -5
  9. package/dist/default-extensions/css.js +2 -2
  10. package/dist/default-extensions/dart.js +2 -2
  11. package/dist/default-extensions/diff.js +2 -2
  12. package/dist/default-extensions/docker.js +2 -2
  13. package/dist/default-extensions/emmet.js +2 -2
  14. package/dist/default-extensions/extension-editing.js +2 -2
  15. package/dist/default-extensions/fsharp.js +3 -3
  16. package/dist/default-extensions/git-base.js +8 -8
  17. package/dist/default-extensions/github-authentication.js +2 -2
  18. package/dist/default-extensions/github.js +1 -1
  19. package/dist/default-extensions/go.js +2 -2
  20. package/dist/default-extensions/groovy.js +3 -3
  21. package/dist/default-extensions/handlebars.js +2 -2
  22. package/dist/default-extensions/hlsl.js +2 -2
  23. package/dist/default-extensions/html-language-features.js +5 -5
  24. package/dist/default-extensions/html.js +4 -4
  25. package/dist/default-extensions/ini.js +3 -3
  26. package/dist/default-extensions/ipynb.js +2 -2
  27. package/dist/default-extensions/java.js +3 -3
  28. package/dist/default-extensions/javascript.js +6 -6
  29. package/dist/default-extensions/json-language-features.js +4 -4
  30. package/dist/default-extensions/json.js +4 -4
  31. package/dist/default-extensions/julia.js +2 -2
  32. package/dist/default-extensions/latex.js +8 -8
  33. package/dist/default-extensions/less.js +2 -2
  34. package/dist/default-extensions/log.js +1 -1
  35. package/dist/default-extensions/lua.js +2 -2
  36. package/dist/default-extensions/make.js +2 -2
  37. package/dist/default-extensions/markdown-basics.js +3 -3
  38. package/dist/default-extensions/markdown-language-features.js +11 -11
  39. package/dist/default-extensions/markdown-math.js +27 -27
  40. package/dist/default-extensions/media-preview.js +11 -11
  41. package/dist/default-extensions/merge-conflict.js +2 -2
  42. package/dist/default-extensions/microsoft-authentication.js +2 -2
  43. package/dist/default-extensions/npm.js +2 -2
  44. package/dist/default-extensions/objective-c.js +3 -3
  45. package/dist/default-extensions/perl.js +4 -4
  46. package/dist/default-extensions/php.js +4 -4
  47. package/dist/default-extensions/powershell.js +2 -2
  48. package/dist/default-extensions/pug.js +2 -2
  49. package/dist/default-extensions/python.js +3 -3
  50. package/dist/default-extensions/r.js +2 -2
  51. package/dist/default-extensions/razor.js +2 -2
  52. package/dist/default-extensions/references-view.js +2 -2
  53. package/dist/default-extensions/restructuredtext.js +2 -2
  54. package/dist/default-extensions/ruby.js +2 -2
  55. package/dist/default-extensions/rust.js +2 -2
  56. package/dist/default-extensions/scss.js +3 -3
  57. package/dist/default-extensions/search-result.js +3 -3
  58. package/dist/default-extensions/shaderlab.js +2 -2
  59. package/dist/default-extensions/shellscript.js +2 -2
  60. package/dist/default-extensions/simple-browser.js +5 -5
  61. package/dist/default-extensions/sql.js +2 -2
  62. package/dist/default-extensions/swift.js +3 -3
  63. package/dist/default-extensions/theme-abyss.js +1 -1
  64. package/dist/default-extensions/theme-defaults.js +19 -19
  65. package/dist/default-extensions/theme-kimbie-dark.js +1 -1
  66. package/dist/default-extensions/theme-monokai-dimmed.js +1 -1
  67. package/dist/default-extensions/theme-monokai.js +1 -1
  68. package/dist/default-extensions/theme-quietlight.js +1 -1
  69. package/dist/default-extensions/theme-red.js +1 -1
  70. package/dist/default-extensions/theme-seti.js +2 -2
  71. package/dist/default-extensions/theme-solarized-dark.js +1 -1
  72. package/dist/default-extensions/theme-solarized-light.js +1 -1
  73. package/dist/default-extensions/theme-tomorrow-night-blue.js +1 -1
  74. package/dist/default-extensions/typescript-basics.js +6 -6
  75. package/dist/default-extensions/typescript-language-features.js +87 -87
  76. package/dist/default-extensions/vb.js +3 -3
  77. package/dist/default-extensions/vscode-colorize-tests.js +2 -2
  78. package/dist/default-extensions/vscode-test-resolver.js +2 -2
  79. package/dist/default-extensions/xml.js +4 -4
  80. package/dist/default-extensions/yaml.js +2 -2
  81. package/dist/extension-tools.js +221 -1
  82. package/dist/extensions.js +2 -2
  83. package/dist/missing-services.js +2 -1
  84. package/dist/override/vs/platform/dialogs/common/dialogs.js +7 -0
  85. package/dist/service-override/dialogs.js +2 -1
  86. package/dist/service-override/extensions.js +3 -2
  87. package/dist/service-override/languageDetectionWorker.js +2 -2
  88. package/dist/service-override/layout.js +12 -1
  89. package/dist/service-override/textmate.js +1 -1
  90. package/dist/service-override/views.d.ts +24 -2
  91. package/dist/service-override/views.js +121 -16
  92. package/dist/services.d.ts +3 -2
  93. package/dist/services.js +10 -3
  94. package/dist/vscode/vs/platform/audioCues/browser/media/all.mp3.js +17 -17
  95. package/dist/vscode/vs/platform/dialogs/common/dialogs.js +126 -0
  96. package/dist/vscode/vs/workbench/api/browser/mainThreadAuthentication.js +2 -1
  97. package/dist/vscode/vs/workbench/api/browser/mainThreadCustomEditors.js +2 -1
  98. package/dist/vscode/vs/workbench/api/browser/mainThreadDialogs.js +2 -1
  99. package/dist/vscode/vs/workbench/api/browser/mainThreadFileSystemEventService.js +2 -1
  100. package/dist/vscode/vs/workbench/api/browser/mainThreadMessageService.js +2 -1
  101. package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +1 -0
  102. package/dist/vscode/vs/workbench/browser/actions/windowActions.js +2 -1
  103. package/dist/vscode/vs/workbench/browser/actions/workspaceActions.js +2 -1
  104. package/dist/vscode/vs/workbench/browser/actions/workspaceCommands.js +1 -0
  105. package/dist/vscode/vs/workbench/browser/parts/dialogs/dialog.web.contribution.js +2 -1
  106. package/dist/vscode/vs/workbench/browser/parts/dialogs/dialogHandler.js +2 -1
  107. package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +2 -1
  108. package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupView.js +2 -1
  109. package/dist/vscode/vs/workbench/browser/parts/editor/editorPanes.js +2 -1
  110. package/dist/vscode/vs/workbench/browser/parts/editor/editorPlaceholder.js +2 -1
  111. package/dist/vscode/vs/workbench/common/editor/editorInput.d.ts +1 -1
  112. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +2 -1
  113. package/dist/vscode/vs/workbench/contrib/customEditor/browser/customEditorInput.js +2 -1
  114. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +2 -1
  115. package/dist/vscode/vs/workbench/contrib/debug/browser/debugAdapterManager.js +2 -1
  116. package/dist/vscode/vs/workbench/contrib/debug/browser/debugService.js +2 -1
  117. package/dist/vscode/vs/workbench/contrib/debug/browser/debugTaskRunner.js +2 -1
  118. package/dist/vscode/vs/workbench/contrib/debug/browser/rawDebugSession.js +2 -1
  119. package/dist/vscode/vs/workbench/contrib/debug/common/debugLifecycle.js +2 -1
  120. package/dist/vscode/vs/workbench/contrib/extensions/browser/extensionsActions.js +2 -1
  121. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +2 -1
  122. package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +2 -1
  123. package/dist/vscode/vs/workbench/contrib/files/browser/fileImportExport.js +2 -1
  124. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerViewer.js +2 -1
  125. package/dist/vscode/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +2 -1
  126. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -1
  127. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +2 -1
  128. package/dist/vscode/vs/workbench/contrib/search/browser/searchView.js +2 -1
  129. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +2 -1
  130. package/dist/vscode/vs/workbench/contrib/tasks/browser/taskQuickPick.js +2 -1
  131. package/dist/vscode/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +2 -1
  132. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +2 -1
  133. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalInstance.js +2 -1
  134. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalService.js +2 -1
  135. package/dist/vscode/vs/workbench/services/authentication/browser/authenticationService.js +1 -0
  136. package/dist/vscode/vs/workbench/services/dialogs/browser/abstractFileDialogService.js +2 -1
  137. package/dist/vscode/vs/workbench/services/dialogs/browser/simpleFileDialog.js +2 -1
  138. package/dist/vscode/vs/workbench/services/dialogs/common/dialogService.js +1 -0
  139. package/dist/vscode/vs/workbench/services/extensions/browser/extensionService.js +1 -0
  140. package/dist/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler.js +1 -0
  141. package/dist/vscode/vs/workbench/services/extensions/common/abstractExtensionService.js +2 -1
  142. package/dist/vscode/vs/workbench/services/remote/common/remoteExplorerService.js +2 -1
  143. package/dist/vscode/vs/workbench/services/textfile/browser/browserTextFileService.js +2 -1
  144. package/dist/vscode/vs/workbench/services/textfile/browser/textFileService.js +2 -1
  145. package/dist/vscode/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +2 -1
  146. package/package.json +2 -1
  147. package/dist/assets/group1-shard1of1.bin +0 -0
  148. package/dist/assets/model.json +0 -1
@@ -1,6 +1,5 @@
1
1
  import { IExtensionService } from './vscode/vs/workbench/services/extensions/common/extensions.js';
2
2
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
3
- import { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js';
4
3
  import { getExtensionId } from './vscode/vs/platform/extensionManagement/common/extensionManagementUtil.js';
5
4
  import { DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
6
5
  import { localizeManifest } from './vscode/vs/platform/extensionManagement/common/extensionNls.js';
@@ -11,6 +10,7 @@ export { ExtensionHostKind } from './vscode/vs/workbench/services/extensions/com
11
10
  import { getLocalExtHostExtensionService } from './service-override/extensions.js';
12
11
  import { registerExtensionFile } from './service-override/files.js';
13
12
  import { setDefaultApi } from './api.js';
13
+ import { getService } from './services.js';
14
14
  const defaultApiInitializeBarrier = new Barrier();
15
15
  async function initialize() {
16
16
  await getLocalExtHostExtensionService().then(async (extHostExtensionService) => {
@@ -43,7 +43,7 @@ async function deltaExtensions(toAdd, toRemove) {
43
43
  _toAdd.push(...toAdd);
44
44
  _toRemove.push(...toRemove);
45
45
  if (lastPromise == null) {
46
- const extensionService = StandaloneServices.get(IExtensionService);
46
+ const extensionService = await getService(IExtensionService);
47
47
  lastPromise = new Promise(resolve => setTimeout(resolve)).then(async () => {
48
48
  await extensionService.deltaExtensions(_toAdd, _toRemove);
49
49
  _toAdd = [];
@@ -63,7 +63,7 @@ import { IWorkingCopyBackupService } from './vscode/vs/workbench/services/workin
63
63
  import { IWorkingCopyService, WorkingCopyService } from './vscode/vs/workbench/services/workingCopy/common/workingCopyService.js';
64
64
  import { IFilesConfigurationService, FilesConfigurationService } from './vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js';
65
65
  import { IUntitledTextEditorService } from './vscode/vs/workbench/services/untitled/common/untitledTextEditorService.js';
66
- import { IFileDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
66
+ import './override/vs/platform/dialogs/common/dialogs.js';
67
67
  import { IElevatedFileService } from './vscode/vs/workbench/services/files/common/elevatedFileService.js';
68
68
  import { BrowserElevatedFileService } from './vscode/vs/workbench/services/files/browser/elevatedFileService.js';
69
69
  import { IDecorationsService } from './vscode/vs/workbench/services/decorations/common/decorations.js';
@@ -163,6 +163,7 @@ import { IEncryptionService } from './vscode/vs/platform/encryption/common/encry
163
163
  import { ITestResultService } from './vscode/vs/workbench/contrib/testing/common/testResultService.js';
164
164
  import { IDiagnosticsService, NullDiagnosticsService } from './vscode/vs/platform/diagnostics/common/diagnostics.js';
165
165
  import { unsupported } from './tools.js';
166
+ import { IFileDialogService } from './vscode/vs/platform/dialogs/common/dialogs.js';
166
167
  class NullLoggerService extends AbstractLoggerService {
167
168
  constructor() {
168
169
  super(LogLevel.Info, URI.file('logs.log'));
@@ -0,0 +1,7 @@
1
+ var ConfirmResult;
2
+ ( (function(ConfirmResult) {
3
+ ConfirmResult[ConfirmResult["SAVE"] = 0] = "SAVE";
4
+ ConfirmResult[ConfirmResult["DONT_SAVE"] = 1] = "DONT_SAVE";
5
+ ConfirmResult[ConfirmResult["CANCEL"] = 2] = "CANCEL";
6
+ })(ConfirmResult || (ConfirmResult = {})));
7
+ export { ConfirmResult };
@@ -1,11 +1,12 @@
1
1
  import '../missing-services.js';
2
2
  import '../vscode/vs/workbench/browser/parts/dialogs/dialog.web.contribution.js';
3
3
  import { DialogService } from '../vscode/vs/workbench/services/dialogs/common/dialogService.js';
4
- import { IDialogService, IFileDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
4
+ import '../override/vs/platform/dialogs/common/dialogs.js';
5
5
  import { SyncDescriptor } from 'monaco-editor/esm/vs/platform/instantiation/common/descriptors.js';
6
6
  import { AbstractFileDialogService } from '../vscode/vs/workbench/services/dialogs/browser/abstractFileDialogService.js';
7
7
  import getServiceOverride$1 from './layout.js';
8
8
  import { unsupported } from '../tools.js';
9
+ import { IDialogService, IFileDialogService } from '../vscode/vs/platform/dialogs/common/dialogs.js';
9
10
  class FileDialogService extends AbstractFileDialogService {
10
11
  constructor() {
11
12
  super(...arguments);
@@ -10,7 +10,7 @@ import { INotificationService } from 'monaco-editor/esm/vs/platform/notification
10
10
  import { AbstractExtensionService, DeltaExtensionsQueueItem, ResolvedExtensions } from '../vscode/vs/workbench/services/extensions/common/abstractExtensionService.js';
11
11
  import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
12
12
  import { Event } from 'monaco-editor/esm/vs/base/common/event.js';
13
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
13
+ import '../override/vs/platform/dialogs/common/dialogs.js';
14
14
  import { IRemoteAuthorityResolverService } from '../vscode/vs/platform/remote/common/remoteAuthorityResolver.js';
15
15
  import { IRemoteExtensionsScannerService } from '../vscode/vs/platform/remote/common/remoteExtensionsScanner.js';
16
16
  import { IRemoteAgentService } from '../vscode/vs/workbench/services/remote/common/remoteAgentService.js';
@@ -121,6 +121,7 @@ import '../vscode/vs/workbench/api/browser/mainThreadProfilContentHandlers.js';
121
121
  import '../vscode/vs/workbench/api/browser/mainThreadSemanticSimilarity.js';
122
122
  import '../vscode/vs/workbench/api/browser/mainThreadIssueReporter.js';
123
123
  import '../vscode/vs/workbench/api/common/extHost.common.services.js';
124
+ import { IDialogService } from '../vscode/vs/platform/dialogs/common/dialogs.js';
124
125
  function createMessagePassingProtocolPair() {
125
126
  const emitterA = new BufferedEmitter();
126
127
  const emitterB = new BufferedEmitter();
@@ -437,7 +438,7 @@ SimpleExtensionService = __decorate([
437
438
  ], SimpleExtensionService);
438
439
  let iframeAlternateDomains;
439
440
  registerAssets({
440
- 'vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html': () => changeUrlDomain(new URL(new URL('../assets/webWorkerExtensionHostIframe.html', import.meta.url).href, import.meta.url).href, iframeAlternateDomains)
441
+ 'vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html': () => changeUrlDomain(new URL('../assets/webWorkerExtensionHostIframe.html', import.meta.url).href, iframeAlternateDomains)
441
442
  });
442
443
  function getServiceOverride(workerConfig, _iframeAlternateDomains) {
443
444
  if (_iframeAlternateDomains != null) {
@@ -4,8 +4,8 @@ import { LanguageDetectionService } from '../vscode/vs/workbench/services/langua
4
4
  import { ILanguageDetectionService } from '../vscode/vs/workbench/services/languageDetection/common/languageDetectionWorkerService.js';
5
5
  import { registerAssets } from '../assets.js';
6
6
  registerAssets({
7
- 'vs/../../node_modules/@vscode/vscode-languagedetection/model/model.json': new URL(new URL('../assets/model.json', import.meta.url).href, import.meta.url).href,
8
- 'vs/../../node_modules/@vscode/vscode-languagedetection/model/group1-shard1of1.bin': new URL(new URL('../assets/group1-shard1of1.bin', import.meta.url).href, import.meta.url).href
7
+ 'vs/../../node_modules/@vscode/vscode-languagedetection/model/model.json': new URL('@vscode/vscode-languagedetection/model/model.json', import.meta.url).href,
8
+ 'vs/../../node_modules/@vscode/vscode-languagedetection/model/group1-shard1of1.bin': new URL('@vscode/vscode-languagedetection/model/group1-shard1of1.bin', import.meta.url).href
9
9
  });
10
10
  function getServiceOverride() {
11
11
  return {
@@ -9,6 +9,8 @@ import * as dom from 'monaco-editor/esm/vs/base/browser/dom.js';
9
9
  import { isAncestorUsingFlowTo } from 'monaco-editor/esm/vs/base/browser/dom.js';
10
10
  import { SyncDescriptor } from 'monaco-editor/esm/vs/platform/instantiation/common/descriptors.js';
11
11
  import { IPaneCompositePartService } from '../vscode/vs/workbench/services/panecomposite/browser/panecomposite.js';
12
+ import { isChrome, isFirefox, isSafari, isWindows, isLinux } from 'monaco-editor/esm/vs/base/common/platform.js';
13
+ import { coalesce } from 'monaco-editor/esm/vs/base/common/arrays.js';
12
14
  let LayoutService = class LayoutService {
13
15
  constructor(container, paneCompositeService) {
14
16
  this.container = container;
@@ -110,7 +112,16 @@ LayoutService = __decorate([
110
112
  ( __param(1, IPaneCompositePartService))
111
113
  ], LayoutService);
112
114
  function getServiceOverride(container = document.body) {
113
- container.classList.add('monaco-workbench');
115
+ const platformClass = isWindows ? 'windows' : isLinux ? 'linux' : 'mac';
116
+ const workbenchClasses = coalesce([
117
+ 'monaco-workbench',
118
+ platformClass,
119
+ 'web',
120
+ isChrome ? 'chromium' : isFirefox ? 'firefox' : isSafari ? 'safari' : undefined
121
+ ]);
122
+ container.classList.add(...workbenchClasses);
123
+ document.body.classList.add(platformClass);
124
+ document.body.classList.add('web');
114
125
  return {
115
126
  [( ILayoutService.toString())]: new SyncDescriptor(LayoutService, [container]),
116
127
  [( IWorkbenchLayoutService.toString())]: new SyncDescriptor(LayoutService, [container])
@@ -12,7 +12,7 @@ import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiati
12
12
  import getServiceOverride$1 from './files.js';
13
13
  import { registerServiceInitializeParticipant } from '../services.js';
14
14
  import { registerAssets } from '../assets.js';
15
- const _onigWasm = new URL('../../node_modules/vscode-oniguruma/release/onig.wasm', import.meta.url).href;
15
+ const _onigWasm = new URL('vscode-oniguruma/release/onig.wasm', import.meta.url).href;
16
16
  registerAssets({
17
17
  'vscode-oniguruma/../onig.wasm': _onigWasm,
18
18
  'vs/../../node_modules/vscode-oniguruma/release/onig.wasm': _onigWasm
@@ -10,8 +10,10 @@ export { HoverService } from '../vscode/vs/workbench/services/hover/browser/hove
10
10
  export { PanelPart } from '../vscode/vs/workbench/browser/parts/panel/panelPart.js';
11
11
  export { IEditorOptions } from '../vscode/vs/platform/editor/common/editor.js';
12
12
  import { Codicon } from '../vscode/vs/base/common/codicons.js';
13
+ import { IEditorCloseHandler, EditorInput } from '../vscode/vs/workbench/common/editor/editorInput.js';
13
14
  export { IResolvedTextEditorModel } from '../vscode/vs/editor/common/services/resolverService.js';
14
15
  export { StatusbarPart } from '../vscode/vs/workbench/browser/parts/statusbar/statusbarPart.js';
16
+ export { ConfirmResult } from '../vscode/vs/platform/dialogs/common/dialogs.js';
15
17
  import { OpenEditor } from '../dist/types/src/service-override/tools/editor.js';
16
18
 
17
19
  declare function renderActivitybarPar(container: HTMLElement): IDisposable;
@@ -19,8 +21,28 @@ declare function renderSidebarPart(container: HTMLElement): IDisposable;
19
21
  declare function renderPanelPart(container: HTMLElement): IDisposable;
20
22
  declare function renderEditorPart(container: HTMLElement): IDisposable;
21
23
  declare function renderStatusBarPart(container: HTMLElement): IDisposable;
24
+ type Label = string | {
25
+ short: string;
26
+ medium: string;
27
+ long: string;
28
+ };
29
+ interface EditorPanelOption {
30
+ readonly id: string;
31
+ name: string;
32
+ renderBody(container: HTMLElement): IDisposable;
33
+ }
34
+ interface SimpleEditorInput extends EditorInput {
35
+ setName(name: Label): void;
36
+ setTitle(title: Label): void;
37
+ setDescription(description: Label): void;
38
+ setDirty(dirty: boolean): void;
39
+ }
40
+ declare function registerEditorPane(options: EditorPanelOption): {
41
+ disposable: IDisposable;
42
+ CustomEditorInput: new (closeHandler?: IEditorCloseHandler) => SimpleEditorInput;
43
+ };
22
44
  interface CustomViewOption {
23
- id: string;
45
+ readonly id: string;
24
46
  name: string;
25
47
  order?: number;
26
48
  renderBody(container: HTMLElement): IDisposable;
@@ -42,4 +64,4 @@ declare function registerCustomView(options: CustomViewOption): IDisposable;
42
64
  declare function isEditorPartVisible(): boolean;
43
65
  declare function getServiceOverride(openEditorFallback?: OpenEditor, _webviewIframeAlternateDomains?: string): IEditorOverrideServices;
44
66
 
45
- export { CustomViewOption, OpenEditor, ViewContainerLocation, getServiceOverride as default, isEditorPartVisible, registerCustomView, renderActivitybarPar, renderEditorPart, renderPanelPart, renderSidebarPart, renderStatusBarPart };
67
+ export { CustomViewOption, EditorPanelOption, IEditorCloseHandler, OpenEditor, ViewContainerLocation, getServiceOverride as default, isEditorPartVisible, registerCustomView, registerEditorPane, renderActivitybarPar, renderEditorPart, renderPanelPart, renderSidebarPart, renderStatusBarPart };
@@ -53,6 +53,8 @@ import { IBreadcrumbsService, BreadcrumbsService } from '../vscode/vs/workbench/
53
53
  import { IContextViewService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
54
54
  import { ContextViewService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextViewService.js';
55
55
  import { ICodeEditorService } from 'monaco-editor/esm/vs/editor/browser/services/codeEditorService.js';
56
+ import { EditorInput } from '../vscode/vs/workbench/common/editor/editorInput.js';
57
+ import { EditorExtensions } from '../vscode/vs/workbench/common/editor.js';
56
58
  import { ITextModelService } from 'monaco-editor/esm/vs/editor/common/services/resolverService.js';
57
59
  import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
58
60
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
@@ -81,6 +83,13 @@ import { IWebviewWorkbenchService, WebviewEditorService } from '../vscode/vs/wor
81
83
  import { IWebviewService } from '../vscode/vs/workbench/contrib/webview/browser/webview.js';
82
84
  import { IWebviewViewService, WebviewViewService } from '../vscode/vs/workbench/contrib/webviewView/browser/webviewViewService.js';
83
85
  import { ILifecycleService } from '../vscode/vs/workbench/services/lifecycle/common/lifecycle.js';
86
+ import { positionToString } from '../vscode/vs/workbench/services/layout/browser/layoutService.js';
87
+ import { EditorPaneDescriptor } from '../vscode/vs/workbench/browser/editor.js';
88
+ import { EditorPane } from '../vscode/vs/workbench/browser/parts/editor/editorPane.js';
89
+ import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
90
+ import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
91
+ import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
92
+ export { ConfirmResult } from '../override/vs/platform/dialogs/common/dialogs.js';
84
93
  import { wrapOpenEditor } from './tools/editor.js';
85
94
  import getServiceOverride$2 from './bulkEdit.js';
86
95
  import getServiceOverride$1 from './layout.js';
@@ -130,12 +139,21 @@ class PaneCompositePartService {
130
139
  return paneCompositeSelectorParts.get(viewContainerLocation);
131
140
  }
132
141
  }
133
- function renderPart(part, container, classNames) {
134
- const panelEl = document.createElement('div');
135
- container.append(panelEl);
136
- panelEl.classList.add(...classNames);
137
- panelEl.oncontextmenu = () => false;
138
- part.create(panelEl);
142
+ function createPart(id, role, classes) {
143
+ const part = document.createElement(role === 'status' ? 'footer' : 'div');
144
+ part.classList.add('part', ...classes);
145
+ part.id = id;
146
+ part.setAttribute('role', role);
147
+ if (role === 'status') {
148
+ part.setAttribute('aria-live', 'off');
149
+ }
150
+ return part;
151
+ }
152
+ function renderPart(id, role, classes, part, container) {
153
+ const partContainer = createPart(id, role, classes);
154
+ container.append(partContainer);
155
+ partContainer.oncontextmenu = () => false;
156
+ part.create(partContainer);
139
157
  function layout() {
140
158
  part.layout(Math.max(part.minimumWidth, Math.min(part.maximumWidth, container.offsetWidth)), Math.max(part.minimumHeight, Math.min(part.maximumHeight, container.offsetHeight)), 0, 0);
141
159
  }
@@ -156,13 +174,13 @@ function renderPart(part, container, classNames) {
156
174
  function renderActivitybarPar(container) {
157
175
  const activitybarPart = StandaloneServices.get(IInstantiationService).createInstance(ActivitybarPart, paneCompositeParts.get(0 ));
158
176
  paneCompositeSelectorParts.set(0 , activitybarPart);
159
- activitybarPart['_register'](renderPart(activitybarPart, container, ['part', 'activitybar', 'left']));
177
+ activitybarPart['_register'](renderPart("workbench.parts.activitybar" , 'none', ['activitybar', 'left'], activitybarPart, container));
160
178
  return activitybarPart;
161
179
  }
162
180
  function renderSidebarPart(container) {
163
181
  const sidebarPart = StandaloneServices.get(IInstantiationService).createInstance(SidebarPart);
164
182
  paneCompositeParts.set(0 , sidebarPart);
165
- sidebarPart['_register'](renderPart(sidebarPart, container, ['part', 'sidebar', 'left']));
183
+ sidebarPart['_register'](renderPart("workbench.parts.sidebar" , 'none', ['sidebar', 'left'], sidebarPart, container));
166
184
  if (sidebarPart.getPaneComposites().length > 0) {
167
185
  void sidebarPart.openPaneComposite(sidebarPart.getPaneComposites()[0].id);
168
186
  }
@@ -172,7 +190,7 @@ function renderPanelPart(container) {
172
190
  const panelPart = StandaloneServices.get(IInstantiationService).createInstance(PanelPart);
173
191
  paneCompositeSelectorParts.set(1 , panelPart);
174
192
  paneCompositeParts.set(1 , panelPart);
175
- panelPart['_register'](renderPart(panelPart, container, ['part', 'panel', 'basepanel']));
193
+ panelPart['_register'](renderPart("workbench.parts.panel" , 'none', ['panel', 'basepanel', positionToString(0 )], panelPart, container));
176
194
  if (panelPart.getPaneComposites().length > 0) {
177
195
  void panelPart.openPaneComposite(panelPart.getPaneComposites()[0].id);
178
196
  }
@@ -180,11 +198,98 @@ function renderPanelPart(container) {
180
198
  }
181
199
  function renderEditorPart(container) {
182
200
  const editorPart = StandaloneServices.get(IEditorGroupsService);
183
- return renderPart(editorPart, container, ['part', 'editor']);
201
+ return renderPart("workbench.parts.editor" , 'main', ['editor'], editorPart, container);
184
202
  }
185
203
  function renderStatusBarPart(container) {
186
204
  const statusBarPart = StandaloneServices.get(IStatusbarService);
187
- return renderPart(statusBarPart, container, ['part', 'statusbar']);
205
+ return renderPart("workbench.parts.statusbar" , 'status', ['statusbar'], statusBarPart, container);
206
+ }
207
+ function registerEditorPane(options) {
208
+ let CustomEditorPane = class CustomEditorPane extends EditorPane {
209
+ constructor(telemetryService, themeService, storageService) {
210
+ super(options.id, telemetryService, themeService, storageService);
211
+ }
212
+ createEditor(parent) {
213
+ this.content = $('.editor-pane-content');
214
+ this.content.style.display = 'flex';
215
+ this.content.style.alignItems = 'stretch';
216
+ append(parent, this.content);
217
+ this._register(options.renderBody(this.content));
218
+ }
219
+ layout(dimension) {
220
+ this.content.style.height = `${dimension.height}px`;
221
+ this.content.style.width = `${dimension.width}px`;
222
+ }
223
+ };
224
+ CustomEditorPane = __decorate([
225
+ ( __param(0, ITelemetryService)),
226
+ ( __param(1, IThemeService)),
227
+ ( __param(2, IStorageService))
228
+ ], CustomEditorPane);
229
+ class CustomEditorInput extends EditorInput {
230
+ constructor(closeHandler) {
231
+ super();
232
+ this.closeHandler = closeHandler;
233
+ this.name = options.name;
234
+ this.title = options.name;
235
+ this.description = options.name;
236
+ this.dirty = false;
237
+ }
238
+ get typeId() {
239
+ return CustomEditorInput.ID;
240
+ }
241
+ get resource() {
242
+ return undefined;
243
+ }
244
+ setName(name) {
245
+ this.name = name;
246
+ this._onDidChangeLabel.fire();
247
+ }
248
+ setTitle(title) {
249
+ this.title = title;
250
+ this._onDidChangeLabel.fire();
251
+ }
252
+ setDescription(description) {
253
+ this.description = description;
254
+ this._onDidChangeLabel.fire();
255
+ }
256
+ getLabelValue(label, verbosity) {
257
+ if (typeof label === 'string') {
258
+ return label;
259
+ }
260
+ switch (verbosity) {
261
+ case 0 :
262
+ return label.short;
263
+ case 2 :
264
+ return label.long;
265
+ case 1 :
266
+ default:
267
+ return label.medium;
268
+ }
269
+ }
270
+ getName() {
271
+ return this.name;
272
+ }
273
+ getTitle(verbosity) {
274
+ return this.getLabelValue(this.title, verbosity);
275
+ }
276
+ getDescription(verbosity) {
277
+ return this.getLabelValue(this.description, verbosity);
278
+ }
279
+ isDirty() {
280
+ return this.dirty;
281
+ }
282
+ setDirty(dirty) {
283
+ this.dirty = dirty;
284
+ this._onDidChangeDirty.fire();
285
+ }
286
+ }
287
+ CustomEditorInput.ID = `workbench.editors.${options.id}Input`;
288
+ const disposable = ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(CustomEditorPane, options.id, options.name), [new SyncDescriptor(CustomEditorInput)]);
289
+ return {
290
+ disposable,
291
+ CustomEditorInput
292
+ };
188
293
  }
189
294
  function registerCustomView(options) {
190
295
  const iconUrl = options.icon != null ? ( URI.parse(options.icon)) : undefined;
@@ -311,10 +416,10 @@ MonacoEditorService = __decorate([
311
416
  ], MonacoEditorService);
312
417
  let webviewIframeAlternateDomains;
313
418
  registerAssets({
314
- 'vs/workbench/contrib/webview/browser/pre/service-worker.js': () => changeUrlDomain(new URL(new URL('../assets/service-worker.js', import.meta.url).href, import.meta.url).href, webviewIframeAlternateDomains),
315
- 'vs/workbench/contrib/webview/browser/pre/index.html': () => changeUrlDomain(new URL(new URL('../assets/index.html', import.meta.url).href, import.meta.url).href, webviewIframeAlternateDomains),
316
- 'vs/workbench/contrib/webview/browser/pre/index-no-csp.html': () => changeUrlDomain(new URL(new URL('../assets/index-no-csp.html', import.meta.url).href, import.meta.url).href, webviewIframeAlternateDomains),
317
- 'vs/workbench/contrib/webview/browser/pre/fake.html': () => changeUrlDomain(new URL(new URL('../assets/fake.html', import.meta.url).href, import.meta.url).href, webviewIframeAlternateDomains)
419
+ 'vs/workbench/contrib/webview/browser/pre/service-worker.js': () => changeUrlDomain(new URL('../assets/service-worker.js', import.meta.url).href, webviewIframeAlternateDomains),
420
+ 'vs/workbench/contrib/webview/browser/pre/index.html': () => changeUrlDomain(new URL('../assets/index.html', import.meta.url).href, webviewIframeAlternateDomains),
421
+ 'vs/workbench/contrib/webview/browser/pre/index-no-csp.html': () => changeUrlDomain(new URL('../assets/index-no-csp.html', import.meta.url).href, webviewIframeAlternateDomains),
422
+ 'vs/workbench/contrib/webview/browser/pre/fake.html': () => changeUrlDomain(new URL('../assets/fake.html', import.meta.url).href, webviewIframeAlternateDomains)
318
423
  });
319
424
  function getServiceOverride(openEditorFallback, _webviewIframeAlternateDomains) {
320
425
  if (_webviewIframeAlternateDomains != null) {
@@ -348,4 +453,4 @@ function getServiceOverride(openEditorFallback, _webviewIframeAlternateDomains)
348
453
  [( IWebviewWorkbenchService.toString())]: new SyncDescriptor(WebviewEditorService)
349
454
  };
350
455
  }
351
- export { ActivityService, ActivitybarPart, HoverService, PanelPart, SidebarPart, StatusbarPart, getServiceOverride as default, isEditorPartVisible, registerCustomView, renderActivitybarPar, renderEditorPart, renderPanelPart, renderSidebarPart, renderStatusBarPart };
456
+ export { ActivityService, ActivitybarPart, HoverService, PanelPart, SidebarPart, StatusbarPart, getServiceOverride as default, isEditorPartVisible, registerCustomView, registerEditorPane, renderActivitybarPar, renderEditorPart, renderPanelPart, renderSidebarPart, renderStatusBarPart };
@@ -6,7 +6,7 @@ export { IColorTheme, IThemeService } from './vscode/vs/platform/theme/common/th
6
6
  export { IStorageService, StorageScope, StorageTarget } from './vscode/vs/platform/storage/common/storage.js';
7
7
  import { IEditorOverrideServices } from './vscode/vs/editor/standalone/browser/standaloneServices.js';
8
8
  export { StandaloneServices } from './vscode/vs/editor/standalone/browser/standaloneServices.js';
9
- import { ServicesAccessor } from './vscode/vs/platform/instantiation/common/instantiation.js';
9
+ import { ServicesAccessor, ServiceIdentifier } from './vscode/vs/platform/instantiation/common/instantiation.js';
10
10
  export { IInstantiationService } from './vscode/vs/platform/instantiation/common/instantiation.js';
11
11
  export { IAction } from './vscode/vs/base/common/actions.js';
12
12
  export { SyncDescriptor } from './vscode/vs/platform/instantiation/common/descriptors.js';
@@ -69,6 +69,7 @@ interface ServiceInitializeParticipant {
69
69
  }
70
70
  declare function registerServiceInitializeParticipant(participant: ServiceInitializeParticipant): void;
71
71
  declare const onRenderWorkbench: Event<ServicesAccessor>;
72
+ declare function getService<T>(identifier: ServiceIdentifier<T>): Promise<T>;
72
73
  declare function initialize(overrides: IEditorOverrideServices): Promise<void>;
73
74
 
74
- export { initialize, onRenderWorkbench, registerServiceInitializeParticipant };
75
+ export { getService, initialize, onRenderWorkbench, registerServiceInitializeParticipant };
package/dist/services.js CHANGED
@@ -5,7 +5,7 @@ import { Extensions } from './vscode/vs/workbench/common/contributions.js';
5
5
  import { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js';
6
6
  export { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js';
7
7
  import { ILifecycleService } from './vscode/vs/workbench/services/lifecycle/common/lifecycle.js';
8
- import { RunOnceScheduler, runWhenIdle } from 'monaco-editor/esm/vs/base/common/async.js';
8
+ import { Barrier, RunOnceScheduler, runWhenIdle } from 'monaco-editor/esm/vs/base/common/async.js';
9
9
  import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
10
10
  import getServiceOverride from './service-override/layout.js';
11
11
  import getServiceOverride$1 from './service-override/environment.js';
@@ -22,7 +22,7 @@ export { ILanguageFeaturesService } from 'monaco-editor/esm/vs/editor/common/ser
22
22
  export { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
23
23
  export { ITextModelService } from 'monaco-editor/esm/vs/editor/common/services/resolverService.js';
24
24
  export { IClipboardService } from 'monaco-editor/esm/vs/platform/clipboard/common/clipboardService.js';
25
- export { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
25
+ import './override/vs/platform/dialogs/common/dialogs.js';
26
26
  export { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
27
27
  export { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
28
28
  export { IMarkerService } from 'monaco-editor/esm/vs/platform/markers/common/markers.js';
@@ -65,6 +65,7 @@ export { IActivityService } from './vscode/vs/workbench/services/activity/common
65
65
  export { IHoverService } from './vscode/vs/workbench/services/hover/browser/hover.js';
66
66
  export { IExplorerService } from './vscode/vs/workbench/contrib/files/browser/files.js';
67
67
  export { IStatusbarService } from './vscode/vs/workbench/services/statusbar/browser/statusbar.js';
68
+ export { IDialogService } from './vscode/vs/platform/dialogs/common/dialogs.js';
68
69
  const serviceInitializeParticipants = [];
69
70
  function registerServiceInitializeParticipant(participant) {
70
71
  serviceInitializeParticipants.push(participant);
@@ -85,8 +86,14 @@ async function initServices(overrides) {
85
86
  }
86
87
  const renderWorkbenchEmitter = new Emitter();
87
88
  const onRenderWorkbench = renderWorkbenchEmitter.event;
89
+ const serviceInitializedBarrier = new Barrier();
90
+ async function getService(identifier) {
91
+ await serviceInitializedBarrier.wait();
92
+ return StandaloneServices.get(identifier);
93
+ }
88
94
  async function initialize(overrides) {
89
95
  const instantiationService = await initServices(overrides);
96
+ serviceInitializedBarrier.open();
90
97
  instantiationService.invokeFunction(accessor => {
91
98
  const lifecycleService = accessor.get(ILifecycleService);
92
99
  ( Registry.as(Extensions.Workbench)).start(accessor);
@@ -100,4 +107,4 @@ async function initialize(overrides) {
100
107
  eventuallyPhaseScheduler.schedule();
101
108
  });
102
109
  }
103
- export { initialize, onRenderWorkbench, registerServiceInitializeParticipant };
110
+ export { getService, initialize, onRenderWorkbench, registerServiceInitializeParticipant };
@@ -1,20 +1,20 @@
1
1
  var audioAssets = {
2
- 'vs/platform/audioCues/browser/media/break.mp3': new URL('../../../../../../assets/break.mp3', import.meta.url).href,
3
- 'vs/platform/audioCues/browser/media/chatRequestSent.mp3': new URL('../../../../../../assets/chatRequestSent.mp3', import.meta.url).href,
4
- 'vs/platform/audioCues/browser/media/chatResponsePending.mp3': new URL('../../../../../../assets/chatResponsePending.mp3', import.meta.url).href,
5
- 'vs/platform/audioCues/browser/media/chatResponseReceived1.mp3': new URL('../../../../../../assets/chatResponseReceived1.mp3', import.meta.url).href,
6
- 'vs/platform/audioCues/browser/media/chatResponseReceived2.mp3': new URL('../../../../../../assets/chatResponseReceived2.mp3', import.meta.url).href,
7
- 'vs/platform/audioCues/browser/media/chatResponseReceived3.mp3': new URL('../../../../../../assets/chatResponseReceived3.mp3', import.meta.url).href,
8
- 'vs/platform/audioCues/browser/media/chatResponseReceived4.mp3': new URL('../../../../../../assets/chatResponseReceived4.mp3', import.meta.url).href,
9
- 'vs/platform/audioCues/browser/media/diffLineDeleted.mp3': new URL('../../../../../../assets/diffLineDeleted.mp3', import.meta.url).href,
10
- 'vs/platform/audioCues/browser/media/diffLineInserted.mp3': new URL('../../../../../../assets/diffLineInserted.mp3', import.meta.url).href,
11
- 'vs/platform/audioCues/browser/media/diffLineModified.mp3': new URL('../../../../../../assets/diffLineModified.mp3', import.meta.url).href,
12
- 'vs/platform/audioCues/browser/media/error.mp3': new URL('../../../../../../assets/error.mp3', import.meta.url).href,
13
- 'vs/platform/audioCues/browser/media/foldedAreas.mp3': new URL('../../../../../../assets/foldedAreas.mp3', import.meta.url).href,
14
- 'vs/platform/audioCues/browser/media/quickFixes.mp3': new URL('../../../../../../assets/quickFixes.mp3', import.meta.url).href,
15
- 'vs/platform/audioCues/browser/media/taskCompleted.mp3': new URL('../../../../../../assets/taskCompleted.mp3', import.meta.url).href,
16
- 'vs/platform/audioCues/browser/media/taskFailed.mp3': new URL('../../../../../../assets/taskFailed.mp3', import.meta.url).href,
17
- 'vs/platform/audioCues/browser/media/terminalBell.mp3': new URL('../../../../../../assets/terminalBell.mp3', import.meta.url).href,
18
- 'vs/platform/audioCues/browser/media/warning.mp3': new URL('../../../../../../assets/warning.mp3', import.meta.url).href
2
+ 'vs/platform/audioCues/browser/media/break.mp3': '../../../../../../assets/break.mp3',
3
+ 'vs/platform/audioCues/browser/media/chatRequestSent.mp3': '../../../../../../assets/chatRequestSent.mp3',
4
+ 'vs/platform/audioCues/browser/media/chatResponsePending.mp3': '../../../../../../assets/chatResponsePending.mp3',
5
+ 'vs/platform/audioCues/browser/media/chatResponseReceived1.mp3': '../../../../../../assets/chatResponseReceived1.mp3',
6
+ 'vs/platform/audioCues/browser/media/chatResponseReceived2.mp3': '../../../../../../assets/chatResponseReceived2.mp3',
7
+ 'vs/platform/audioCues/browser/media/chatResponseReceived3.mp3': '../../../../../../assets/chatResponseReceived3.mp3',
8
+ 'vs/platform/audioCues/browser/media/chatResponseReceived4.mp3': '../../../../../../assets/chatResponseReceived4.mp3',
9
+ 'vs/platform/audioCues/browser/media/diffLineDeleted.mp3': '../../../../../../assets/diffLineDeleted.mp3',
10
+ 'vs/platform/audioCues/browser/media/diffLineInserted.mp3': '../../../../../../assets/diffLineInserted.mp3',
11
+ 'vs/platform/audioCues/browser/media/diffLineModified.mp3': '../../../../../../assets/diffLineModified.mp3',
12
+ 'vs/platform/audioCues/browser/media/error.mp3': '../../../../../../assets/error.mp3',
13
+ 'vs/platform/audioCues/browser/media/foldedAreas.mp3': '../../../../../../assets/foldedAreas.mp3',
14
+ 'vs/platform/audioCues/browser/media/quickFixes.mp3': '../../../../../../assets/quickFixes.mp3',
15
+ 'vs/platform/audioCues/browser/media/taskCompleted.mp3': '../../../../../../assets/taskCompleted.mp3',
16
+ 'vs/platform/audioCues/browser/media/taskFailed.mp3': '../../../../../../assets/taskFailed.mp3',
17
+ 'vs/platform/audioCues/browser/media/terminalBell.mp3': '../../../../../../assets/terminalBell.mp3',
18
+ 'vs/platform/audioCues/browser/media/warning.mp3': '../../../../../../assets/warning.mp3'
19
19
  };
20
20
  export { audioAssets as default };
@@ -0,0 +1,126 @@
1
+ import { basename } from 'monaco-editor/esm/vs/base/common/resources.js';
2
+ import Severity from 'monaco-editor/esm/vs/base/common/severity.js';
3
+ import { localize } from 'monaco-editor/esm/vs/nls.js';
4
+ import { createDecorator } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
5
+ const IDialogService = ( createDecorator('dialogService'));
6
+ var DialogKind;
7
+ ( (function(DialogKind) {
8
+ DialogKind[DialogKind["Confirmation"] = 1] = "Confirmation";
9
+ DialogKind[DialogKind["Prompt"] = 2] = "Prompt";
10
+ DialogKind[DialogKind["Input"] = 3] = "Input";
11
+ })(DialogKind || (DialogKind = {})));
12
+ class AbstractDialogHandler {
13
+ getConfirmationButtons(dialog) {
14
+ return this.getButtons(dialog, DialogKind.Confirmation);
15
+ }
16
+ getPromptButtons(dialog) {
17
+ return this.getButtons(dialog, DialogKind.Prompt);
18
+ }
19
+ getInputButtons(dialog) {
20
+ return this.getButtons(dialog, DialogKind.Input);
21
+ }
22
+ getButtons(dialog, kind) {
23
+ const buttons = [];
24
+ switch (kind) {
25
+ case DialogKind.Confirmation: {
26
+ const confirmationDialog = dialog;
27
+ if (confirmationDialog.primaryButton) {
28
+ buttons.push(confirmationDialog.primaryButton);
29
+ }
30
+ else {
31
+ buttons.push(( localize({ key: 'yesButton', comment: ['&& denotes a mnemonic'] }, "&&Yes")));
32
+ }
33
+ if (confirmationDialog.cancelButton) {
34
+ buttons.push(confirmationDialog.cancelButton);
35
+ }
36
+ else {
37
+ buttons.push(( localize('cancelButton', "Cancel")));
38
+ }
39
+ break;
40
+ }
41
+ case DialogKind.Prompt: {
42
+ const promptDialog = dialog;
43
+ if (Array.isArray(promptDialog.buttons) && promptDialog.buttons.length > 0) {
44
+ buttons.push(...( promptDialog.buttons.map(button => button.label)));
45
+ }
46
+ if (promptDialog.cancelButton) {
47
+ if (promptDialog.cancelButton === true) {
48
+ buttons.push(( localize('cancelButton', "Cancel")));
49
+ }
50
+ else if (typeof promptDialog.cancelButton === 'string') {
51
+ buttons.push(promptDialog.cancelButton);
52
+ }
53
+ else {
54
+ if (promptDialog.cancelButton.label) {
55
+ buttons.push(promptDialog.cancelButton.label);
56
+ }
57
+ else {
58
+ buttons.push(( localize('cancelButton', "Cancel")));
59
+ }
60
+ }
61
+ }
62
+ if (buttons.length === 0) {
63
+ buttons.push(( localize({ key: 'okButton', comment: ['&& denotes a mnemonic'] }, "&&OK")));
64
+ }
65
+ break;
66
+ }
67
+ case DialogKind.Input: {
68
+ const inputDialog = dialog;
69
+ if (inputDialog.primaryButton) {
70
+ buttons.push(inputDialog.primaryButton);
71
+ }
72
+ else {
73
+ buttons.push(( localize({ key: 'okButton', comment: ['&& denotes a mnemonic'] }, "&&OK")));
74
+ }
75
+ if (inputDialog.cancelButton) {
76
+ buttons.push(inputDialog.cancelButton);
77
+ }
78
+ else {
79
+ buttons.push(( localize('cancelButton', "Cancel")));
80
+ }
81
+ break;
82
+ }
83
+ }
84
+ return buttons;
85
+ }
86
+ getDialogType(type) {
87
+ if (typeof type === 'string') {
88
+ return type;
89
+ }
90
+ if (typeof type === 'number') {
91
+ return (type === Severity.Info) ? 'info' : (type === Severity.Error) ? 'error' : (type === Severity.Warning) ? 'warning' : 'none';
92
+ }
93
+ return undefined;
94
+ }
95
+ async getPromptResult(prompt, buttonIndex, checkboxChecked) {
96
+ const promptButtons = [...(prompt.buttons ?? [])];
97
+ if (prompt.cancelButton && typeof prompt.cancelButton !== 'string' && typeof prompt.cancelButton !== 'boolean') {
98
+ promptButtons.push(prompt.cancelButton);
99
+ }
100
+ const result = await promptButtons[buttonIndex]?.run({ checkboxChecked });
101
+ return { result, checkboxChecked };
102
+ }
103
+ }
104
+ const IFileDialogService = ( createDecorator('fileDialogService'));
105
+ const MAX_CONFIRM_FILES = 10;
106
+ function getFileNamesMessage(fileNamesOrResources) {
107
+ const message = [];
108
+ message.push(...( fileNamesOrResources.slice(0, MAX_CONFIRM_FILES).map(
109
+ fileNameOrResource => typeof fileNameOrResource === 'string' ? fileNameOrResource : basename(fileNameOrResource)
110
+ )));
111
+ if (fileNamesOrResources.length > MAX_CONFIRM_FILES) {
112
+ if (fileNamesOrResources.length - MAX_CONFIRM_FILES === 1) {
113
+ message.push(( localize('moreFile', "...1 additional file not shown")));
114
+ }
115
+ else {
116
+ message.push(( localize(
117
+ 'moreFiles',
118
+ "...{0} additional files not shown",
119
+ fileNamesOrResources.length - MAX_CONFIRM_FILES
120
+ )));
121
+ }
122
+ }
123
+ message.push('');
124
+ return message.join('\n');
125
+ }
126
+ export { AbstractDialogHandler, IDialogService, IFileDialogService, getFileNamesMessage };