@codingame/monaco-vscode-api 1.82.6 → 1.83.0-next.0

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 (199) hide show
  1. package/api.js +5 -5
  2. package/assets/index-no-csp.html +2 -1
  3. package/assets/index.html +3 -2
  4. package/extensions.js +17 -14
  5. package/external/xterm/typings/xterm.d.ts +171 -109
  6. package/missing-services.js +33 -22
  7. package/monaco-editor-treemending.patch +1745 -1628
  8. package/monaco-treemending.js +2 -2
  9. package/monaco.js +2 -2
  10. package/package.json +2 -2
  11. package/service-override/extensions.js +10 -11
  12. package/services.d.ts +1 -1
  13. package/vscode/src/vs/base/browser/ui/menu/menubar.js +1 -1
  14. package/vscode/src/vs/base/common/event.d.ts +13 -17
  15. package/vscode/src/vs/base/common/keyCodes.d.ts +18 -18
  16. package/vscode/src/vs/base/common/lifecycle.d.ts +9 -0
  17. package/vscode/src/vs/base/common/observableInternal/base.d.ts +2 -0
  18. package/vscode/src/vs/base/common/product.d.ts +1 -0
  19. package/vscode/src/vs/base/parts/ipc/common/ipc.js +6 -2
  20. package/vscode/src/vs/base/parts/storage/common/storage.d.ts +1 -0
  21. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +12 -3
  22. package/vscode/src/vs/editor/common/core/lineRange.d.ts +0 -5
  23. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +9 -2
  24. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +6 -20
  25. package/vscode/src/vs/editor/common/diff/legacyLinesDiffComputer.d.ts +2 -2
  26. package/vscode/src/vs/editor/common/diff/linesDiffComputer.d.ts +5 -55
  27. package/vscode/src/vs/editor/common/diff/rangeMapping.d.ts +55 -0
  28. package/vscode/src/vs/editor/common/languages.d.ts +7 -10
  29. package/vscode/src/vs/editor/common/model.d.ts +1 -1
  30. package/vscode/src/vs/platform/actions/common/actions.d.ts +1 -0
  31. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +5 -5
  32. package/vscode/src/vs/platform/files/common/fileService.js +46 -40
  33. package/vscode/src/vs/platform/files/common/files.d.ts +46 -1
  34. package/vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js +45 -0
  35. package/vscode/src/vs/platform/storage/common/storage.d.ts +5 -0
  36. package/vscode/src/vs/platform/storage/common/storage.js +4 -0
  37. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +4 -1
  38. package/vscode/src/vs/platform/terminal/common/terminal.js +1 -3
  39. package/vscode/src/vs/platform/tunnel/common/tunnel.d.ts +1 -1
  40. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.d.ts +1 -0
  41. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +11 -0
  42. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents.js +50 -0
  43. package/vscode/src/vs/workbench/api/browser/mainThreadChatSlashCommands.js +3 -2
  44. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +16 -11
  45. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +20 -6
  46. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +2 -2
  47. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +1 -1
  48. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +8 -8
  49. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +3 -2
  50. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +93 -0
  51. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +3 -166
  52. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +3 -0
  53. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +18 -11
  54. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +14 -9
  55. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -1
  56. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +11 -2
  57. package/vscode/src/vs/workbench/api/common/extHostChat.js +10 -1
  58. package/vscode/src/vs/workbench/api/common/extHostChatAgents.js +62 -0
  59. package/vscode/src/vs/workbench/api/common/extHostChatSlashCommand.js +13 -4
  60. package/vscode/src/vs/workbench/api/common/extHostCommands.js +4 -4
  61. package/vscode/src/vs/workbench/api/common/extHostComments.js +1 -1
  62. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +36 -4
  63. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +6 -29
  64. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +24 -12
  65. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +0 -2
  66. package/vscode/src/vs/workbench/api/common/extHostRequireInterceptor.js +0 -63
  67. package/vscode/src/vs/workbench/api/common/extHostSCM.js +80 -0
  68. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +24 -0
  69. package/vscode/src/vs/workbench/api/common/extHostTesting.js +14 -10
  70. package/vscode/src/vs/workbench/api/common/extHostTextEditor.js +4 -4
  71. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +11 -7
  72. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +34 -16
  73. package/vscode/src/vs/workbench/api/common/extHostTypes.js +31 -13
  74. package/vscode/src/vs/workbench/api/common/extHostWebview.js +14 -2
  75. package/vscode/src/vs/workbench/api/common/extHostWebviewPanels.js +11 -5
  76. package/vscode/src/vs/workbench/api/common/extensionHostMain.js +1 -1
  77. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +32 -9
  78. package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +3 -1
  79. package/vscode/src/vs/workbench/browser/codeeditor.js +1 -1
  80. package/vscode/src/vs/workbench/browser/dnd.js +7 -6
  81. package/vscode/src/vs/workbench/browser/media/part.css.js +1 -1
  82. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +7 -10
  83. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +7 -1
  84. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +9 -3
  85. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +1 -1
  86. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +9 -2
  87. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +44 -14
  88. package/vscode/src/vs/workbench/browser/parts/editor/media/editorplaceholder.css.js +1 -1
  89. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +3 -19
  90. package/vscode/src/vs/workbench/browser/parts/editor/textResourceEditor.js +1 -1
  91. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +9 -3
  92. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.d.ts +1 -1
  93. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +10 -9
  94. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +2 -0
  95. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +2 -2
  96. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +6 -5
  97. package/vscode/src/vs/workbench/browser/web.api.d.ts +0 -6
  98. package/vscode/src/vs/workbench/browser/workbench.contribution.js +34 -3
  99. package/vscode/src/vs/workbench/common/contextkeys.js +2 -1
  100. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +4 -4
  101. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +0 -1
  102. package/vscode/src/vs/workbench/common/editor/editorInput.js +2 -4
  103. package/vscode/src/vs/workbench/common/editor/editorModel.d.ts +0 -1
  104. package/vscode/src/vs/workbench/common/editor/editorModel.js +1 -3
  105. package/vscode/src/vs/workbench/common/editor.d.ts +2 -0
  106. package/vscode/src/vs/workbench/common/theme.js +21 -1
  107. package/vscode/src/vs/workbench/common/views.d.ts +1 -1
  108. package/vscode/src/vs/workbench/common/views.js +1 -2
  109. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +12 -4
  110. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +335 -0
  111. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +81 -27
  112. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +1 -1
  113. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +22 -14
  114. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +2 -0
  115. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +136 -0
  116. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +14 -3
  117. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +78 -1
  118. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -17
  119. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +30 -26
  120. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +23 -18
  122. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +8 -8
  123. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +55 -20
  124. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +26 -10
  125. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +7 -6
  126. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +58 -9
  127. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +9 -6
  128. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +171 -0
  129. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +204 -33
  130. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +3 -7
  131. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +2 -2
  132. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +21 -4
  134. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +22 -0
  135. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +5 -2
  136. package/vscode/src/vs/workbench/contrib/debug/common/debugUtils.js +2 -1
  137. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +1 -1
  138. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +2 -2
  139. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +4 -4
  140. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +7 -4
  142. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -1
  143. package/vscode/src/vs/workbench/contrib/files/common/files.js +7 -5
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +2 -2
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +2 -1
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +17 -17
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +2 -2
  149. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +4 -1
  150. package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +22 -19
  151. package/vscode/src/vs/workbench/contrib/output/browser/outputServices.js +2 -38
  152. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +14 -1
  153. package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +3 -8
  154. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +10 -12
  155. package/vscode/src/vs/workbench/contrib/snippets/browser/tabCompletion.js +2 -2
  156. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +2 -2
  157. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +0 -16
  158. package/vscode/src/vs/workbench/contrib/testing/common/observableValue.js +2 -1
  159. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +8 -6
  160. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +2 -4
  161. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +2 -4
  162. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +7 -3
  163. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +2 -6
  164. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +18 -20
  165. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +9 -13
  166. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -1
  167. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +47 -15
  168. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.d.ts +14 -4
  169. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +22 -3
  170. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +1 -1
  171. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +15 -14
  172. package/vscode/src/vs/workbench/services/extensions/common/extensionHostProtocol.d.ts +12 -7
  173. package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +10 -6
  174. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +27 -11
  175. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +2 -5
  176. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +7 -11
  177. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +20 -4
  178. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +24 -16
  179. package/vscode/src/vs/workbench/services/output/common/output.js +1 -2
  180. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +6 -6
  181. package/vscode/src/vs/workbench/services/preferences/common/preferences.js +4 -3
  182. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.d.ts +0 -1
  183. package/vscode/src/vs/workbench/services/search/common/fileSearchManager.js +3 -1
  184. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  185. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +1 -2
  186. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +2 -2
  187. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileService.js +3 -8
  188. package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +3 -4
  189. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopySaveParticipant.js +1 -0
  190. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupService.js +2 -1
  191. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyService.js +4 -2
  192. package/vscode/src/vs/editor/browser/widget/diffEditorWidget2/diffEditorWidget2.contribution.js +0 -180
  193. package/vscode/src/vs/platform/credentials/common/credentials.d.ts +0 -13
  194. package/vscode/src/vs/platform/credentials/common/credentials.js +0 -3
  195. package/vscode/src/vs/workbench/api/browser/mainThreadKeytar.js +0 -31
  196. package/vscode/src/vs/workbench/browser/iframe.js +0 -16
  197. package/vscode/src/vs/workbench/browser/parts/editor/accessibilityStatus.js +0 -90
  198. package/vscode/src/vs/workbench/browser/parts/editor/tabFocus.js +0 -77
  199. package/vscode/src/vs/workbench/contrib/output/browser/logViewer.js +0 -67
@@ -5,7 +5,7 @@ import { Disposable, dispose } from 'monaco-editor/esm/vs/base/common/lifecycle.
5
5
  import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
6
6
  import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
7
7
  import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
8
- import { ACTIVE_OUTPUT_CHANNEL_CONTEXT, CONTEXT_ACTIVE_LOG_OUTPUT, OUTPUT_SCHEME, OUTPUT_VIEW_ID, Extensions, LOG_MIME, OUTPUT_MIME, LOG_SCHEME, IOutputService } from '../../../services/output/common/output.js';
8
+ import { ACTIVE_OUTPUT_CHANNEL_CONTEXT, CONTEXT_ACTIVE_LOG_OUTPUT, OUTPUT_SCHEME, OUTPUT_VIEW_ID, Extensions, LOG_MIME, OUTPUT_MIME } from '../../../services/output/common/output.js';
9
9
  import { OutputLinkProvider } from './outputLinkProvider.js';
10
10
  import { ITextModelService } from 'monaco-editor/esm/vs/editor/common/services/resolverService.js';
11
11
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
@@ -163,40 +163,4 @@ OutputService = ( __decorate([
163
163
  ( __param(5, IViewsService)),
164
164
  ( __param(6, IContextKeyService))
165
165
  ], OutputService));
166
- let LogContentProvider = class LogContentProvider {
167
- constructor(outputService, outputChannelModelService, languageService) {
168
- this.outputService = outputService;
169
- this.outputChannelModelService = outputChannelModelService;
170
- this.languageService = languageService;
171
- this.channelModels = ( new Map());
172
- }
173
- provideTextContent(resource) {
174
- if (resource.scheme === LOG_SCHEME) {
175
- const channelModel = this.getChannelModel(resource);
176
- if (channelModel) {
177
- return channelModel.loadModel();
178
- }
179
- }
180
- return null;
181
- }
182
- getChannelModel(resource) {
183
- const channelId = resource.path;
184
- let channelModel = this.channelModels.get(channelId);
185
- if (!channelModel) {
186
- const channelDisposables = [];
187
- const outputChannelDescriptor = this.outputService.getChannelDescriptors().filter(({ id }) => id === channelId)[0];
188
- if (outputChannelDescriptor && outputChannelDescriptor.file) {
189
- channelModel = this.outputChannelModelService.createOutputChannelModel(channelId, resource, outputChannelDescriptor.languageId ? this.languageService.createById(outputChannelDescriptor.languageId) : this.languageService.createByMimeType(outputChannelDescriptor.log ? LOG_MIME : OUTPUT_MIME), outputChannelDescriptor.file);
190
- channelModel.onDispose(() => dispose(channelDisposables), channelDisposables);
191
- this.channelModels.set(channelId, channelModel);
192
- }
193
- }
194
- return channelModel;
195
- }
196
- };
197
- LogContentProvider = ( __decorate([
198
- ( __param(0, IOutputService)),
199
- ( __param(1, IOutputChannelModelService)),
200
- ( __param(2, ILanguageService))
201
- ], LogContentProvider));
202
- export { LogContentProvider, OutputService };
166
+ export { OutputService };
@@ -64,4 +64,17 @@ async function getExperimentalExtensionToggleData(workbenchAssignmentService, en
64
64
  }
65
65
  return undefined;
66
66
  }
67
- export { CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, CONTEXT_KEYBINDING_FOCUS, CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_JSON_EDITOR, CONTEXT_SETTINGS_ROW_FOCUS, CONTEXT_SETTINGS_SEARCH_FOCUS, CONTEXT_TOC_ROW_FOCUS, CONTEXT_WHEN_FOCUS, EXTENSION_SETTING_TAG, FEATURE_SETTING_TAG, GENERAL_TAG_SETTING_TAG, ID_SETTING_TAG, IPreferencesSearchService, KEYBINDINGS_EDITOR_COMMAND_ACCEPT_WHEN, KEYBINDINGS_EDITOR_COMMAND_ADD, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_HISTORY, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND_TITLE, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS, KEYBINDINGS_EDITOR_COMMAND_REJECT_WHEN, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_SEARCH, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE, KEYBINDINGS_EDITOR_SHOW_DEFAULT_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_EXTENSION_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_USER_KEYBINDINGS, LANGUAGE_SETTING_TAG, MODIFIED_SETTING_TAG, POLICY_SETTING_TAG, REQUIRE_TRUSTED_WORKSPACE_SETTING_TAG, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU, SETTINGS_EDITOR_COMMAND_SUGGEST_FILTERS, WORKSPACE_TRUST_SETTING_TAG, getExperimentalExtensionToggleData };
67
+ function compareTwoNullableNumbers(a, b) {
68
+ const aOrMax = a ?? Number.MAX_SAFE_INTEGER;
69
+ const bOrMax = b ?? Number.MAX_SAFE_INTEGER;
70
+ if (aOrMax < bOrMax) {
71
+ return -1;
72
+ }
73
+ else if (aOrMax > bOrMax) {
74
+ return 1;
75
+ }
76
+ else {
77
+ return 0;
78
+ }
79
+ }
80
+ export { CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, CONTEXT_KEYBINDING_FOCUS, CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_JSON_EDITOR, CONTEXT_SETTINGS_ROW_FOCUS, CONTEXT_SETTINGS_SEARCH_FOCUS, CONTEXT_TOC_ROW_FOCUS, CONTEXT_WHEN_FOCUS, EXTENSION_SETTING_TAG, FEATURE_SETTING_TAG, GENERAL_TAG_SETTING_TAG, ID_SETTING_TAG, IPreferencesSearchService, KEYBINDINGS_EDITOR_COMMAND_ACCEPT_WHEN, KEYBINDINGS_EDITOR_COMMAND_ADD, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_HISTORY, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND_TITLE, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS, KEYBINDINGS_EDITOR_COMMAND_REJECT_WHEN, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_SEARCH, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE, KEYBINDINGS_EDITOR_SHOW_DEFAULT_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_EXTENSION_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_USER_KEYBINDINGS, LANGUAGE_SETTING_TAG, MODIFIED_SETTING_TAG, POLICY_SETTING_TAG, REQUIRE_TRUSTED_WORKSPACE_SETTING_TAG, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU, SETTINGS_EDITOR_COMMAND_SUGGEST_FILTERS, WORKSPACE_TRUST_SETTING_TAG, compareTwoNullableNumbers, getExperimentalExtensionToggleData };
@@ -27,11 +27,12 @@ import { IProductService } from 'monaco-editor/esm/vs/platform/product/common/pr
27
27
  import { IChatService } from '../../chat/common/chatService.js';
28
28
  import { ASK_QUICK_QUESTION_ACTION_ID } from '../../chat/browser/actions/chatQuickInputActions.js';
29
29
  import { RelatedInformationType, IAiRelatedInformationService } from '../../../services/aiRelatedInformation/common/aiRelatedInformation.js';
30
+ import { CHAT_OPEN_ACTION_ID } from '../../chat/browser/actions/chatActions.js';
30
31
  import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
31
32
  var CommandsQuickAccessProvider_1;
32
33
  let CommandsQuickAccessProvider = class CommandsQuickAccessProvider extends AbstractEditorCommandsQuickAccessProvider {
33
34
  static { CommandsQuickAccessProvider_1 = this; }
34
- static { this.AI_RELATED_INFORMATION_MAX_PICKS = 3; }
35
+ static { this.AI_RELATED_INFORMATION_MAX_PICKS = 5; }
35
36
  static { this.AI_RELATED_INFORMATION_THRESHOLD = 0.8; }
36
37
  static { this.AI_RELATED_INFORMATION_DEBOUNCE = 200; }
37
38
  get activeTextEditorControl() { return this.editorService.activeTextEditorControl; }
@@ -122,12 +123,6 @@ let CommandsQuickAccessProvider = class CommandsQuickAccessProvider extends Abst
122
123
  catch (e) {
123
124
  return [];
124
125
  }
125
- if (additionalPicks.length) {
126
- additionalPicks.unshift({
127
- type: 'separator',
128
- label: ( localize('similarCommands', "similar commands"))
129
- });
130
- }
131
126
  if (picksSoFar.length || additionalPicks.length) {
132
127
  additionalPicks.push({
133
128
  type: 'separator'
@@ -137,7 +132,7 @@ let CommandsQuickAccessProvider = class CommandsQuickAccessProvider extends Abst
137
132
  if (info) {
138
133
  additionalPicks.push({
139
134
  label: ( localize('askXInChat', "Ask {0}: {1}", info.displayName, filter)),
140
- commandId: ASK_QUICK_QUESTION_ACTION_ID,
135
+ commandId: this.configuration.experimental.askChatLocation === 'quickChat' ? ASK_QUICK_QUESTION_ACTION_ID : CHAT_OPEN_ACTION_ID,
141
136
  args: [filter]
142
137
  });
143
138
  }
@@ -172,7 +172,7 @@ let DirtyDiffWidget = class DirtyDiffWidget extends PeekViewWidget {
172
172
  this.diffEditor.setModel(diffEditorModel);
173
173
  this.dropdown?.setSelection(labeledChange.label);
174
174
  const position = ( new Position(getModifiedEndLineNumber(change), 1));
175
- const lineHeight = this.editor.getOption(65 );
175
+ const lineHeight = this.editor.getOption(66 );
176
176
  const editorHeight = this.editor.getLayoutInfo().height;
177
177
  const editorHeightInLines = Math.floor(editorHeight / lineHeight);
178
178
  const height = Math.min(getChangeHeight(change) + 8, Math.floor(editorHeightInLines / 3));
@@ -488,7 +488,7 @@ class GotoPreviousChangeAction extends EditorAction {
488
488
  return;
489
489
  }
490
490
  const lineNumber = outerEditor.getPosition().lineNumber;
491
- const model = controller.modelRegistry.getModel(outerEditor.getModel());
491
+ const model = controller.modelRegistry.getModel(outerEditor.getModel(), outerEditor);
492
492
  if (!model || model.changes.length === 0) {
493
493
  return;
494
494
  }
@@ -522,7 +522,7 @@ class GotoNextChangeAction extends EditorAction {
522
522
  return;
523
523
  }
524
524
  const lineNumber = outerEditor.getPosition().lineNumber;
525
- const model = controller.modelRegistry.getModel(outerEditor.getModel());
525
+ const model = controller.modelRegistry.getModel(outerEditor.getModel(), outerEditor);
526
526
  if (!model || model.changes.length === 0) {
527
527
  return;
528
528
  }
@@ -605,8 +605,7 @@ let DirtyDiffController = class DirtyDiffController extends Disposable {
605
605
  }
606
606
  onDidChangeGutterAction() {
607
607
  const gutterAction = this.configurationService.getValue('scm.diffDecorationsGutterAction');
608
- this.gutterActionDisposables.dispose();
609
- this.gutterActionDisposables = ( new DisposableStore());
608
+ this.gutterActionDisposables.clear();
610
609
  if (gutterAction === 'diff') {
611
610
  this.gutterActionDisposables.add(this.editor.onMouseDown(e => this.onEditorMouseDown(e)));
612
611
  this.gutterActionDisposables.add(this.editor.onMouseUp(e => this.onEditorMouseUp(e)));
@@ -696,7 +695,7 @@ let DirtyDiffController = class DirtyDiffController extends Disposable {
696
695
  if (!editorModel) {
697
696
  return false;
698
697
  }
699
- const model = this.modelRegistry.getModel(editorModel);
698
+ const model = this.modelRegistry.getModel(editorModel, this.editor);
700
699
  if (!model) {
701
700
  return false;
702
701
  }
@@ -708,10 +707,9 @@ let DirtyDiffController = class DirtyDiffController extends Disposable {
708
707
  this.isDirtyDiffVisible.set(true);
709
708
  const disposables = ( new DisposableStore());
710
709
  disposables.add(Event.once(this.widget.onDidClose)(this.close, this));
711
- ( Event.chain(model.onDidChange)
712
- .filter(e => e.diff.length > 0)
713
- .map(e => e.diff))
714
- .event(this.onDidModelChange, this, disposables);
710
+ const onDidModelChange = Event.chain(model.onDidChange, $ => ( $.filter(e => e.diff.length > 0)
711
+ .map(e => e.diff)));
712
+ onDidModelChange(this.onDidModelChange, this, disposables);
715
713
  disposables.add(this.widget);
716
714
  disposables.add(toDisposable(() => {
717
715
  this.model = null;
@@ -780,7 +778,7 @@ let DirtyDiffController = class DirtyDiffController extends Disposable {
780
778
  if (!editorModel) {
781
779
  return;
782
780
  }
783
- const model = this.modelRegistry.getModel(editorModel);
781
+ const model = this.modelRegistry.getModel(editorModel, this.editor);
784
782
  if (!model) {
785
783
  return;
786
784
  }
@@ -802,7 +800,7 @@ let DirtyDiffController = class DirtyDiffController extends Disposable {
802
800
  if (!this.editor.hasModel()) {
803
801
  return [];
804
802
  }
805
- const model = this.modelRegistry.getModel(this.editor.getModel());
803
+ const model = this.modelRegistry.getModel(this.editor.getModel(), this.editor);
806
804
  if (!model) {
807
805
  return [];
808
806
  }
@@ -27,7 +27,7 @@ let TabCompletionController = class TabCompletionController {
27
27
  this._activeSnippets = [];
28
28
  this._hasSnippets = TabCompletionController_1.ContextKey.bindTo(contextKeyService);
29
29
  this._configListener = this._editor.onDidChangeConfiguration(e => {
30
- if (e.hasChanged(121 )) {
30
+ if (e.hasChanged(122 )) {
31
31
  this._update();
32
32
  }
33
33
  });
@@ -38,7 +38,7 @@ let TabCompletionController = class TabCompletionController {
38
38
  this._selectionListener?.dispose();
39
39
  }
40
40
  _update() {
41
- const enabled = this._editor.getOption(121 ) === 'onlySnippets';
41
+ const enabled = this._editor.getOption(122 ) === 'onlySnippets';
42
42
  if (this._enabled !== enabled) {
43
43
  this._enabled = enabled;
44
44
  if (!this._enabled) {
@@ -8,7 +8,7 @@ import { SerializeAddon } from '../../../../../../../../external/xterm-addon-ser
8
8
  import { ImageAddon } from '../../../../../../../../external/xterm-addon-image/typings/xterm-addon-image.js';
9
9
  import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js';
10
10
  import { TerminalConfigHelper } from '../terminalConfigHelper.js';
11
- import { DisposableStore } from '../../../../../base/common/lifecycle.js';
11
+ import { Disposable } from '../../../../../base/common/lifecycle.js';
12
12
  import { IShellIntegration, ITerminalLogService } from '../../../../../platform/terminal/common/terminal.js';
13
13
  import { ITerminalFont } from '../../common/terminal.js';
14
14
  import { IXtermTerminal, IDetachedXtermTerminal, IInternalXtermTerminal, IMarkTracker, ISuggestController, IXtermColorProvider, IXtermAttachToElementOptions } from '../terminal.js';
@@ -25,7 +25,7 @@ import { IClipboardService } from '../../../../../platform/clipboard/common/clip
25
25
  * Wraps the xterm object with additional functionality. Interaction with the backing process is out
26
26
  * of the scope of this class.
27
27
  */
28
- declare class XtermTerminal extends DisposableStore implements IXtermTerminal, IDetachedXtermTerminal, IInternalXtermTerminal {
28
+ declare class XtermTerminal extends Disposable implements IXtermTerminal, IDetachedXtermTerminal, IInternalXtermTerminal {
29
29
  private readonly _configHelper;
30
30
  private readonly _backgroundColorProvider;
31
31
  private readonly _capabilities;
@@ -16,22 +16,6 @@ var TerminalContextKeys;
16
16
  "Whether any terminal is focused, including detached terminals used in other UI."
17
17
  ))
18
18
  ));
19
- TerminalContextKeys.accessibleBufferFocus = ( new RawContextKey(
20
- "terminalAccessibleBufferFocus" ,
21
- false,
22
- ( localize(
23
- 'terminalAccessibleBufferFocusContextKey',
24
- "Whether the terminal accessible buffer is focused."
25
- ))
26
- ));
27
- TerminalContextKeys.accessibleBufferOnLastLine = ( new RawContextKey(
28
- "terminalAccessibleBufferOnLastLine" ,
29
- false,
30
- ( localize(
31
- 'terminalAccessibleBufferOnLastLineContextKey',
32
- "Whether the accessible buffer focus is on the last line."
33
- ))
34
- ));
35
19
  TerminalContextKeys.editorFocus = ( new RawContextKey(
36
20
  "terminalEditorFocus" ,
37
21
  false,
@@ -12,7 +12,8 @@ class MutableObservableValue extends Disposable {
12
12
  }
13
13
  static stored(stored, defaultValue) {
14
14
  const o = ( new MutableObservableValue(stored.get(defaultValue)));
15
- o.onDidChange(value => stored.store(value));
15
+ o._register(stored);
16
+ o._register(o.onDidChange(value => stored.store(value)));
16
17
  return o;
17
18
  }
18
19
  constructor(_value) {
@@ -2,6 +2,7 @@ import { DeferredPromise } from 'monaco-editor/esm/vs/base/common/async.js';
2
2
  import { VSBuffer } from 'monaco-editor/esm/vs/base/common/buffer.js';
3
3
  import { Event, Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
4
4
  import { Lazy } from 'monaco-editor/esm/vs/base/common/lazy.js';
5
+ import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
5
6
  import { language } from 'monaco-editor/esm/vs/base/common/platform.js';
6
7
  import { removeAnsiEscapeCodes } from 'monaco-editor/esm/vs/base/common/strings.js';
7
8
  import { localize } from 'monaco-editor/esm/vs/nls.js';
@@ -102,7 +103,7 @@ const itemToNode = (controllerId, item, parent) => ({
102
103
  ownComputedState: 0 ,
103
104
  computedState: 0 ,
104
105
  });
105
- class LiveTestResult {
106
+ class LiveTestResult extends Disposable {
106
107
  get completedAt() {
107
108
  return this._completedAt;
108
109
  }
@@ -110,13 +111,14 @@ class LiveTestResult {
110
111
  return ( this.testById.values());
111
112
  }
112
113
  constructor(id, persist, request) {
114
+ super();
113
115
  this.id = id;
114
116
  this.persist = persist;
115
117
  this.request = request;
116
- this.completeEmitter = ( new Emitter());
117
- this.newTaskEmitter = ( new Emitter());
118
- this.endTaskEmitter = ( new Emitter());
119
- this.changeEmitter = ( new Emitter());
118
+ this.completeEmitter = this._register(( new Emitter()));
119
+ this.newTaskEmitter = this._register(( new Emitter()));
120
+ this.endTaskEmitter = this._register(( new Emitter()));
121
+ this.changeEmitter = this._register(( new Emitter()));
120
122
  this.testById = ( new Map());
121
123
  this.testMarkerCounter = 0;
122
124
  this.startedAt = Date.now();
@@ -191,7 +193,7 @@ class LiveTestResult {
191
193
  }
192
194
  }
193
195
  addTask(task) {
194
- this.tasks.push({ ...task, coverage: ( new MutableObservableValue(undefined)), otherMessages: [], output: ( new TaskRawOutput()) });
196
+ this.tasks.push({ ...task, coverage: this._register(( new MutableObservableValue(undefined))), otherMessages: [], output: ( new TaskRawOutput()) });
195
197
  for (const test of this.tests) {
196
198
  test.tasks.push({ duration: undefined, messages: [], state: 0 });
197
199
  }
@@ -156,14 +156,12 @@ const apiMenus = [
156
156
  {
157
157
  key: 'terminal/context',
158
158
  id: MenuId.TerminalInstanceContext,
159
- description: ( localize('menus.terminalContext', "The terminal context menu")),
160
- proposed: 'terminalContextMenu'
159
+ description: ( localize('menus.terminalContext', "The terminal context menu"))
161
160
  },
162
161
  {
163
162
  key: 'terminal/title/context',
164
163
  id: MenuId.TerminalTabContext,
165
- description: ( localize('menus.terminalTabContext', "The terminal tabs context menu")),
166
- proposed: 'terminalContextMenu'
164
+ description: ( localize('menus.terminalTabContext', "The terminal tabs context menu"))
167
165
  },
168
166
  {
169
167
  key: 'view/title',
@@ -43,10 +43,8 @@ function addAccountUsage(storageService, providerId, accountName, extensionId, e
43
43
  }
44
44
  storageService.store(accountKey, JSON.stringify(usages), -1 , 1 );
45
45
  }
46
- async function getCurrentAuthenticationSessionInfo(
47
- credentialsService, secretStorageService, productService) {
48
- const authenticationSessionValue = (await secretStorageService.get(`${productService.urlProtocol}.loginAccount`))
49
- ?? (await credentialsService.getPassword(`${productService.urlProtocol}.login`, 'account'));
46
+ async function getCurrentAuthenticationSessionInfo(secretStorageService, productService) {
47
+ const authenticationSessionValue = await secretStorageService.get(`${productService.urlProtocol}.loginAccount`);
50
48
  if (authenticationSessionValue) {
51
49
  try {
52
50
  const authenticationSessionInfo = JSON.parse(authenticationSessionValue);
@@ -196,6 +196,7 @@ let DecorationsService = class DecorationsService {
196
196
  dispose() {
197
197
  this._onDidChangeDecorations.dispose();
198
198
  this._onDidChangeDecorationsDelayed.dispose();
199
+ this._data.clear();
199
200
  }
200
201
  registerDecorationsProvider(provider) {
201
202
  const rm = this._provider.unshift(provider);
@@ -276,13 +277,14 @@ let DecorationsService = class DecorationsService {
276
277
  pendingRequest.source.cancel();
277
278
  map.delete(provider);
278
279
  }
279
- const source = ( new CancellationTokenSource());
280
- const dataOrThenable = provider.provideDecorations(uri, source.token);
280
+ const cts = ( new CancellationTokenSource());
281
+ const dataOrThenable = provider.provideDecorations(uri, cts.token);
281
282
  if (!isThenable(dataOrThenable)) {
283
+ cts.dispose();
282
284
  return this._keepItem(map, provider, uri, dataOrThenable);
283
285
  }
284
286
  else {
285
- const request = ( new DecorationDataRequest(source, Promise.resolve(dataOrThenable).then(data => {
287
+ const request = ( new DecorationDataRequest(cts, Promise.resolve(dataOrThenable).then(data => {
286
288
  if (map.get(provider) === request) {
287
289
  this._keepItem(map, provider, uri, data);
288
290
  }
@@ -290,6 +292,8 @@ let DecorationsService = class DecorationsService {
290
292
  if (!isCancellationError(err) && map.get(provider) === request) {
291
293
  map.delete(provider);
292
294
  }
295
+ }).finally(() => {
296
+ cts.dispose();
293
297
  })));
294
298
  map.set(provider, request);
295
299
  return null;
@@ -69,9 +69,6 @@ interface EditorGroupLayout {
69
69
  */
70
70
  groups: GroupLayoutArgument[];
71
71
  }
72
- interface IAddGroupOptions {
73
- activate?: boolean;
74
- }
75
72
  declare const enum MergeGroupMode {
76
73
  COPY_EDITORS = 0,
77
74
  MOVE_EDITORS = 1
@@ -297,9 +294,8 @@ interface IEditorGroupsService {
297
294
  *
298
295
  * @param location the group from which to split to add a new group
299
296
  * @param direction the direction of where to split to
300
- * @param options configure the newly group with options
301
297
  */
302
- addGroup(location: IEditorGroup | GroupIdentifier, direction: GroupDirection, options?: IAddGroupOptions): IEditorGroup;
298
+ addGroup(location: IEditorGroup | GroupIdentifier, direction: GroupDirection): IEditorGroup;
303
299
  /**
304
300
  * Remove a group from the editor area.
305
301
  */
@@ -609,4 +605,4 @@ interface IEditorGroup {
609
605
  focus(): void;
610
606
  }
611
607
 
612
- export { type EditorGroupLayout, GroupDirection, type GroupLayoutArgument, GroupLocation, GroupOrientation, GroupsArrangement, GroupsOrder, type IAddGroupOptions, type ICloseAllEditorsOptions, type ICloseEditorOptions, type ICloseEditorsFilter, type IEditorGroup, IEditorGroupsService, type IEditorReplacement, type IEditorSideGroup, type IFindGroupScope, type IMergeGroupOptions, MergeGroupMode };
608
+ export { type EditorGroupLayout, GroupDirection, type GroupLayoutArgument, GroupLocation, GroupOrientation, GroupsArrangement, GroupsOrder, type ICloseAllEditorsOptions, type ICloseEditorOptions, type ICloseEditorsFilter, type IEditorGroup, IEditorGroupsService, type IEditorReplacement, type IEditorSideGroup, type IFindGroupScope, type IMergeGroupOptions, MergeGroupMode };
@@ -8,18 +8,20 @@ import { WebWorkerExtensionHost } from './webWorkerExtensionHost.js';
8
8
  import { checkEnabledAndProposedAPI } from '../common/abstractExtensionService.js';
9
9
  import { extensionRunningPreferenceToString, extensionHostKindToString } from '../common/extensionHostKind.js';
10
10
  import { filterExtensionDescriptions } from '../common/extensionRunningLocationTracker.js';
11
+ import { ExtensionHostExtensions } from '../common/extensions.js';
11
12
  import { RemoteExtensionHost } from '../common/remoteExtensionHost.js';
12
13
  import { IRemoteAgentService } from '../../remote/common/remoteAgentService.js';
13
14
  var BrowserExtensionHostKindPicker_1;
14
15
  let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
15
- constructor(_extensionsProposedApi, _scanWebExtensions, _getExtensions, _instantiationService, _remoteAgentService, _remoteAuthorityResolverService, _extensionEnablementService) {
16
+ constructor(_extensionsProposedApi, _scanWebExtensions, _getExtensionRegistrySnapshotWhenReady, _instantiationService, _remoteAgentService, _remoteAuthorityResolverService, _extensionEnablementService, _logService) {
16
17
  this._extensionsProposedApi = _extensionsProposedApi;
17
18
  this._scanWebExtensions = _scanWebExtensions;
18
- this._getExtensions = _getExtensions;
19
+ this._getExtensionRegistrySnapshotWhenReady = _getExtensionRegistrySnapshotWhenReady;
19
20
  this._instantiationService = _instantiationService;
20
21
  this._remoteAgentService = _remoteAgentService;
21
22
  this._remoteAuthorityResolverService = _remoteAuthorityResolverService;
22
23
  this._extensionEnablementService = _extensionEnablementService;
24
+ this._logService = _logService;
23
25
  }
24
26
  createExtensionHost(runningLocations, runningLocation, isInitialStart) {
25
27
  switch (runningLocation.kind) {
@@ -43,21 +45,17 @@ let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
43
45
  return {
44
46
  getInitData: async () => {
45
47
  if (isInitialStart) {
46
- const localExtensions = checkEnabledAndProposedAPI(this._extensionEnablementService, this._extensionsProposedApi, await this._scanWebExtensions(), true);
48
+ const localExtensions = checkEnabledAndProposedAPI(this._logService, this._extensionEnablementService, this._extensionsProposedApi, await this._scanWebExtensions(), true);
47
49
  const runningLocation = runningLocations.computeRunningLocation(localExtensions, [], false);
48
50
  const myExtensions = filterExtensionDescriptions(localExtensions, runningLocation, extRunningLocation => desiredRunningLocation.equals(extRunningLocation));
49
- return {
50
- allExtensions: localExtensions,
51
- myExtensions: ( myExtensions.map(extension => extension.identifier))
52
- };
51
+ const extensions = ( new ExtensionHostExtensions(0, localExtensions, ( myExtensions.map(extension => extension.identifier))));
52
+ return { extensions };
53
53
  }
54
54
  else {
55
- const allExtensions = await this._getExtensions();
56
- const myExtensions = runningLocations.filterByRunningLocation(allExtensions, desiredRunningLocation);
57
- return {
58
- allExtensions: allExtensions,
59
- myExtensions: ( myExtensions.map(extension => extension.identifier))
60
- };
55
+ const snapshot = await this._getExtensionRegistrySnapshotWhenReady();
56
+ const myExtensions = runningLocations.filterByRunningLocation(snapshot.extensions, desiredRunningLocation);
57
+ const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
58
+ return { extensions };
61
59
  }
62
60
  }
63
61
  };
@@ -66,23 +64,22 @@ let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
66
64
  return {
67
65
  remoteAuthority: remoteAuthority,
68
66
  getInitData: async () => {
69
- const allExtensions = await this._getExtensions();
67
+ const snapshot = await this._getExtensionRegistrySnapshotWhenReady();
70
68
  const remoteEnv = await this._remoteAgentService.getEnvironment();
71
69
  if (!remoteEnv) {
72
70
  throw new Error('Cannot provide init data for remote extension host!');
73
71
  }
74
- const myExtensions = runningLocations.filterByExtensionHostKind(allExtensions, 3 );
75
- const initData = {
72
+ const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions, 3 );
73
+ const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
74
+ return {
76
75
  connectionData: this._remoteAuthorityResolverService.getConnectionData(remoteAuthority),
77
76
  pid: remoteEnv.pid,
78
77
  appRoot: remoteEnv.appRoot,
79
78
  extensionHostLogsPath: remoteEnv.extensionHostLogsPath,
80
79
  globalStorageHome: remoteEnv.globalStorageHome,
81
80
  workspaceStorageHome: remoteEnv.workspaceStorageHome,
82
- allExtensions: allExtensions,
83
- myExtensions: ( myExtensions.map(extension => extension.identifier)),
81
+ extensions,
84
82
  };
85
- return initData;
86
83
  }
87
84
  };
88
85
  }
@@ -91,7 +88,8 @@ BrowserExtensionHostFactory = ( __decorate([
91
88
  ( __param(3, IInstantiationService)),
92
89
  ( __param(4, IRemoteAgentService)),
93
90
  ( __param(5, IRemoteAuthorityResolverService)),
94
- ( __param(6, IWorkbenchExtensionEnablementService))
91
+ ( __param(6, IWorkbenchExtensionEnablementService)),
92
+ ( __param(7, ILogService))
95
93
  ], BrowserExtensionHostFactory));
96
94
  let BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = class BrowserExtensionHostKindPicker {
97
95
  constructor(_logService) {
@@ -1,5 +1,6 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
2
  import * as dom from 'monaco-editor/esm/vs/base/browser/dom.js';
3
+ import { parentOriginHash } from 'monaco-editor/esm/vs/base/browser/iframe.js';
3
4
  import { Barrier } from 'monaco-editor/esm/vs/base/common/async.js';
4
5
  import { VSBuffer } from 'monaco-editor/esm/vs/base/common/buffer.js';
5
6
  import { canceled, onUnexpectedError } from 'monaco-editor/esm/vs/base/common/errors.js';
@@ -19,10 +20,8 @@ import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/commo
19
20
  import { isLoggingOnly } from '../../../../platform/telemetry/common/telemetryUtils.js';
20
21
  import { IUserDataProfilesService } from 'monaco-editor/esm/vs/platform/userDataProfile/common/userDataProfile.js';
21
22
  import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
22
- import { parentOriginHash } from '../../../browser/iframe.js';
23
23
  import { IBrowserWorkbenchEnvironmentService } from '../../environment/browser/environmentService.js';
24
24
  import { isMessageOfType, createMessageOfType, UIKind } from '../common/extensionHostProtocol.js';
25
- import { ExtensionHostExtensions } from '../common/extensions.js';
26
25
  let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
27
26
  constructor(runningLocation, startup, _initDataProvider, _telemetryService, _contextService, _labelService, _logService, _loggerService, _environmentService, _userDataProfilesService, _productService, _layoutService, _storageService) {
28
27
  super();
@@ -40,7 +39,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
40
39
  this._layoutService = _layoutService;
41
40
  this._storageService = _storageService;
42
41
  this.remoteAuthority = null;
43
- this.extensions = ( (new ExtensionHostExtensions()));
42
+ this.extensions = null;
44
43
  this._onDidExit = this._register(( (new Emitter())));
45
44
  this.onExit = this._onDidExit.event;
46
45
  this._isTerminating = false;
@@ -91,7 +90,6 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
91
90
  return this._protocolPromise;
92
91
  }
93
92
  async _startInsideIframe() {
94
- const initDataPromise = this._initDataProvider.getInitData();
95
93
  const webWorkerExtensionHostIframeSrc = await this._getWebWorkerExtensionHostIframeSrc();
96
94
  const emitter = this._register(( (new Emitter())));
97
95
  const iframe = document.createElement('iframe');
@@ -170,14 +168,14 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
170
168
  port.postMessage(data, [data]);
171
169
  }
172
170
  };
173
- return this._performHandshake(protocol, initDataPromise);
171
+ return this._performHandshake(protocol);
174
172
  }
175
- async _performHandshake(protocol, initDataPromise) {
173
+ async _performHandshake(protocol) {
176
174
  await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg, 1 )));
177
175
  if (this._isTerminating) {
178
176
  throw canceled();
179
177
  }
180
- protocol.send(VSBuffer.fromString(JSON.stringify(await this._createExtHostInitData(initDataPromise))));
178
+ protocol.send(VSBuffer.fromString(JSON.stringify(await this._createExtHostInitData())));
181
179
  if (this._isTerminating) {
182
180
  throw canceled();
183
181
  }
@@ -201,10 +199,10 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
201
199
  enableInspectPort() {
202
200
  return Promise.resolve(false);
203
201
  }
204
- async _createExtHostInitData(initDataPromise) {
205
- const initData = await initDataPromise;
202
+ async _createExtHostInitData() {
203
+ const initData = await this._initDataProvider.getInitData();
204
+ this.extensions = initData.extensions;
206
205
  const workspace = this._contextService.getWorkspace();
207
- const deltaExtensions = this.extensions.set(initData.allExtensions, initData.myExtensions);
208
206
  const nlsBaseUrl = this._productService.extensionsGallery?.nlsBaseUrl;
209
207
  let nlsUrlWithDetails = undefined;
210
208
  if (nlsBaseUrl && this._productService.commit && !platform.Language.isDefaultVariant()) {
@@ -239,9 +237,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
239
237
  includeStack: false,
240
238
  logNative: this._environmentService.debugRenderer
241
239
  },
242
- allExtensions: deltaExtensions.toAdd,
243
- activationEvents: deltaExtensions.addActivationEvents,
244
- myExtensions: deltaExtensions.myToAdd,
240
+ extensions: this.extensions.toSnapshot(),
245
241
  nlsBaseUrl: nlsUrlWithDetails,
246
242
  telemetryInfo: {
247
243
  sessionId: this._telemetryService.sessionId,
@@ -14,6 +14,7 @@ import { ITelemetryService } from '../../../../platform/telemetry/common/telemet
14
14
  import { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js';
15
15
  import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
16
16
  import { IWorkbenchExtensionEnablementService, IWorkbenchExtensionManagementService } from '../../extensionManagement/common/extensionManagement.js';
17
+ import { ExtensionDescriptionRegistrySnapshot } from './extensionDescriptionRegistry.js';
17
18
  import { IExtensionHostKindPicker, ExtensionHostKind } from './extensionHostKind.js';
18
19
  import { IExtensionHostManager } from './extensionHostManager.js';
19
20
  import { IExtensionManifestPropertiesService } from './extensionManifestPropertiesService.js';
@@ -110,7 +111,7 @@ declare abstract class AbstractExtensionService extends Disposable implements IE
110
111
  activationEventIsDone(activationEvent: string): boolean;
111
112
  whenInstalledExtensionsRegistered(): Promise<boolean>;
112
113
  get extensions(): IExtensionDescription[];
113
- protected _getExtensions(): Promise<IExtensionDescription[]>;
114
+ protected _getExtensionRegistrySnapshotWhenReady(): Promise<ExtensionDescriptionRegistrySnapshot>;
114
115
  getExtension(id: string): Promise<IExtensionDescription | undefined>;
115
116
  readExtensionPointContributions<T extends IExtensionContributions[keyof IExtensionContributions]>(extPoint: IExtensionPoint<T>): Promise<ExtensionPointContribution<T>[]>;
116
117
  getExtensionsStatus(): {