@codingame/monaco-vscode-api 1.83.7 → 1.83.9

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 (303) hide show
  1. package/extensions.js +5 -5
  2. package/lifecycle.js +23 -4
  3. package/missing-services.js +187 -24
  4. package/monaco-editor-treemending.patch +955 -955
  5. package/monaco.d.ts +7 -2
  6. package/monaco.js +12 -1
  7. package/package.json +15 -2
  8. package/service-override/tools/editor.d.ts +1 -1
  9. package/services.d.ts +4 -5
  10. package/services.js +31 -28
  11. package/vscode/src/vs/base/common/uriIpc.js +22 -1
  12. package/vscode/src/vs/base/parts/request/common/request.js +7 -1
  13. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +116 -1
  14. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementUtil.js +117 -2
  15. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.js +10 -0
  16. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +42 -0
  17. package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +12 -1
  18. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +306 -1
  19. package/vscode/src/vs/platform/log/common/log.d.ts +27 -2
  20. package/vscode/src/vs/platform/remote/common/remoteAgentConnection.d.ts +9 -1
  21. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.js +2 -1
  22. package/vscode/src/vs/platform/request/common/request.js +38 -1
  23. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +2 -1
  24. package/vscode/src/vs/platform/tunnel/common/tunnel.d.ts +50 -1
  25. package/vscode/src/vs/platform/userDataProfile/common/userDataProfileIpc.js +63 -0
  26. package/vscode/src/vs/platform/userDataSync/common/ignoredExtensions.js +65 -0
  27. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +2 -1
  28. package/vscode/src/vs/platform/userDataSync/common/userDataSyncAccount.js +3 -0
  29. package/vscode/src/vs/platform/workspace/common/workspace.d.ts +16 -1
  30. package/vscode/src/vs/platform/workspaces/common/workspaces.d.ts +6 -2
  31. package/vscode/src/vs/workbench/api/worker/extensionHostWorker.js +1 -1
  32. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +6 -3
  33. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +7 -2
  34. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +56 -2
  35. package/vscode/src/vs/workbench/common/editor.d.ts +17 -1
  36. package/vscode/src/vs/workbench/common/theme.js +3 -3
  37. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.css.js +4 -0
  38. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +248 -0
  39. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +3291 -0
  40. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +16 -16
  41. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +4 -0
  42. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +45 -1
  43. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +67 -0
  44. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +396 -0
  45. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.d.ts +23 -3
  46. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.js +4 -1
  47. package/vscode/src/vs/workbench/services/extensionRecommendations/common/extensionRecommendations.js +4 -0
  48. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +255 -0
  49. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +44 -0
  50. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.d.ts +1 -1
  51. package/vscode/src/vs/workbench/services/extensions/common/extensionHostProtocol.d.ts +1 -1
  52. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +2 -1
  53. package/vscode/src/vs/workbench/services/localization/common/locale.js +4 -0
  54. package/vscode/src/vs/workbench/services/log/common/logConstants.js +2 -1
  55. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.d.ts +68 -0
  56. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.d.ts +172 -1
  57. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +53 -2
  58. package/vscode/src/vs/workbench/services/userDataProfile/common/remoteUserDataProfiles.js +150 -0
  59. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +3 -1
  60. package/vscode/src/vs/workbench/services/workspaces/browser/workspaces.js +7 -1
  61. package/vscode.proposed.d.ts +4787 -0
  62. package/workbench.js +37 -0
  63. package/service-override/bulkEdit.js +0 -9
  64. package/service-override/environment.js +0 -21
  65. package/service-override/extensions.js +0 -465
  66. package/service-override/files.js +0 -447
  67. package/service-override/keybindings.js +0 -93
  68. package/service-override/layout.js +0 -230
  69. package/service-override/output.js +0 -21
  70. package/service-override/quickaccess.js +0 -98
  71. package/vscode/src/vs/base/common/console.js +0 -58
  72. package/vscode/src/vs/base/common/keybindingParser.js +0 -87
  73. package/vscode/src/vs/base/common/prefixTree.js +0 -130
  74. package/vscode/src/vs/base/common/tfIdf.js +0 -137
  75. package/vscode/src/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -23
  76. package/vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js +0 -404
  77. package/vscode/src/vs/platform/files/common/fileService.js +0 -957
  78. package/vscode/src/vs/platform/files/common/files.js +0 -81
  79. package/vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js +0 -220
  80. package/vscode/src/vs/platform/files/common/io.js +0 -75
  81. package/vscode/src/vs/platform/files/common/watcher.js +0 -69
  82. package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +0 -48
  83. package/vscode/src/vs/platform/keyboardLayout/common/keyboardMapper.js +0 -23
  84. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -25
  85. package/vscode/src/vs/platform/log/common/fileLog.js +0 -105
  86. package/vscode/src/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -331
  87. package/vscode/src/vs/platform/quickinput/browser/helpQuickAccess.js +0 -65
  88. package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -96
  89. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +0 -29
  90. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +0 -33
  91. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +0 -328
  92. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +0 -66
  93. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -172
  94. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents.js +0 -50
  95. package/vscode/src/vs/workbench/api/browser/mainThreadChatProvider.js +0 -59
  96. package/vscode/src/vs/workbench/api/browser/mainThreadChatSlashCommands.js +0 -47
  97. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -29
  98. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -22
  99. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -105
  100. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -92
  101. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -539
  102. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -78
  103. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -33
  104. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -576
  105. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -385
  106. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -100
  107. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -67
  108. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -66
  109. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -73
  110. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -247
  111. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -368
  112. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -20
  113. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -39
  114. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -409
  115. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -473
  116. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -225
  117. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -22
  118. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -315
  119. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -278
  120. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -281
  121. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -66
  122. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -26
  123. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -31
  124. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -25
  125. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -945
  126. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +0 -76
  127. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +0 -33
  128. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +0 -76
  129. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +0 -91
  130. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +0 -116
  131. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +0 -156
  132. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +0 -121
  133. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +0 -186
  134. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +0 -127
  135. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +0 -129
  136. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +0 -339
  137. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +0 -23
  138. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +0 -46
  139. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +0 -74
  140. package/vscode/src/vs/workbench/api/browser/mainThreadProfilContentHandlers.js +0 -36
  141. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +0 -66
  142. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +0 -47
  143. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +0 -183
  144. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +0 -28
  145. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +0 -461
  146. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +0 -47
  147. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +0 -146
  148. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +0 -68
  149. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +0 -48
  150. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +0 -51
  151. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +0 -70
  152. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +0 -729
  153. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +0 -51
  154. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +0 -410
  155. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -180
  156. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -22
  157. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -53
  158. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -311
  159. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -221
  160. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -108
  161. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -59
  162. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -27
  163. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -281
  164. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -98
  165. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -133
  166. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -55
  167. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -271
  168. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -33
  169. package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +0 -230
  170. package/vscode/src/vs/workbench/browser/contextkeys.js +0 -249
  171. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +0 -358
  172. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.js +0 -362
  173. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +0 -265
  174. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +0 -2
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +0 -215
  176. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +0 -86
  177. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +0 -55
  178. package/vscode/src/vs/workbench/contrib/comments/browser/commentFormActions.js +0 -49
  179. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +0 -90
  180. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +0 -646
  181. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +0 -295
  182. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadAdditionalActions.js +0 -60
  183. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +0 -247
  184. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +0 -107
  185. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadRangeDecorator.js +0 -107
  186. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +0 -329
  187. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +0 -378
  188. package/vscode/src/vs/workbench/contrib/comments/browser/comments.js +0 -3
  189. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +0 -1194
  190. package/vscode/src/vs/workbench/contrib/comments/browser/commentsFilterOptions.js +0 -17
  191. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +0 -332
  192. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +0 -541
  193. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +0 -176
  194. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +0 -4
  195. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +0 -4
  196. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +0 -99
  197. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +0 -55
  198. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +0 -143
  199. package/vscode/src/vs/workbench/contrib/comments/common/commentsConfiguration.js +0 -2
  200. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -71
  201. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -81
  202. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +0 -177
  203. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +0 -3
  204. package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +0 -28
  205. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +0 -142
  206. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +0 -480
  207. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeMarkers/mergeMarkersController.js +0 -5
  208. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +0 -83
  209. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/editing.js +0 -54
  210. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/lineRange.js +0 -108
  211. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +0 -258
  212. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +0 -614
  213. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/modifiedBaseRange.js +0 -307
  214. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.js +0 -36
  215. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +0 -165
  216. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/telemetry.js +0 -78
  217. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +0 -68
  218. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +0 -2
  219. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +0 -106
  220. package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +0 -487
  221. package/vscode/src/vs/workbench/contrib/output/browser/outputLinkProvider.js +0 -76
  222. package/vscode/src/vs/workbench/contrib/output/browser/outputServices.js +0 -166
  223. package/vscode/src/vs/workbench/contrib/output/browser/outputView.js +0 -234
  224. package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +0 -287
  225. package/vscode/src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +0 -167
  226. package/vscode/src/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +0 -263
  227. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +0 -504
  228. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.js +0 -130
  229. package/vscode/src/vs/workbench/contrib/testing/common/getComputedState.js +0 -101
  230. package/vscode/src/vs/workbench/contrib/testing/common/observableValue.js +0 -26
  231. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +0 -23
  232. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +0 -334
  233. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.js +0 -45
  234. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +0 -1286
  235. package/vscode/src/vs/workbench/services/commands/common/commandService.js +0 -77
  236. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -141
  237. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -271
  238. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -50
  239. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1091
  240. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -40
  241. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -23
  242. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -641
  243. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -272
  244. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -56
  245. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -78
  246. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -47
  247. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -218
  248. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +0 -917
  249. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +0 -498
  250. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/_.contribution.js +0 -13
  251. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/cz.win.js +0 -162
  252. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de-swiss.win.js +0 -162
  253. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.darwin.js +0 -125
  254. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.linux.js +0 -180
  255. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.win.js +0 -162
  256. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dk.win.js +0 -162
  257. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dvorak.darwin.js +0 -125
  258. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-belgian.win.js +0 -162
  259. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-ext.darwin.js +0 -125
  260. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-in.win.js +0 -162
  261. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.darwin.js +0 -125
  262. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.win.js +0 -162
  263. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.darwin.js +0 -125
  264. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.win.js +0 -162
  265. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.darwin.js +0 -133
  266. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.linux.js +0 -182
  267. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.win.js +0 -167
  268. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es-latin.win.js +0 -162
  269. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.darwin.js +0 -125
  270. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.linux.js +0 -180
  271. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.win.js +0 -162
  272. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.darwin.js +0 -125
  273. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.linux.js +0 -180
  274. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.win.js +0 -162
  275. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/hu.win.js +0 -162
  276. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.darwin.js +0 -125
  277. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.win.js +0 -162
  278. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp-roman.darwin.js +0 -125
  279. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp.darwin.js +0 -125
  280. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ko.darwin.js +0 -125
  281. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.darwin.js +0 -17
  282. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux.js +0 -6
  283. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.win.js +0 -23
  284. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/no.win.js +0 -162
  285. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.darwin.js +0 -125
  286. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.win.js +0 -162
  287. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt-br.win.js +0 -162
  288. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.darwin.js +0 -125
  289. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.win.js +0 -162
  290. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.darwin.js +0 -125
  291. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.linux.js +0 -180
  292. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.win.js +0 -162
  293. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/sv.win.js +0 -164
  294. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/thai.win.js +0 -162
  295. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/tr.win.js +0 -162
  296. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/zh-hans.darwin.js +0 -125
  297. package/vscode/src/vs/workbench/services/keybinding/common/keybindingIO.js +0 -72
  298. package/vscode/src/vs/workbench/services/keybinding/common/keymapInfo.js +0 -108
  299. package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +0 -886
  300. package/vscode/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +0 -350
  301. package/vscode/src/vs/workbench/services/quickinput/browser/quickInputService.js +0 -67
  302. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +0 -4
  303. package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +0 -77
@@ -1,1091 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { Barrier } from 'monaco-editor/esm/vs/base/common/async.js';
3
- import { toErrorMessage } from 'monaco-editor/esm/vs/base/common/errorMessage.js';
4
- import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
5
- import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
6
- import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
7
- import * as performance from 'monaco-editor/esm/vs/base/common/performance.js';
8
- import { isCI } from 'monaco-editor/esm/vs/base/common/platform.js';
9
- import { isEqualOrParent } from 'monaco-editor/esm/vs/base/common/resources.js';
10
- import { StopWatch } from 'monaco-editor/esm/vs/base/common/stopwatch.js';
11
- import * as nls from 'monaco-editor/esm/vs/nls.js';
12
- import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
13
- import '../../../../../../../override/vs/platform/dialogs/common/dialogs.js';
14
- import { ImplicitActivationEvents } from '../../../../platform/extensionManagement/common/implicitActivationEvents.js';
15
- import { ExtensionIdentifierMap, ExtensionIdentifier } from 'monaco-editor/esm/vs/platform/extensions/common/extensions.js';
16
- import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
17
- import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
18
- import { handleVetos } from '../../../../platform/lifecycle/common/lifecycle.js';
19
- import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
20
- import { Severity, INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
21
- import { IProductService } from 'monaco-editor/esm/vs/platform/product/common/productService.js';
22
- import { RemoteAuthorityResolverError, getRemoteAuthorityPrefix, IRemoteAuthorityResolverService, RemoteAuthorityResolverErrorCode } from '../../../../platform/remote/common/remoteAuthorityResolver.js';
23
- import { IRemoteExtensionsScannerService } from '../../../../platform/remote/common/remoteExtensionsScanner.js';
24
- import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
25
- import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
26
- import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
27
- import { IWorkbenchExtensionEnablementService, IWorkbenchExtensionManagementService } from '../../extensionManagement/common/extensionManagement.js';
28
- import { LockableExtensionDescriptionRegistry } from './extensionDescriptionRegistry.js';
29
- import { parseExtensionDevOptions } from './extensionDevOptions.js';
30
- import { extensionHostKindToString } from './extensionHostKind.js';
31
- import { createExtensionHostManager } from './extensionHostManager.js';
32
- import { IExtensionManifestPropertiesService } from './extensionManifestPropertiesService.js';
33
- import { RemoteRunningLocation, LocalProcessRunningLocation, LocalWebWorkerRunningLocation } from './extensionRunningLocation.js';
34
- import { ExtensionRunningLocationTracker, filterExtensionIdentifiers } from './extensionRunningLocationTracker.js';
35
- import { ExtensionPointContribution, ActivationTimes, toExtension } from './extensions.js';
36
- import { ExtensionsRegistry, ExtensionMessageCollector } from './extensionsRegistry.js';
37
- import { checkActivateWorkspaceContainsExtension, checkGlobFileExists } from './workspaceContains.js';
38
- import { ILifecycleService } from '../../lifecycle/common/lifecycle.js';
39
- import { IRemoteAgentService } from '../../remote/common/remoteAgentService.js';
40
- import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
41
- var AbstractExtensionService_1;
42
- const hasOwnProperty = Object.hasOwnProperty;
43
- const NO_OP_VOID_PROMISE = Promise.resolve(undefined);
44
- let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtensionService extends Disposable {
45
- constructor(_extensionsProposedApi, _extensionHostFactory, _extensionHostKindPicker, _instantiationService, _notificationService, _environmentService, _telemetryService, _extensionEnablementService, _fileService, _productService, _extensionManagementService, _contextService, _configurationService, _extensionManifestPropertiesService, _logService, _remoteAgentService, _remoteExtensionsScannerService, _lifecycleService, _remoteAuthorityResolverService, _dialogService) {
46
- super();
47
- this._extensionsProposedApi = _extensionsProposedApi;
48
- this._extensionHostFactory = _extensionHostFactory;
49
- this._extensionHostKindPicker = _extensionHostKindPicker;
50
- this._instantiationService = _instantiationService;
51
- this._notificationService = _notificationService;
52
- this._environmentService = _environmentService;
53
- this._telemetryService = _telemetryService;
54
- this._extensionEnablementService = _extensionEnablementService;
55
- this._fileService = _fileService;
56
- this._productService = _productService;
57
- this._extensionManagementService = _extensionManagementService;
58
- this._contextService = _contextService;
59
- this._configurationService = _configurationService;
60
- this._extensionManifestPropertiesService = _extensionManifestPropertiesService;
61
- this._logService = _logService;
62
- this._remoteAgentService = _remoteAgentService;
63
- this._remoteExtensionsScannerService = _remoteExtensionsScannerService;
64
- this._lifecycleService = _lifecycleService;
65
- this._remoteAuthorityResolverService = _remoteAuthorityResolverService;
66
- this._dialogService = _dialogService;
67
- this._onDidRegisterExtensions = this._register(( new Emitter()));
68
- this.onDidRegisterExtensions = this._onDidRegisterExtensions.event;
69
- this._onDidChangeExtensionsStatus = this._register(( new Emitter()));
70
- this.onDidChangeExtensionsStatus = this._onDidChangeExtensionsStatus.event;
71
- this._onDidChangeExtensions = this._register(( new Emitter({ leakWarningThreshold: 400 })));
72
- this.onDidChangeExtensions = this._onDidChangeExtensions.event;
73
- this._onWillActivateByEvent = this._register(( new Emitter()));
74
- this.onWillActivateByEvent = this._onWillActivateByEvent.event;
75
- this._onDidChangeResponsiveChange = this._register(( new Emitter()));
76
- this.onDidChangeResponsiveChange = this._onDidChangeResponsiveChange.event;
77
- this._onWillStop = this._register(( new Emitter()));
78
- this.onWillStop = this._onWillStop.event;
79
- this._activationEventReader = ( new ImplicitActivationAwareReader());
80
- this._registry = ( new LockableExtensionDescriptionRegistry(this._activationEventReader));
81
- this._installedExtensionsReady = ( new Barrier());
82
- this._extensionStatus = ( new ExtensionIdentifierMap());
83
- this._allRequestedActivateEvents = ( new Set());
84
- this._remoteCrashTracker = ( new ExtensionHostCrashTracker());
85
- this._deltaExtensionsQueue = [];
86
- this._inHandleDeltaExtensions = false;
87
- this._extensionHostManagers = [];
88
- this._resolveAuthorityAttempt = 0;
89
- this._register(this._fileService.onWillActivateFileSystemProvider(e => {
90
- if (e.scheme !== Schemas.vscodeRemote) {
91
- e.join(this.activateByEvent(`onFileSystem:${e.scheme}`));
92
- }
93
- }));
94
- this._runningLocations = ( new ExtensionRunningLocationTracker(
95
- this._registry,
96
- this._extensionHostKindPicker,
97
- this._environmentService,
98
- this._configurationService,
99
- this._logService,
100
- this._extensionManifestPropertiesService
101
- ));
102
- this._register(this._extensionEnablementService.onEnablementChanged((extensions) => {
103
- const toAdd = [];
104
- const toRemove = [];
105
- for (const extension of extensions) {
106
- if (this._safeInvokeIsEnabled(extension)) {
107
- toAdd.push(extension);
108
- }
109
- else {
110
- toRemove.push(extension);
111
- }
112
- }
113
- if (isCI) {
114
- this._logService.info(`AbstractExtensionService.onEnablementChanged fired for ${( extensions.map(e => e.identifier.id)).join(', ')}`);
115
- }
116
- this._handleDeltaExtensions(( new DeltaExtensionsQueueItem(toAdd, toRemove)));
117
- }));
118
- this._register(this._extensionManagementService.onDidChangeProfile(({ added, removed }) => {
119
- if (added.length || removed.length) {
120
- if (isCI) {
121
- this._logService.info(`AbstractExtensionService.onDidChangeProfile fired`);
122
- }
123
- this._handleDeltaExtensions(( new DeltaExtensionsQueueItem(added, removed)));
124
- }
125
- }));
126
- this._register(this._extensionManagementService.onDidInstallExtensions((result) => {
127
- const extensions = [];
128
- for (const { local, operation } of result) {
129
- if (local && operation !== 4 && this._safeInvokeIsEnabled(local)) {
130
- extensions.push(local);
131
- }
132
- }
133
- if (extensions.length) {
134
- if (isCI) {
135
- this._logService.info(`AbstractExtensionService.onDidInstallExtensions fired for ${( extensions.map(e => e.identifier.id)).join(', ')}`);
136
- }
137
- this._handleDeltaExtensions(( new DeltaExtensionsQueueItem(extensions, [])));
138
- }
139
- }));
140
- this._register(this._extensionManagementService.onDidUninstallExtension((event) => {
141
- if (!event.error) {
142
- if (isCI) {
143
- this._logService.info(`AbstractExtensionService.onDidUninstallExtension fired for ${event.identifier.id}`);
144
- }
145
- this._handleDeltaExtensions(( new DeltaExtensionsQueueItem([], [event.identifier.id])));
146
- }
147
- }));
148
- this._register(this._lifecycleService.onDidShutdown(() => {
149
- const connection = this._remoteAgentService.getConnection();
150
- connection?.dispose();
151
- this._doStopExtensionHosts();
152
- }));
153
- }
154
- _getExtensionHostManagers(kind) {
155
- return this._extensionHostManagers.filter(extHostManager => extHostManager.kind === kind);
156
- }
157
- _getExtensionHostManagerByRunningLocation(runningLocation) {
158
- for (const extensionHostManager of this._extensionHostManagers) {
159
- if (extensionHostManager.representsRunningLocation(runningLocation)) {
160
- return extensionHostManager;
161
- }
162
- }
163
- return null;
164
- }
165
- async _handleDeltaExtensions(item) {
166
- this._deltaExtensionsQueue.push(item);
167
- if (this._inHandleDeltaExtensions) {
168
- return;
169
- }
170
- let lock = null;
171
- try {
172
- this._inHandleDeltaExtensions = true;
173
- await this._installedExtensionsReady.wait();
174
- lock = await this._registry.acquireLock('handleDeltaExtensions');
175
- while (this._deltaExtensionsQueue.length > 0) {
176
- const item = this._deltaExtensionsQueue.shift();
177
- await this._deltaExtensions(lock, item.toAdd, item.toRemove);
178
- }
179
- }
180
- finally {
181
- this._inHandleDeltaExtensions = false;
182
- lock?.dispose();
183
- }
184
- }
185
- async _deltaExtensions(lock, _toAdd, _toRemove) {
186
- if (isCI) {
187
- this._logService.info(`AbstractExtensionService._deltaExtensions: toAdd: [${( _toAdd.map(e => e.identifier.id)).join(',')}] toRemove: [${( _toRemove.map(e => typeof e === 'string' ? e : e.identifier.id)).join(',')}]`);
188
- }
189
- let toRemove = [];
190
- for (let i = 0, len = _toRemove.length; i < len; i++) {
191
- const extensionOrId = _toRemove[i];
192
- const extensionId = (typeof extensionOrId === 'string' ? extensionOrId : extensionOrId.identifier.id);
193
- const extension = (typeof extensionOrId === 'string' ? null : extensionOrId);
194
- const extensionDescription = this._registry.getExtensionDescription(extensionId);
195
- if (!extensionDescription) {
196
- continue;
197
- }
198
- if (extension && extensionDescription.extensionLocation.scheme !== extension.location.scheme) {
199
- continue;
200
- }
201
- if (!this.canRemoveExtension(extensionDescription)) {
202
- continue;
203
- }
204
- toRemove.push(extensionDescription);
205
- }
206
- const toAdd = [];
207
- for (let i = 0, len = _toAdd.length; i < len; i++) {
208
- const extension = _toAdd[i];
209
- const extensionDescription = await this._scanSingleExtension(extension);
210
- if (!extensionDescription) {
211
- continue;
212
- }
213
- if (!this._canAddExtension(extensionDescription, toRemove)) {
214
- continue;
215
- }
216
- toAdd.push(extensionDescription);
217
- }
218
- if (toAdd.length === 0 && toRemove.length === 0) {
219
- return;
220
- }
221
- const result = this._registry.deltaExtensions(lock, toAdd, ( toRemove.map(e => e.identifier)));
222
- this._onDidChangeExtensions.fire({ added: toAdd, removed: toRemove });
223
- toRemove = toRemove.concat(result.removedDueToLooping);
224
- if (result.removedDueToLooping.length > 0) {
225
- this._notificationService.notify({
226
- severity: Severity.Error,
227
- message: ( nls.localizeWithPath(
228
- 'vs/workbench/services/extensions/common/abstractExtensionService',
229
- 'looping',
230
- "The following extensions contain dependency loops and have been disabled: {0}",
231
- ( result.removedDueToLooping.map(e => `'${e.identifier.value}'`)).join(', ')
232
- ))
233
- });
234
- }
235
- this._doHandleExtensionPoints([].concat(toAdd).concat(toRemove));
236
- await this._updateExtensionsOnExtHosts(result.versionId, toAdd, ( toRemove.map(e => e.identifier)));
237
- for (let i = 0; i < toAdd.length; i++) {
238
- this._activateAddedExtensionIfNeeded(toAdd[i]);
239
- }
240
- }
241
- async _updateExtensionsOnExtHosts(versionId, toAdd, toRemove) {
242
- const removedRunningLocation = this._runningLocations.deltaExtensions(toAdd, toRemove);
243
- const promises = ( this._extensionHostManagers.map(
244
- extHostManager => this._updateExtensionsOnExtHost(extHostManager, versionId, toAdd, toRemove, removedRunningLocation)
245
- ));
246
- await Promise.all(promises);
247
- }
248
- async _updateExtensionsOnExtHost(extensionHostManager, versionId, toAdd, toRemove, removedRunningLocation) {
249
- const myToAdd = this._runningLocations.filterByExtensionHostManager(toAdd, extensionHostManager);
250
- const myToRemove = filterExtensionIdentifiers(toRemove, removedRunningLocation, extRunningLocation => extensionHostManager.representsRunningLocation(extRunningLocation));
251
- const addActivationEvents = ImplicitActivationEvents.createActivationEventsMap(toAdd);
252
- if (isCI) {
253
- const printExtIds = (extensions) => ( extensions.map(e => e.identifier.value)).join(',');
254
- const printIds = (extensions) => ( extensions.map(e => e.value)).join(',');
255
- this._logService.info(`AbstractExtensionService: Calling deltaExtensions: toRemove: [${printIds(toRemove)}], toAdd: [${printExtIds(toAdd)}], myToRemove: [${printIds(myToRemove)}], myToAdd: [${printExtIds(myToAdd)}],`);
256
- }
257
- await extensionHostManager.deltaExtensions({ versionId, toRemove, toAdd, addActivationEvents, myToRemove, myToAdd: ( myToAdd.map(extension => extension.identifier)) });
258
- }
259
- canAddExtension(extension) {
260
- return this._canAddExtension(extension, []);
261
- }
262
- _canAddExtension(extension, extensionsBeingRemoved) {
263
- const existing = this._registry.getExtensionDescriptionByIdOrUUID(extension.identifier, extension.id);
264
- if (existing) {
265
- const isBeingRemoved = ( extensionsBeingRemoved.some(
266
- (extensionDescription) => ExtensionIdentifier.equals(extension.identifier, extensionDescription.identifier)
267
- ));
268
- if (!isBeingRemoved) {
269
- return false;
270
- }
271
- }
272
- const extensionKinds = this._runningLocations.readExtensionKinds(extension);
273
- const isRemote = extension.extensionLocation.scheme === Schemas.vscodeRemote;
274
- const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(extension.identifier, extensionKinds, !isRemote, isRemote, 0 );
275
- if (extensionHostKind === null) {
276
- return false;
277
- }
278
- return true;
279
- }
280
- canRemoveExtension(extension) {
281
- const extensionDescription = this._registry.getExtensionDescription(extension.identifier);
282
- if (!extensionDescription) {
283
- return false;
284
- }
285
- if (this._extensionStatus.get(extensionDescription.identifier)?.activationStarted) {
286
- return false;
287
- }
288
- return true;
289
- }
290
- async _activateAddedExtensionIfNeeded(extensionDescription) {
291
- let shouldActivate = false;
292
- let shouldActivateReason = null;
293
- let hasWorkspaceContains = false;
294
- const activationEvents = this._activationEventReader.readActivationEvents(extensionDescription);
295
- for (let activationEvent of activationEvents) {
296
- if (activationEvent === 'onUri') {
297
- activationEvent = `onUri:${ExtensionIdentifier.toKey(extensionDescription.identifier)}`;
298
- }
299
- if (( this._allRequestedActivateEvents.has(activationEvent))) {
300
- shouldActivate = true;
301
- shouldActivateReason = activationEvent;
302
- break;
303
- }
304
- if (activationEvent === '*') {
305
- shouldActivate = true;
306
- shouldActivateReason = activationEvent;
307
- break;
308
- }
309
- if (/^workspaceContains/.test(activationEvent)) {
310
- hasWorkspaceContains = true;
311
- }
312
- if (activationEvent === 'onStartupFinished') {
313
- shouldActivate = true;
314
- shouldActivateReason = activationEvent;
315
- break;
316
- }
317
- }
318
- if (shouldActivate) {
319
- await Promise.all(( this._extensionHostManagers.map(
320
- extHostManager => extHostManager.activate(extensionDescription.identifier, { startup: false, extensionId: extensionDescription.identifier, activationEvent: shouldActivateReason })
321
- ))).then(() => { });
322
- }
323
- else if (hasWorkspaceContains) {
324
- const workspace = await this._contextService.getCompleteWorkspace();
325
- const forceUsingSearch = !!this._environmentService.remoteAuthority;
326
- const host = {
327
- logService: this._logService,
328
- folders: ( workspace.folders.map(folder => folder.uri)),
329
- forceUsingSearch: forceUsingSearch,
330
- exists: (uri) => this._fileService.exists(uri),
331
- checkExists: (folders, includes, token) => this._instantiationService.invokeFunction((accessor) => checkGlobFileExists(accessor, folders, includes, token))
332
- };
333
- const result = await checkActivateWorkspaceContainsExtension(host, extensionDescription);
334
- if (!result) {
335
- return;
336
- }
337
- await Promise.all(( this._extensionHostManagers.map(
338
- extHostManager => extHostManager.activate(extensionDescription.identifier, { startup: false, extensionId: extensionDescription.identifier, activationEvent: result.activationEvent })
339
- ))).then(() => { });
340
- }
341
- }
342
- async _initialize() {
343
- performance.mark('code/willLoadExtensions');
344
- this._startExtensionHostsIfNecessary(true, []);
345
- const lock = await this._registry.acquireLock('_initialize');
346
- try {
347
- const resolvedExtensions = await this._resolveExtensions();
348
- this._processExtensions(lock, resolvedExtensions);
349
- const snapshot = this._registry.getSnapshot();
350
- for (const extHostManager of this._extensionHostManagers) {
351
- if (extHostManager.startup !== 1 ) {
352
- const extensions = this._runningLocations.filterByExtensionHostManager(snapshot.extensions, extHostManager);
353
- extHostManager.start(snapshot.versionId, snapshot.extensions, ( extensions.map(extension => extension.identifier)));
354
- }
355
- }
356
- }
357
- finally {
358
- lock.dispose();
359
- }
360
- this._releaseBarrier();
361
- performance.mark('code/didLoadExtensions');
362
- await this._handleExtensionTests();
363
- }
364
- _processExtensions(lock, resolvedExtensions) {
365
- const { allowRemoteExtensionsInLocalWebWorker, hasLocalProcess } = resolvedExtensions;
366
- const localExtensions = checkEnabledAndProposedAPI(this._logService, this._extensionEnablementService, this._extensionsProposedApi, resolvedExtensions.local, false);
367
- let remoteExtensions = checkEnabledAndProposedAPI(this._logService, this._extensionEnablementService, this._extensionsProposedApi, resolvedExtensions.remote, false);
368
- this._runningLocations.initializeRunningLocation(localExtensions, remoteExtensions);
369
- this._startExtensionHostsIfNecessary(true, []);
370
- const remoteExtensionsThatNeedToRunLocally = (allowRemoteExtensionsInLocalWebWorker ? this._runningLocations.filterByExtensionHostKind(remoteExtensions, 2 ) : []);
371
- const localProcessExtensions = (hasLocalProcess ? this._runningLocations.filterByExtensionHostKind(localExtensions, 1 ) : []);
372
- const localWebWorkerExtensions = this._runningLocations.filterByExtensionHostKind(localExtensions, 2 );
373
- remoteExtensions = this._runningLocations.filterByExtensionHostKind(remoteExtensions, 3 );
374
- for (const ext of remoteExtensionsThatNeedToRunLocally) {
375
- if (!includes(localWebWorkerExtensions, ext.identifier)) {
376
- localWebWorkerExtensions.push(ext);
377
- }
378
- }
379
- const allExtensions = remoteExtensions.concat(localProcessExtensions).concat(localWebWorkerExtensions);
380
- const result = this._registry.deltaExtensions(lock, allExtensions, []);
381
- if (result.removedDueToLooping.length > 0) {
382
- this._notificationService.notify({
383
- severity: Severity.Error,
384
- message: ( nls.localizeWithPath(
385
- 'vs/workbench/services/extensions/common/abstractExtensionService',
386
- 'looping',
387
- "The following extensions contain dependency loops and have been disabled: {0}",
388
- ( result.removedDueToLooping.map(e => `'${e.identifier.value}'`)).join(', ')
389
- ))
390
- });
391
- }
392
- this._doHandleExtensionPoints(this._registry.getAllExtensionDescriptions());
393
- }
394
- async _handleExtensionTests() {
395
- if (!this._environmentService.isExtensionDevelopment || !this._environmentService.extensionTestsLocationURI) {
396
- return;
397
- }
398
- const extensionHostManager = this.findTestExtensionHost(this._environmentService.extensionTestsLocationURI);
399
- if (!extensionHostManager) {
400
- const msg = ( nls.localizeWithPath(
401
- 'vs/workbench/services/extensions/common/abstractExtensionService',
402
- 'extensionTestError',
403
- "No extension host found that can launch the test runner at {0}.",
404
- ( this._environmentService.extensionTestsLocationURI.toString())
405
- ));
406
- console.error(msg);
407
- this._notificationService.error(msg);
408
- return;
409
- }
410
- let exitCode;
411
- try {
412
- exitCode = await extensionHostManager.extensionTestsExecute();
413
- if (isCI) {
414
- this._logService.info(`Extension host test runner exit code: ${exitCode}`);
415
- }
416
- }
417
- catch (err) {
418
- if (isCI) {
419
- this._logService.error(`Extension host test runner error`, err);
420
- }
421
- console.error(err);
422
- exitCode = 1 ;
423
- }
424
- this._onExtensionHostExit(exitCode);
425
- }
426
- findTestExtensionHost(testLocation) {
427
- let runningLocation = null;
428
- for (const extension of this._registry.getAllExtensionDescriptions()) {
429
- if (isEqualOrParent(testLocation, extension.extensionLocation)) {
430
- runningLocation = this._runningLocations.getRunningLocation(extension.identifier);
431
- break;
432
- }
433
- }
434
- if (runningLocation === null) {
435
- if (testLocation.scheme === Schemas.vscodeRemote) {
436
- runningLocation = ( new RemoteRunningLocation());
437
- }
438
- else {
439
- runningLocation = ( new LocalProcessRunningLocation(0));
440
- }
441
- }
442
- if (runningLocation !== null) {
443
- return this._getExtensionHostManagerByRunningLocation(runningLocation);
444
- }
445
- return null;
446
- }
447
- _releaseBarrier() {
448
- this._installedExtensionsReady.open();
449
- this._onDidRegisterExtensions.fire(undefined);
450
- this._onDidChangeExtensionsStatus.fire(( this._registry.getAllExtensionDescriptions().map(e => e.identifier)));
451
- }
452
- async _resolveAuthorityInitial(remoteAuthority) {
453
- const MAX_ATTEMPTS = 5;
454
- for (let attempt = 1;; attempt++) {
455
- try {
456
- return this._resolveAuthorityWithLogging(remoteAuthority);
457
- }
458
- catch (err) {
459
- if (RemoteAuthorityResolverError.isNoResolverFound(err)) {
460
- throw err;
461
- }
462
- if (RemoteAuthorityResolverError.isNotAvailable(err)) {
463
- throw err;
464
- }
465
- if (attempt >= MAX_ATTEMPTS) {
466
- throw err;
467
- }
468
- }
469
- }
470
- }
471
- async _resolveAuthorityAgain() {
472
- const remoteAuthority = this._environmentService.remoteAuthority;
473
- if (!remoteAuthority) {
474
- return;
475
- }
476
- this._remoteAuthorityResolverService._clearResolvedAuthority(remoteAuthority);
477
- try {
478
- const result = await this._resolveAuthorityWithLogging(remoteAuthority);
479
- this._remoteAuthorityResolverService._setResolvedAuthority(result.authority, result.options);
480
- }
481
- catch (err) {
482
- this._remoteAuthorityResolverService._setResolvedAuthorityError(remoteAuthority, err);
483
- }
484
- }
485
- async _resolveAuthorityWithLogging(remoteAuthority) {
486
- const authorityPrefix = getRemoteAuthorityPrefix(remoteAuthority);
487
- const sw = StopWatch.create(false);
488
- this._logService.info(`Invoking resolveAuthority(${authorityPrefix})...`);
489
- try {
490
- performance.mark(`code/willResolveAuthority/${authorityPrefix}`);
491
- const result = await this._resolveAuthority(remoteAuthority);
492
- performance.mark(`code/didResolveAuthorityOK/${authorityPrefix}`);
493
- this._logService.info(`resolveAuthority(${authorityPrefix}) returned '${result.authority.connectTo}' after ${sw.elapsed()} ms`);
494
- return result;
495
- }
496
- catch (err) {
497
- performance.mark(`code/didResolveAuthorityError/${authorityPrefix}`);
498
- this._logService.error(`resolveAuthority(${authorityPrefix}) returned an error after ${sw.elapsed()} ms`, err);
499
- throw err;
500
- }
501
- }
502
- async _resolveAuthorityOnExtensionHosts(kind, remoteAuthority) {
503
- const extensionHosts = this._getExtensionHostManagers(kind);
504
- if (extensionHosts.length === 0) {
505
- throw new Error(`Cannot resolve authority`);
506
- }
507
- this._resolveAuthorityAttempt++;
508
- const results = await Promise.all(( extensionHosts.map(
509
- extHost => extHost.resolveAuthority(remoteAuthority, this._resolveAuthorityAttempt)
510
- )));
511
- let bestErrorResult = null;
512
- for (const result of results) {
513
- if (result.type === 'ok') {
514
- return result.value;
515
- }
516
- if (!bestErrorResult) {
517
- bestErrorResult = result;
518
- continue;
519
- }
520
- const bestErrorIsUnknown = (bestErrorResult.error.code === RemoteAuthorityResolverErrorCode.Unknown);
521
- const errorIsUnknown = (result.error.code === RemoteAuthorityResolverErrorCode.Unknown);
522
- if (bestErrorIsUnknown && !errorIsUnknown) {
523
- bestErrorResult = result;
524
- }
525
- }
526
- throw new RemoteAuthorityResolverError(bestErrorResult.error.message, bestErrorResult.error.code, bestErrorResult.error.detail);
527
- }
528
- stopExtensionHosts(reason) {
529
- return this._doStopExtensionHostsWithVeto(reason);
530
- }
531
- _doStopExtensionHosts() {
532
- const previouslyActivatedExtensionIds = [];
533
- for (const extensionStatus of ( this._extensionStatus.values())) {
534
- if (extensionStatus.activationStarted) {
535
- previouslyActivatedExtensionIds.push(extensionStatus.id);
536
- }
537
- }
538
- for (let i = this._extensionHostManagers.length - 1; i >= 0; i--) {
539
- this._extensionHostManagers[i].dispose();
540
- }
541
- this._extensionHostManagers = [];
542
- for (const extensionStatus of ( this._extensionStatus.values())) {
543
- extensionStatus.clearRuntimeStatus();
544
- }
545
- if (previouslyActivatedExtensionIds.length > 0) {
546
- this._onDidChangeExtensionsStatus.fire(previouslyActivatedExtensionIds);
547
- }
548
- }
549
- async _doStopExtensionHostsWithVeto(reason) {
550
- const vetos = [];
551
- const vetoReasons = ( new Set());
552
- this._onWillStop.fire({
553
- reason,
554
- veto(value, reason) {
555
- vetos.push(value);
556
- if (typeof value === 'boolean') {
557
- if (value === true) {
558
- vetoReasons.add(reason);
559
- }
560
- }
561
- else {
562
- value.then(value => {
563
- if (value) {
564
- vetoReasons.add(reason);
565
- }
566
- }).catch(error => {
567
- vetoReasons.add(( nls.localizeWithPath(
568
- 'vs/workbench/services/extensions/common/abstractExtensionService',
569
- 'extensionStopVetoError',
570
- "{0} (Error: {1})",
571
- reason,
572
- toErrorMessage(error)
573
- )));
574
- });
575
- }
576
- }
577
- });
578
- const veto = await handleVetos(vetos, error => this._logService.error(error));
579
- if (!veto) {
580
- this._doStopExtensionHosts();
581
- }
582
- else {
583
- const vetoReasonsArray = Array.from(vetoReasons);
584
- this._logService.warn(`Extension host was not stopped because of veto (stop reason: ${reason}, veto reason: ${vetoReasonsArray.join(', ')})`);
585
- await this._dialogService.warn(( nls.localizeWithPath(
586
- 'vs/workbench/services/extensions/common/abstractExtensionService',
587
- 'extensionStopVetoMessage',
588
- "The following operation was blocked: {0}",
589
- reason
590
- )), vetoReasonsArray.length === 1 ?
591
- ( nls.localizeWithPath(
592
- 'vs/workbench/services/extensions/common/abstractExtensionService',
593
- 'extensionStopVetoDetailsOne',
594
- "The reason for blocking the operation: {0}",
595
- vetoReasonsArray[0]
596
- )) :
597
- ( nls.localizeWithPath(
598
- 'vs/workbench/services/extensions/common/abstractExtensionService',
599
- 'extensionStopVetoDetailsMany',
600
- "The reasons for blocking the operation:\n- {0}",
601
- vetoReasonsArray.join('\n -')
602
- )));
603
- }
604
- return !veto;
605
- }
606
- _startExtensionHostsIfNecessary(isInitialStart, initialActivationEvents) {
607
- const locations = [];
608
- for (let affinity = 0; affinity <= this._runningLocations.maxLocalProcessAffinity; affinity++) {
609
- locations.push(( new LocalProcessRunningLocation(affinity)));
610
- }
611
- for (let affinity = 0; affinity <= this._runningLocations.maxLocalWebWorkerAffinity; affinity++) {
612
- locations.push(( new LocalWebWorkerRunningLocation(affinity)));
613
- }
614
- locations.push(( new RemoteRunningLocation()));
615
- for (const location of locations) {
616
- if (this._getExtensionHostManagerByRunningLocation(location)) {
617
- continue;
618
- }
619
- const extHostManager = this._createExtensionHostManager(location, isInitialStart, initialActivationEvents);
620
- if (extHostManager) {
621
- this._extensionHostManagers.push(extHostManager);
622
- }
623
- }
624
- }
625
- _createExtensionHostManager(runningLocation, isInitialStart, initialActivationEvents) {
626
- const extensionHost = this._extensionHostFactory.createExtensionHost(this._runningLocations, runningLocation, isInitialStart);
627
- if (!extensionHost) {
628
- return null;
629
- }
630
- const processManager = this._doCreateExtensionHostManager(extensionHost, initialActivationEvents);
631
- processManager.onDidExit(([code, signal]) => this._onExtensionHostCrashOrExit(processManager, code, signal));
632
- processManager.onDidChangeResponsiveState((responsiveState) => {
633
- this._onDidChangeResponsiveChange.fire({
634
- extensionHostKind: processManager.kind,
635
- isResponsive: responsiveState === 0 ,
636
- getInspectPort: (tryEnableInspector) => {
637
- return processManager.getInspectPort(tryEnableInspector);
638
- }
639
- });
640
- });
641
- return processManager;
642
- }
643
- _doCreateExtensionHostManager(extensionHost, initialActivationEvents) {
644
- return createExtensionHostManager(this._instantiationService, extensionHost, initialActivationEvents, this._acquireInternalAPI(extensionHost));
645
- }
646
- _onExtensionHostCrashOrExit(extensionHost, code, signal) {
647
- const isExtensionDevHost = parseExtensionDevOptions(this._environmentService).isExtensionDevHost;
648
- if (!isExtensionDevHost) {
649
- this._onExtensionHostCrashed(extensionHost, code, signal);
650
- return;
651
- }
652
- this._onExtensionHostExit(code);
653
- }
654
- _onExtensionHostCrashed(extensionHost, code, signal) {
655
- console.error(`Extension host (${extensionHostKindToString(extensionHost.kind)}) terminated unexpectedly. Code: ${code}, Signal: ${signal}`);
656
- if (extensionHost.kind === 1 ) {
657
- this._doStopExtensionHosts();
658
- }
659
- else if (extensionHost.kind === 3 ) {
660
- if (signal) {
661
- this._onRemoteExtensionHostCrashed(extensionHost, signal);
662
- }
663
- for (let i = 0; i < this._extensionHostManagers.length; i++) {
664
- if (this._extensionHostManagers[i] === extensionHost) {
665
- this._extensionHostManagers[i].dispose();
666
- this._extensionHostManagers.splice(i, 1);
667
- break;
668
- }
669
- }
670
- }
671
- }
672
- _getExtensionHostExitInfoWithTimeout(reconnectionToken) {
673
- return ( new Promise((resolve, reject) => {
674
- const timeoutHandle = setTimeout(() => {
675
- reject(( new Error('getExtensionHostExitInfo timed out')));
676
- }, 2000);
677
- this._remoteAgentService.getExtensionHostExitInfo(reconnectionToken).then((r) => {
678
- clearTimeout(timeoutHandle);
679
- resolve(r);
680
- }, reject);
681
- }));
682
- }
683
- async _onRemoteExtensionHostCrashed(extensionHost, reconnectionToken) {
684
- try {
685
- const info = await this._getExtensionHostExitInfoWithTimeout(reconnectionToken);
686
- if (info) {
687
- this._logService.error(`Extension host (${extensionHostKindToString(extensionHost.kind)}) terminated unexpectedly with code ${info.code}.`);
688
- }
689
- this._logExtensionHostCrash(extensionHost);
690
- this._remoteCrashTracker.registerCrash();
691
- if (this._remoteCrashTracker.shouldAutomaticallyRestart()) {
692
- this._logService.info(`Automatically restarting the remote extension host.`);
693
- this._notificationService.status(( nls.localizeWithPath(
694
- 'vs/workbench/services/extensions/common/abstractExtensionService',
695
- 'extensionService.autoRestart',
696
- "The remote extension host terminated unexpectedly. Restarting..."
697
- )), { hideAfter: 5000 });
698
- this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
699
- }
700
- else {
701
- this._notificationService.prompt(Severity.Error, ( nls.localizeWithPath(
702
- 'vs/workbench/services/extensions/common/abstractExtensionService',
703
- 'extensionService.crash',
704
- "Remote Extension host terminated unexpectedly 3 times within the last 5 minutes."
705
- )), [{
706
- label: ( nls.localizeWithPath(
707
- 'vs/workbench/services/extensions/common/abstractExtensionService',
708
- 'restart',
709
- "Restart Remote Extension Host"
710
- )),
711
- run: () => {
712
- this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
713
- }
714
- }]);
715
- }
716
- }
717
- catch (err) {
718
- }
719
- }
720
- _logExtensionHostCrash(extensionHost) {
721
- const activatedExtensions = [];
722
- for (const extensionStatus of ( this._extensionStatus.values())) {
723
- if (extensionStatus.activationStarted && extensionHost.containsExtension(extensionStatus.id)) {
724
- activatedExtensions.push(extensionStatus.id);
725
- }
726
- }
727
- if (activatedExtensions.length > 0) {
728
- this._logService.error(`Extension host (${extensionHostKindToString(extensionHost.kind)}) terminated unexpectedly. The following extensions were running: ${( activatedExtensions.map(id => id.value)).join(', ')}`);
729
- }
730
- else {
731
- this._logService.error(`Extension host (${extensionHostKindToString(extensionHost.kind)}) terminated unexpectedly. No extensions were activated.`);
732
- }
733
- }
734
- async startExtensionHosts() {
735
- this._doStopExtensionHosts();
736
- const lock = await this._registry.acquireLock('startExtensionHosts');
737
- try {
738
- this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
739
- const localProcessExtensionHosts = this._getExtensionHostManagers(1 );
740
- await Promise.all(( localProcessExtensionHosts.map(extHost => extHost.ready())));
741
- }
742
- finally {
743
- lock.dispose();
744
- }
745
- }
746
- activateByEvent(activationEvent, activationKind = 0 ) {
747
- if (this._installedExtensionsReady.isOpen()) {
748
- this._allRequestedActivateEvents.add(activationEvent);
749
- if (!this._registry.containsActivationEvent(activationEvent)) {
750
- return NO_OP_VOID_PROMISE;
751
- }
752
- return this._activateByEvent(activationEvent, activationKind);
753
- }
754
- else {
755
- this._allRequestedActivateEvents.add(activationEvent);
756
- if (activationKind === 1 ) {
757
- return this._activateByEvent(activationEvent, activationKind);
758
- }
759
- return this._installedExtensionsReady.wait().then(() => this._activateByEvent(activationEvent, activationKind));
760
- }
761
- }
762
- _activateByEvent(activationEvent, activationKind) {
763
- const result = Promise.all(( this._extensionHostManagers.map(
764
- extHostManager => extHostManager.activateByEvent(activationEvent, activationKind)
765
- ))).then(() => { });
766
- this._onWillActivateByEvent.fire({
767
- event: activationEvent,
768
- activation: result
769
- });
770
- return result;
771
- }
772
- activationEventIsDone(activationEvent) {
773
- if (!this._installedExtensionsReady.isOpen()) {
774
- return false;
775
- }
776
- if (!this._registry.containsActivationEvent(activationEvent)) {
777
- return true;
778
- }
779
- return this._extensionHostManagers.every(manager => manager.activationEventIsDone(activationEvent));
780
- }
781
- whenInstalledExtensionsRegistered() {
782
- return this._installedExtensionsReady.wait();
783
- }
784
- get extensions() {
785
- return this._registry.getAllExtensionDescriptions();
786
- }
787
- _getExtensionRegistrySnapshotWhenReady() {
788
- return this._installedExtensionsReady.wait().then(() => this._registry.getSnapshot());
789
- }
790
- getExtension(id) {
791
- return this._installedExtensionsReady.wait().then(() => {
792
- return this._registry.getExtensionDescription(id);
793
- });
794
- }
795
- readExtensionPointContributions(extPoint) {
796
- return this._installedExtensionsReady.wait().then(() => {
797
- const availableExtensions = this._registry.getAllExtensionDescriptions();
798
- const result = [];
799
- for (const desc of availableExtensions) {
800
- if (desc.contributes && hasOwnProperty.call(desc.contributes, extPoint.name)) {
801
- result.push(( new ExtensionPointContribution(desc, desc.contributes[extPoint.name])));
802
- }
803
- }
804
- return result;
805
- });
806
- }
807
- getExtensionsStatus() {
808
- const result = Object.create(null);
809
- if (this._registry) {
810
- const extensions = this._registry.getAllExtensionDescriptions();
811
- for (const extension of extensions) {
812
- const extensionStatus = this._extensionStatus.get(extension.identifier);
813
- result[extension.identifier.value] = {
814
- id: extension.identifier,
815
- messages: extensionStatus?.messages ?? [],
816
- activationStarted: extensionStatus?.activationStarted ?? false,
817
- activationTimes: extensionStatus?.activationTimes ?? undefined,
818
- runtimeErrors: extensionStatus?.runtimeErrors ?? [],
819
- runningLocation: this._runningLocations.getRunningLocation(extension.identifier),
820
- };
821
- }
822
- }
823
- return result;
824
- }
825
- async getInspectPorts(extensionHostKind, tryEnableInspector) {
826
- const result = await Promise.all(( this._getExtensionHostManagers(extensionHostKind).map(extHost => extHost.getInspectPort(tryEnableInspector))));
827
- return result.filter(element => Boolean(element));
828
- }
829
- async setRemoteEnvironment(env) {
830
- await ( this._extensionHostManagers
831
- .map(manager => manager.setRemoteEnvironment(env)));
832
- }
833
- _safeInvokeIsEnabled(extension) {
834
- try {
835
- return this._extensionEnablementService.isEnabled(extension);
836
- }
837
- catch (err) {
838
- return false;
839
- }
840
- }
841
- _doHandleExtensionPoints(affectedExtensions) {
842
- const affectedExtensionPoints = Object.create(null);
843
- for (const extensionDescription of affectedExtensions) {
844
- if (extensionDescription.contributes) {
845
- for (const extPointName in extensionDescription.contributes) {
846
- if (hasOwnProperty.call(extensionDescription.contributes, extPointName)) {
847
- affectedExtensionPoints[extPointName] = true;
848
- }
849
- }
850
- }
851
- }
852
- const messageHandler = (msg) => this._handleExtensionPointMessage(msg);
853
- const availableExtensions = this._registry.getAllExtensionDescriptions();
854
- const extensionPoints = ExtensionsRegistry.getExtensionPoints();
855
- performance.mark('code/willHandleExtensionPoints');
856
- for (const extensionPoint of extensionPoints) {
857
- if (affectedExtensionPoints[extensionPoint.name]) {
858
- performance.mark(`code/willHandleExtensionPoint/${extensionPoint.name}`);
859
- AbstractExtensionService_1._handleExtensionPoint(extensionPoint, availableExtensions, messageHandler);
860
- performance.mark(`code/didHandleExtensionPoint/${extensionPoint.name}`);
861
- }
862
- }
863
- performance.mark('code/didHandleExtensionPoints');
864
- }
865
- _getOrCreateExtensionStatus(extensionId) {
866
- if (!( this._extensionStatus.has(extensionId))) {
867
- this._extensionStatus.set(extensionId, ( new ExtensionStatus(extensionId)));
868
- }
869
- return this._extensionStatus.get(extensionId);
870
- }
871
- _handleExtensionPointMessage(msg) {
872
- const extensionStatus = this._getOrCreateExtensionStatus(msg.extensionId);
873
- extensionStatus.addMessage(msg);
874
- const extension = this._registry.getExtensionDescription(msg.extensionId);
875
- const strMsg = `[${msg.extensionId.value}]: ${msg.message}`;
876
- if (msg.type === Severity.Error) {
877
- if (extension && extension.isUnderDevelopment) {
878
- this._notificationService.notify({ severity: Severity.Error, message: strMsg });
879
- }
880
- this._logService.error(strMsg);
881
- }
882
- else if (msg.type === Severity.Warning) {
883
- if (extension && extension.isUnderDevelopment) {
884
- this._notificationService.notify({ severity: Severity.Warning, message: strMsg });
885
- }
886
- this._logService.warn(strMsg);
887
- }
888
- else {
889
- this._logService.info(strMsg);
890
- }
891
- if (msg.extensionId && this._environmentService.isBuilt && !this._environmentService.isExtensionDevelopment) {
892
- const { type, extensionId, extensionPointId, message } = msg;
893
- this._telemetryService.publicLog2('extensionsMessage', {
894
- type, extensionId: extensionId.value, extensionPointId, message
895
- });
896
- }
897
- }
898
- static _handleExtensionPoint(extensionPoint, availableExtensions, messageHandler) {
899
- const users = [];
900
- for (const desc of availableExtensions) {
901
- if (desc.contributes && hasOwnProperty.call(desc.contributes, extensionPoint.name)) {
902
- users.push({
903
- description: desc,
904
- value: desc.contributes[extensionPoint.name],
905
- collector: ( new ExtensionMessageCollector(messageHandler, desc, extensionPoint.name))
906
- });
907
- }
908
- }
909
- extensionPoint.acceptUsers(users);
910
- }
911
- _acquireInternalAPI(extensionHost) {
912
- return {
913
- _activateById: (extensionId, reason) => {
914
- return this._activateById(extensionId, reason);
915
- },
916
- _onWillActivateExtension: (extensionId) => {
917
- return this._onWillActivateExtension(extensionId, extensionHost.runningLocation);
918
- },
919
- _onDidActivateExtension: (extensionId, codeLoadingTime, activateCallTime, activateResolvedTime, activationReason) => {
920
- return this._onDidActivateExtension(extensionId, codeLoadingTime, activateCallTime, activateResolvedTime, activationReason);
921
- },
922
- _onDidActivateExtensionError: (extensionId, error) => {
923
- return this._onDidActivateExtensionError(extensionId, error);
924
- },
925
- _onExtensionRuntimeError: (extensionId, err) => {
926
- return this._onExtensionRuntimeError(extensionId, err);
927
- }
928
- };
929
- }
930
- async _activateById(extensionId, reason) {
931
- const results = await Promise.all(( this._extensionHostManagers.map(manager => manager.activate(extensionId, reason))));
932
- const activated = ( results.some(e => e));
933
- if (!activated) {
934
- throw new Error(`Unknown extension ${extensionId.value}`);
935
- }
936
- }
937
- _onWillActivateExtension(extensionId, runningLocation) {
938
- this._runningLocations.set(extensionId, runningLocation);
939
- const extensionStatus = this._getOrCreateExtensionStatus(extensionId);
940
- extensionStatus.onWillActivate();
941
- }
942
- _onDidActivateExtension(extensionId, codeLoadingTime, activateCallTime, activateResolvedTime, activationReason) {
943
- const extensionStatus = this._getOrCreateExtensionStatus(extensionId);
944
- extensionStatus.setActivationTimes(( new ActivationTimes(codeLoadingTime, activateCallTime, activateResolvedTime, activationReason)));
945
- this._onDidChangeExtensionsStatus.fire([extensionId]);
946
- }
947
- _onDidActivateExtensionError(extensionId, error) {
948
- this._telemetryService.publicLog2('extensionActivationError', {
949
- extensionId: extensionId.value,
950
- error: error.message
951
- });
952
- }
953
- _onExtensionRuntimeError(extensionId, err) {
954
- const extensionStatus = this._getOrCreateExtensionStatus(extensionId);
955
- extensionStatus.addRuntimeError(err);
956
- this._onDidChangeExtensionsStatus.fire([extensionId]);
957
- }
958
- };
959
- AbstractExtensionService = AbstractExtensionService_1 = ( __decorate([
960
- ( __param(3, IInstantiationService)),
961
- ( __param(4, INotificationService)),
962
- ( __param(5, IWorkbenchEnvironmentService)),
963
- ( __param(6, ITelemetryService)),
964
- ( __param(7, IWorkbenchExtensionEnablementService)),
965
- ( __param(8, IFileService)),
966
- ( __param(9, IProductService)),
967
- ( __param(10, IWorkbenchExtensionManagementService)),
968
- ( __param(11, IWorkspaceContextService)),
969
- ( __param(12, IConfigurationService)),
970
- ( __param(13, IExtensionManifestPropertiesService)),
971
- ( __param(14, ILogService)),
972
- ( __param(15, IRemoteAgentService)),
973
- ( __param(16, IRemoteExtensionsScannerService)),
974
- ( __param(17, ILifecycleService)),
975
- ( __param(18, IRemoteAuthorityResolverService)),
976
- ( __param(19, IDialogService))
977
- ], AbstractExtensionService));
978
- class ResolvedExtensions {
979
- constructor(local, remote, hasLocalProcess, allowRemoteExtensionsInLocalWebWorker) {
980
- this.local = local;
981
- this.remote = remote;
982
- this.hasLocalProcess = hasLocalProcess;
983
- this.allowRemoteExtensionsInLocalWebWorker = allowRemoteExtensionsInLocalWebWorker;
984
- }
985
- }
986
- class DeltaExtensionsQueueItem {
987
- constructor(toAdd, toRemove) {
988
- this.toAdd = toAdd;
989
- this.toRemove = toRemove;
990
- }
991
- }
992
- function checkEnabledAndProposedAPI(logService, extensionEnablementService, extensionsProposedApi, extensions, ignoreWorkspaceTrust) {
993
- return filterEnabledExtensions(logService, extensionEnablementService, extensions, ignoreWorkspaceTrust);
994
- }
995
- function filterEnabledExtensions(logService, extensionEnablementService, extensions, ignoreWorkspaceTrust) {
996
- const enabledExtensions = [], extensionsToCheck = [], mappedExtensions = [];
997
- for (const extension of extensions) {
998
- if (extension.isUnderDevelopment) {
999
- enabledExtensions.push(extension);
1000
- }
1001
- else {
1002
- extensionsToCheck.push(extension);
1003
- mappedExtensions.push(toExtension(extension));
1004
- }
1005
- }
1006
- const enablementStates = extensionEnablementService.getEnablementStates(mappedExtensions, ignoreWorkspaceTrust ? { trusted: true } : undefined);
1007
- for (let index = 0; index < enablementStates.length; index++) {
1008
- if (extensionEnablementService.isEnabledEnablementState(enablementStates[index])) {
1009
- enabledExtensions.push(extensionsToCheck[index]);
1010
- }
1011
- else {
1012
- if (isCI) {
1013
- logService.info(`filterEnabledExtensions: extension '${extensionsToCheck[index].identifier.value}' is disabled`);
1014
- }
1015
- }
1016
- }
1017
- return enabledExtensions;
1018
- }
1019
- function includes(extensions, identifier) {
1020
- for (const extension of extensions) {
1021
- if (ExtensionIdentifier.equals(extension.identifier, identifier)) {
1022
- return true;
1023
- }
1024
- }
1025
- return false;
1026
- }
1027
- class ExtensionStatus {
1028
- get messages() {
1029
- return this._messages;
1030
- }
1031
- get activationTimes() {
1032
- return this._activationTimes;
1033
- }
1034
- get runtimeErrors() {
1035
- return this._runtimeErrors;
1036
- }
1037
- get activationStarted() {
1038
- return this._activationStarted;
1039
- }
1040
- constructor(id) {
1041
- this.id = id;
1042
- this._messages = [];
1043
- this._activationTimes = null;
1044
- this._runtimeErrors = [];
1045
- this._activationStarted = false;
1046
- }
1047
- clearRuntimeStatus() {
1048
- this._activationStarted = false;
1049
- this._activationTimes = null;
1050
- this._runtimeErrors = [];
1051
- }
1052
- addMessage(msg) {
1053
- this._messages.push(msg);
1054
- }
1055
- setActivationTimes(activationTimes) {
1056
- this._activationTimes = activationTimes;
1057
- }
1058
- addRuntimeError(err) {
1059
- this._runtimeErrors.push(err);
1060
- }
1061
- onWillActivate() {
1062
- this._activationStarted = true;
1063
- }
1064
- }
1065
- class ExtensionHostCrashTracker {
1066
- constructor() {
1067
- this._recentCrashes = [];
1068
- }
1069
- static { this._TIME_LIMIT = 5 * 60 * 1000; }
1070
- static { this._CRASH_LIMIT = 3; }
1071
- _removeOldCrashes() {
1072
- const limit = Date.now() - ExtensionHostCrashTracker._TIME_LIMIT;
1073
- while (this._recentCrashes.length > 0 && this._recentCrashes[0].timestamp < limit) {
1074
- this._recentCrashes.shift();
1075
- }
1076
- }
1077
- registerCrash() {
1078
- this._removeOldCrashes();
1079
- this._recentCrashes.push({ timestamp: Date.now() });
1080
- }
1081
- shouldAutomaticallyRestart() {
1082
- this._removeOldCrashes();
1083
- return (this._recentCrashes.length < ExtensionHostCrashTracker._CRASH_LIMIT);
1084
- }
1085
- }
1086
- class ImplicitActivationAwareReader {
1087
- readActivationEvents(extensionDescription) {
1088
- return ImplicitActivationEvents.readActivationEvents(extensionDescription);
1089
- }
1090
- }
1091
- export { AbstractExtensionService, DeltaExtensionsQueueItem, ExtensionHostCrashTracker, ExtensionStatus, ResolvedExtensions, checkEnabledAndProposedAPI, filterEnabledExtensions };