@vscode/chat-lib 0.0.1 → 0.0.2

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 (391) hide show
  1. package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
  2. package/dist/src/_internal/extension/xtab/common/promptCrafting.js +6 -5
  3. package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
  4. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +1 -0
  5. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  6. package/dist/src/_internal/platform/configuration/common/configurationService.js +1 -0
  7. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  8. package/dist/src/_internal/platform/env/common/envService.d.ts +5 -0
  9. package/dist/src/_internal/platform/env/common/envService.d.ts.map +1 -1
  10. package/dist/src/_internal/platform/env/common/envService.js +2 -1
  11. package/dist/src/_internal/platform/env/common/envService.js.map +1 -1
  12. package/dist/src/_internal/platform/env/common/nullEnvService.d.ts +3 -0
  13. package/dist/src/_internal/platform/env/common/nullEnvService.d.ts.map +1 -1
  14. package/dist/src/_internal/platform/env/common/nullEnvService.js +8 -1
  15. package/dist/src/_internal/platform/env/common/nullEnvService.js.map +1 -1
  16. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts +7 -0
  17. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts.map +1 -1
  18. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js +1 -0
  19. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js.map +1 -1
  20. package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +8 -0
  21. package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
  22. package/dist/src/_internal/util/common/test/shims/chatTypes.js +19 -1
  23. package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
  24. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.d.ts.map +1 -1
  25. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +8 -1
  26. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
  27. package/dist/src/_internal/vscodeTypes.d.ts +4 -0
  28. package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
  29. package/dist/src/_internal/vscodeTypes.js +5 -1
  30. package/dist/src/_internal/vscodeTypes.js.map +1 -1
  31. package/dist/src/main.d.ts +5 -0
  32. package/dist/src/main.d.ts.map +1 -1
  33. package/dist/src/main.js +12 -0
  34. package/dist/src/main.js.map +1 -1
  35. package/dist/src/package.json +46 -19
  36. package/package.json +3 -6
  37. package/src/_internal/extension/byok/node/openAIEndpoint.ts +0 -171
  38. package/src/_internal/extension/common/constants.ts +0 -90
  39. package/src/_internal/extension/inlineEdits/common/delayer.ts +0 -108
  40. package/src/_internal/extension/inlineEdits/common/editRebase.ts +0 -268
  41. package/src/_internal/extension/inlineEdits/common/ghNearbyNesProvider.tsx +0 -163
  42. package/src/_internal/extension/inlineEdits/common/nearbyCursorInlineEditProvider.ts +0 -225
  43. package/src/_internal/extension/inlineEdits/common/rejectionCollector.ts +0 -164
  44. package/src/_internal/extension/inlineEdits/node/debugRecorder.ts +0 -205
  45. package/src/_internal/extension/inlineEdits/node/importFiltering.ts +0 -25
  46. package/src/_internal/extension/inlineEdits/node/nesConfigs.ts +0 -12
  47. package/src/_internal/extension/inlineEdits/node/nextEditCache.ts +0 -278
  48. package/src/_internal/extension/inlineEdits/node/nextEditProvider.ts +0 -778
  49. package/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.ts +0 -983
  50. package/src/_internal/extension/inlineEdits/node/nextEditResult.ts +0 -40
  51. package/src/_internal/extension/prompt/common/importStatement.ts +0 -25
  52. package/src/_internal/extension/prompt/node/chatMLFetcher.ts +0 -706
  53. package/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.ts +0 -146
  54. package/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.ts +0 -527
  55. package/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.ts +0 -76
  56. package/src/_internal/extension/prompts/node/inline/visualization.ts +0 -65
  57. package/src/_internal/extension/vscode.proposed.activeComment.d.ts +0 -23
  58. package/src/_internal/extension/vscode.proposed.aiRelatedInformation.d.ts +0 -49
  59. package/src/_internal/extension/vscode.proposed.aiSettingsSearch.d.ts +0 -31
  60. package/src/_internal/extension/vscode.proposed.aiTextSearchProvider.d.ts +0 -41
  61. package/src/_internal/extension/vscode.proposed.authLearnMore.d.ts +0 -16
  62. package/src/_internal/extension/vscode.proposed.chatBinaryReferenceData.d.ts +0 -41
  63. package/src/_internal/extension/vscode.proposed.chatEditing.d.ts +0 -29
  64. package/src/_internal/extension/vscode.proposed.chatParticipantAdditions.d.ts +0 -636
  65. package/src/_internal/extension/vscode.proposed.chatParticipantPrivate.d.ts +0 -276
  66. package/src/_internal/extension/vscode.proposed.chatProvider.d.ts +0 -62
  67. package/src/_internal/extension/vscode.proposed.chatReadonlyPromptReference.d.ts +0 -17
  68. package/src/_internal/extension/vscode.proposed.chatReferenceDiagnostic.d.ts +0 -23
  69. package/src/_internal/extension/vscode.proposed.chatSessionsProvider.d.ts +0 -218
  70. package/src/_internal/extension/vscode.proposed.chatStatusItem.d.ts +0 -61
  71. package/src/_internal/extension/vscode.proposed.codeActionAI.d.ts +0 -16
  72. package/src/_internal/extension/vscode.proposed.commentReveal.d.ts +0 -32
  73. package/src/_internal/extension/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts +0 -8
  74. package/src/_internal/extension/vscode.proposed.contribCommentsViewThreadMenus.d.ts +0 -6
  75. package/src/_internal/extension/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +0 -7
  76. package/src/_internal/extension/vscode.proposed.dataChannels.d.ts +0 -19
  77. package/src/_internal/extension/vscode.proposed.defaultChatParticipant.d.ts +0 -52
  78. package/src/_internal/extension/vscode.proposed.documentFiltersExclusive.d.ts +0 -13
  79. package/src/_internal/extension/vscode.proposed.embeddings.d.ts +0 -33
  80. package/src/_internal/extension/vscode.proposed.extensionsAny.d.ts +0 -40
  81. package/src/_internal/extension/vscode.proposed.findFiles2.d.ts +0 -125
  82. package/src/_internal/extension/vscode.proposed.findTextInFiles.d.ts +0 -104
  83. package/src/_internal/extension/vscode.proposed.findTextInFiles2.d.ts +0 -144
  84. package/src/_internal/extension/vscode.proposed.inlineCompletionsAdditions.d.ts +0 -202
  85. package/src/_internal/extension/vscode.proposed.interactive.d.ts +0 -11
  86. package/src/_internal/extension/vscode.proposed.languageModelCapabilities.d.ts +0 -25
  87. package/src/_internal/extension/vscode.proposed.languageModelDataPart.d.ts +0 -163
  88. package/src/_internal/extension/vscode.proposed.languageModelSystem.d.ts +0 -17
  89. package/src/_internal/extension/vscode.proposed.languageModelThinkingPart.d.ts +0 -49
  90. package/src/_internal/extension/vscode.proposed.languageModelToolResultAudience.d.ts +0 -36
  91. package/src/_internal/extension/vscode.proposed.mappedEditsProvider.d.ts +0 -110
  92. package/src/_internal/extension/vscode.proposed.newSymbolNamesProvider.d.ts +0 -47
  93. package/src/_internal/extension/vscode.proposed.readonlyMessage.d.ts +0 -14
  94. package/src/_internal/extension/vscode.proposed.resolvers.d.ts +0 -475
  95. package/src/_internal/extension/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
  96. package/src/_internal/extension/vscode.proposed.taskProblemMatcherStatus.d.ts +0 -42
  97. package/src/_internal/extension/vscode.proposed.terminalDataWriteEvent.d.ts +0 -32
  98. package/src/_internal/extension/vscode.proposed.terminalExecuteCommandEvent.d.ts +0 -48
  99. package/src/_internal/extension/vscode.proposed.terminalQuickFixProvider.d.ts +0 -87
  100. package/src/_internal/extension/vscode.proposed.terminalSelection.d.ts +0 -16
  101. package/src/_internal/extension/vscode.proposed.testObserver.d.ts +0 -199
  102. package/src/_internal/extension/vscode.proposed.textDocumentChangeReason.d.ts +0 -30
  103. package/src/_internal/extension/vscode.proposed.textSearchProvider.d.ts +0 -281
  104. package/src/_internal/extension/vscode.proposed.textSearchProvider2.d.ts +0 -297
  105. package/src/_internal/extension/xtab/common/promptCrafting.ts +0 -670
  106. package/src/_internal/extension/xtab/node/xtabEndpoint.ts +0 -102
  107. package/src/_internal/extension/xtab/node/xtabProvider.ts +0 -976
  108. package/src/_internal/extension/xtab/node/xtabUtils.ts +0 -62
  109. package/src/_internal/platform/authentication/common/authentication.ts +0 -309
  110. package/src/_internal/platform/authentication/common/copilotToken.ts +0 -300
  111. package/src/_internal/platform/authentication/common/copilotTokenManager.ts +0 -59
  112. package/src/_internal/platform/authentication/common/copilotTokenStore.ts +0 -40
  113. package/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.ts +0 -96
  114. package/src/_internal/platform/authentication/node/copilotTokenManager.ts +0 -303
  115. package/src/_internal/platform/chat/common/chatMLFetcher.ts +0 -124
  116. package/src/_internal/platform/chat/common/chatQuotaService.ts +0 -63
  117. package/src/_internal/platform/chat/common/chatQuotaServiceImpl.ts +0 -96
  118. package/src/_internal/platform/chat/common/commonTypes.ts +0 -353
  119. package/src/_internal/platform/chat/common/conversationOptions.ts +0 -16
  120. package/src/_internal/platform/chat/common/globalStringUtils.ts +0 -54
  121. package/src/_internal/platform/chat/common/interactionService.ts +0 -35
  122. package/src/_internal/platform/configuration/common/configurationService.ts +0 -803
  123. package/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.ts +0 -39
  124. package/src/_internal/platform/configuration/common/jsonSchema.ts +0 -139
  125. package/src/_internal/platform/configuration/common/validator.ts +0 -242
  126. package/src/_internal/platform/diff/common/diffService.ts +0 -41
  127. package/src/_internal/platform/diff/common/diffWorker.ts +0 -83
  128. package/src/_internal/platform/diff/node/diffServiceImpl.ts +0 -85
  129. package/src/_internal/platform/editing/common/abstractText.ts +0 -177
  130. package/src/_internal/platform/editing/common/notebookDocumentSnapshot.ts +0 -122
  131. package/src/_internal/platform/editing/common/positionOffsetTransformer.ts +0 -202
  132. package/src/_internal/platform/editing/common/textDocumentSnapshot.ts +0 -274
  133. package/src/_internal/platform/endpoint/common/capiClient.ts +0 -37
  134. package/src/_internal/platform/endpoint/common/chatModelCapabilities.ts +0 -115
  135. package/src/_internal/platform/endpoint/common/domainService.ts +0 -27
  136. package/src/_internal/platform/endpoint/common/endpointProvider.ts +0 -104
  137. package/src/_internal/platform/endpoint/common/endpointTypes.ts +0 -12
  138. package/src/_internal/platform/endpoint/common/licenseAgreement.ts +0 -11
  139. package/src/_internal/platform/endpoint/common/statefulMarkerContainer.tsx +0 -85
  140. package/src/_internal/platform/endpoint/common/thinkingDataContainer.tsx +0 -44
  141. package/src/_internal/platform/endpoint/node/capiClientImpl.ts +0 -18
  142. package/src/_internal/platform/endpoint/node/chatEndpoint.ts +0 -435
  143. package/src/_internal/platform/endpoint/node/domainServiceImpl.ts +0 -80
  144. package/src/_internal/platform/endpoint/node/proxyXtabEndpoint.ts +0 -43
  145. package/src/_internal/platform/endpoint/node/responsesApi.ts +0 -326
  146. package/src/_internal/platform/env/common/envService.ts +0 -134
  147. package/src/_internal/platform/env/common/nullEnvService.ts +0 -68
  148. package/src/_internal/platform/env/common/packagejson.ts +0 -49
  149. package/src/_internal/platform/git/common/gitExtensionService.ts +0 -21
  150. package/src/_internal/platform/git/common/nullGitExtensionService.ts +0 -20
  151. package/src/_internal/platform/git/vscode/git.d.ts +0 -414
  152. package/src/_internal/platform/github/common/githubAPI.ts +0 -44
  153. package/src/_internal/platform/github/common/githubService.ts +0 -87
  154. package/src/_internal/platform/github/common/nullOctokitServiceImpl.ts +0 -21
  155. package/src/_internal/platform/ignore/common/ignoreService.ts +0 -72
  156. package/src/_internal/platform/inlineCompletions/common/api.ts +0 -198
  157. package/src/_internal/platform/inlineEdits/common/dataTypes/diagnosticData.ts +0 -32
  158. package/src/_internal/platform/inlineEdits/common/dataTypes/documentId.ts +0 -52
  159. package/src/_internal/platform/inlineEdits/common/dataTypes/edit.ts +0 -165
  160. package/src/_internal/platform/inlineEdits/common/dataTypes/editUtils.ts +0 -74
  161. package/src/_internal/platform/inlineEdits/common/dataTypes/fetchCancellationError.ts +0 -14
  162. package/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.ts +0 -107
  163. package/src/_internal/platform/inlineEdits/common/dataTypes/languageId.ts +0 -14
  164. package/src/_internal/platform/inlineEdits/common/dataTypes/permutation.ts +0 -69
  165. package/src/_internal/platform/inlineEdits/common/dataTypes/rootedLineEdit.ts +0 -49
  166. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLength.ts +0 -74
  167. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/combineTextEditInfos.ts +0 -132
  168. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/length.ts +0 -184
  169. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/textEditInfo.ts +0 -32
  170. package/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.ts +0 -89
  171. package/src/_internal/platform/inlineEdits/common/debugRecorderBookmark.ts +0 -10
  172. package/src/_internal/platform/inlineEdits/common/editReason.ts +0 -134
  173. package/src/_internal/platform/inlineEdits/common/inlineEditLogContext.ts +0 -490
  174. package/src/_internal/platform/inlineEdits/common/observableGit.ts +0 -49
  175. package/src/_internal/platform/inlineEdits/common/observableWorkspace.ts +0 -239
  176. package/src/_internal/platform/inlineEdits/common/responseProcessor.ts +0 -249
  177. package/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.ts +0 -468
  178. package/src/_internal/platform/inlineEdits/common/statelessNextEditProviders.ts +0 -59
  179. package/src/_internal/platform/inlineEdits/common/utils/observable.ts +0 -54
  180. package/src/_internal/platform/inlineEdits/common/utils/stringifyChatMessages.ts +0 -29
  181. package/src/_internal/platform/inlineEdits/common/utils/utils.ts +0 -56
  182. package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/historyContextProvider.ts +0 -60
  183. package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesHistoryContextProvider.ts +0 -353
  184. package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesXtabHistoryTracker.ts +0 -176
  185. package/src/_internal/platform/languageContextProvider/common/languageContextProviderService.ts +0 -25
  186. package/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.ts +0 -38
  187. package/src/_internal/platform/languageServer/common/languageContextService.ts +0 -186
  188. package/src/_internal/platform/languages/common/languageDiagnosticsService.ts +0 -67
  189. package/src/_internal/platform/languages/common/testLanguageDiagnosticsService.ts +0 -28
  190. package/src/_internal/platform/log/common/logService.ts +0 -232
  191. package/src/_internal/platform/nesFetch/common/completionsAPI.ts +0 -78
  192. package/src/_internal/platform/nesFetch/common/completionsFetchService.ts +0 -118
  193. package/src/_internal/platform/nesFetch/common/responseStream.ts +0 -151
  194. package/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.ts +0 -236
  195. package/src/_internal/platform/nesFetch/node/streamTransformer.ts +0 -95
  196. package/src/_internal/platform/networking/common/fetch.ts +0 -349
  197. package/src/_internal/platform/networking/common/fetcherService.ts +0 -84
  198. package/src/_internal/platform/networking/common/networking.ts +0 -442
  199. package/src/_internal/platform/networking/common/openai.ts +0 -273
  200. package/src/_internal/platform/networking/node/chatStream.ts +0 -137
  201. package/src/_internal/platform/networking/node/stream.ts +0 -749
  202. package/src/_internal/platform/notebook/common/alternativeContent.ts +0 -89
  203. package/src/_internal/platform/notebook/common/alternativeContentFormat.ts +0 -10
  204. package/src/_internal/platform/notebook/common/alternativeContentProvider.json.ts +0 -262
  205. package/src/_internal/platform/notebook/common/alternativeContentProvider.text.ts +0 -243
  206. package/src/_internal/platform/notebook/common/alternativeContentProvider.ts +0 -41
  207. package/src/_internal/platform/notebook/common/alternativeContentProvider.xml.ts +0 -205
  208. package/src/_internal/platform/notebook/common/alternativeNotebookDocument.ts +0 -155
  209. package/src/_internal/platform/notebook/common/helpers.ts +0 -212
  210. package/src/_internal/platform/notebook/common/notebookService.ts +0 -43
  211. package/src/_internal/platform/openai/node/fetch.ts +0 -596
  212. package/src/_internal/platform/parser/node/nodes.ts +0 -190
  213. package/src/_internal/platform/requestLogger/node/nullRequestLogger.ts +0 -26
  214. package/src/_internal/platform/requestLogger/node/requestLogger.ts +0 -383
  215. package/src/_internal/platform/simulationTestContext/common/simulationTestContext.ts +0 -29
  216. package/src/_internal/platform/snippy/common/snippyService.ts +0 -25
  217. package/src/_internal/platform/telemetry/common/nullExperimentationService.ts +0 -64
  218. package/src/_internal/platform/telemetry/common/nullTelemetryService.ts +0 -53
  219. package/src/_internal/platform/telemetry/common/telemetry.ts +0 -215
  220. package/src/_internal/platform/telemetry/common/telemetryData.ts +0 -205
  221. package/src/_internal/platform/thinking/common/thinking.ts +0 -61
  222. package/src/_internal/platform/thinking/common/thinkingUtils.ts +0 -57
  223. package/src/_internal/platform/tokenizer/node/parseTikTokens.ts +0 -23
  224. package/src/_internal/platform/tokenizer/node/tikTokenizerImpl.ts +0 -74
  225. package/src/_internal/platform/tokenizer/node/tikTokenizerWorker.ts +0 -24
  226. package/src/_internal/platform/tokenizer/node/tokenizer.ts +0 -357
  227. package/src/_internal/platform/workspace/common/workspaceService.ts +0 -226
  228. package/src/_internal/platform/workspaceRecorder/common/workspaceLog.ts +0 -118
  229. package/src/_internal/util/common/anomalyDetection.ts +0 -112
  230. package/src/_internal/util/common/arrays.ts +0 -81
  231. package/src/_internal/util/common/async.ts +0 -155
  232. package/src/_internal/util/common/cache.ts +0 -183
  233. package/src/_internal/util/common/crypto.ts +0 -41
  234. package/src/_internal/util/common/errors.ts +0 -22
  235. package/src/_internal/util/common/globals.d.ts +0 -12
  236. package/src/_internal/util/common/imageUtils.ts +0 -154
  237. package/src/_internal/util/common/languages.ts +0 -940
  238. package/src/_internal/util/common/notebooks.ts +0 -286
  239. package/src/_internal/util/common/result.ts +0 -71
  240. package/src/_internal/util/common/services.ts +0 -43
  241. package/src/_internal/util/common/test/shims/chatTypes.ts +0 -448
  242. package/src/_internal/util/common/test/shims/editing.ts +0 -233
  243. package/src/_internal/util/common/test/shims/enums.ts +0 -61
  244. package/src/_internal/util/common/test/shims/l10n.ts +0 -37
  245. package/src/_internal/util/common/test/shims/newSymbolName.ts +0 -23
  246. package/src/_internal/util/common/test/shims/terminal.ts +0 -33
  247. package/src/_internal/util/common/test/shims/vscodeTypesShim.ts +0 -115
  248. package/src/_internal/util/common/time.ts +0 -31
  249. package/src/_internal/util/common/tokenizer.ts +0 -30
  250. package/src/_internal/util/common/tracing.ts +0 -52
  251. package/src/_internal/util/common/types.ts +0 -33
  252. package/src/_internal/util/common/variableLengthQuantity.ts +0 -40
  253. package/src/_internal/util/node/worker.ts +0 -130
  254. package/src/_internal/util/vs/base/common/arrays.ts +0 -926
  255. package/src/_internal/util/vs/base/common/arraysFind.ts +0 -206
  256. package/src/_internal/util/vs/base/common/assert.ts +0 -89
  257. package/src/_internal/util/vs/base/common/async.ts +0 -2582
  258. package/src/_internal/util/vs/base/common/buffer.ts +0 -501
  259. package/src/_internal/util/vs/base/common/cache.ts +0 -122
  260. package/src/_internal/util/vs/base/common/cancellation.ts +0 -150
  261. package/src/_internal/util/vs/base/common/charCode.ts +0 -452
  262. package/src/_internal/util/vs/base/common/codicons.ts +0 -66
  263. package/src/_internal/util/vs/base/common/codiconsLibrary.ts +0 -618
  264. package/src/_internal/util/vs/base/common/codiconsUtil.ts +0 -30
  265. package/src/_internal/util/vs/base/common/collections.ts +0 -156
  266. package/src/_internal/util/vs/base/common/diff/diff.ts +0 -1317
  267. package/src/_internal/util/vs/base/common/diff/diffChange.ts +0 -62
  268. package/src/_internal/util/vs/base/common/equals.ts +0 -148
  269. package/src/_internal/util/vs/base/common/errors.ts +0 -342
  270. package/src/_internal/util/vs/base/common/event.ts +0 -1782
  271. package/src/_internal/util/vs/base/common/extpath.ts +0 -425
  272. package/src/_internal/util/vs/base/common/filters.ts +0 -928
  273. package/src/_internal/util/vs/base/common/functional.ts +0 -34
  274. package/src/_internal/util/vs/base/common/glob.ts +0 -839
  275. package/src/_internal/util/vs/base/common/hash.ts +0 -326
  276. package/src/_internal/util/vs/base/common/htmlContent.ts +0 -212
  277. package/src/_internal/util/vs/base/common/iconLabels.ts +0 -118
  278. package/src/_internal/util/vs/base/common/iterator.ts +0 -196
  279. package/src/_internal/util/vs/base/common/lazy.ts +0 -59
  280. package/src/_internal/util/vs/base/common/lifecycle.ts +0 -845
  281. package/src/_internal/util/vs/base/common/linkedList.ts +0 -144
  282. package/src/_internal/util/vs/base/common/map.ts +0 -954
  283. package/src/_internal/util/vs/base/common/marshallingIds.ts +0 -35
  284. package/src/_internal/util/vs/base/common/mime.ts +0 -136
  285. package/src/_internal/util/vs/base/common/naturalLanguage/korean.ts +0 -425
  286. package/src/_internal/util/vs/base/common/network.ts +0 -429
  287. package/src/_internal/util/vs/base/common/numbers.ts +0 -166
  288. package/src/_internal/util/vs/base/common/objects.ts +0 -242
  289. package/src/_internal/util/vs/base/common/observable.ts +0 -10
  290. package/src/_internal/util/vs/base/common/observableInternal/base.ts +0 -208
  291. package/src/_internal/util/vs/base/common/observableInternal/changeTracker.ts +0 -96
  292. package/src/_internal/util/vs/base/common/observableInternal/commonFacade/cancellation.ts +0 -9
  293. package/src/_internal/util/vs/base/common/observableInternal/commonFacade/deps.ts +0 -12
  294. package/src/_internal/util/vs/base/common/observableInternal/debugLocation.ts +0 -88
  295. package/src/_internal/util/vs/base/common/observableInternal/debugName.ts +0 -150
  296. package/src/_internal/util/vs/base/common/observableInternal/experimental/utils.ts +0 -62
  297. package/src/_internal/util/vs/base/common/observableInternal/index.ts +0 -61
  298. package/src/_internal/util/vs/base/common/observableInternal/logging/consoleObservableLogger.ts +0 -388
  299. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerApi.d.ts +0 -154
  300. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts +0 -80
  301. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/devToolsLogger.ts +0 -485
  302. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/rpc.ts +0 -103
  303. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/utils.ts +0 -69
  304. package/src/_internal/util/vs/base/common/observableInternal/logging/logging.ts +0 -133
  305. package/src/_internal/util/vs/base/common/observableInternal/map.ts +0 -81
  306. package/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.ts +0 -172
  307. package/src/_internal/util/vs/base/common/observableInternal/observables/constObservable.ts +0 -44
  308. package/src/_internal/util/vs/base/common/observableInternal/observables/derived.ts +0 -190
  309. package/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.ts +0 -445
  310. package/src/_internal/util/vs/base/common/observableInternal/observables/lazyObservableValue.ts +0 -154
  311. package/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.ts +0 -174
  312. package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignal.ts +0 -67
  313. package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignalFromEvent.ts +0 -62
  314. package/src/_internal/util/vs/base/common/observableInternal/observables/observableValue.ts +0 -131
  315. package/src/_internal/util/vs/base/common/observableInternal/observables/observableValueOpts.ts +0 -37
  316. package/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.ts +0 -188
  317. package/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.ts +0 -256
  318. package/src/_internal/util/vs/base/common/observableInternal/set.ts +0 -78
  319. package/src/_internal/util/vs/base/common/observableInternal/transaction.ts +0 -115
  320. package/src/_internal/util/vs/base/common/observableInternal/utils/promise.ts +0 -129
  321. package/src/_internal/util/vs/base/common/observableInternal/utils/runOnChange.ts +0 -65
  322. package/src/_internal/util/vs/base/common/observableInternal/utils/utils.ts +0 -281
  323. package/src/_internal/util/vs/base/common/observableInternal/utils/utilsCancellation.ts +0 -101
  324. package/src/_internal/util/vs/base/common/observableInternal/utils/valueWithChangeEvent.ts +0 -31
  325. package/src/_internal/util/vs/base/common/path.ts +0 -1591
  326. package/src/_internal/util/vs/base/common/platform.ts +0 -282
  327. package/src/_internal/util/vs/base/common/process.ts +0 -78
  328. package/src/_internal/util/vs/base/common/resources.ts +0 -446
  329. package/src/_internal/util/vs/base/common/sequence.ts +0 -36
  330. package/src/_internal/util/vs/base/common/sseParser.ts +0 -247
  331. package/src/_internal/util/vs/base/common/stopwatch.ts +0 -43
  332. package/src/_internal/util/vs/base/common/stream.ts +0 -792
  333. package/src/_internal/util/vs/base/common/strings.ts +0 -1364
  334. package/src/_internal/util/vs/base/common/symbols.ts +0 -11
  335. package/src/_internal/util/vs/base/common/themables.ts +0 -106
  336. package/src/_internal/util/vs/base/common/types.ts +0 -345
  337. package/src/_internal/util/vs/base/common/uint.ts +0 -61
  338. package/src/_internal/util/vs/base/common/uri.ts +0 -752
  339. package/src/_internal/util/vs/base/common/uuid.ts +0 -72
  340. package/src/_internal/util/vs/base-common.d.ts +0 -42
  341. package/src/_internal/util/vs/editor/common/core/editOperation.ts +0 -62
  342. package/src/_internal/util/vs/editor/common/core/edits/edit.ts +0 -399
  343. package/src/_internal/util/vs/editor/common/core/edits/lineEdit.ts +0 -414
  344. package/src/_internal/util/vs/editor/common/core/edits/stringEdit.ts +0 -568
  345. package/src/_internal/util/vs/editor/common/core/edits/textEdit.ts +0 -411
  346. package/src/_internal/util/vs/editor/common/core/position.ts +0 -186
  347. package/src/_internal/util/vs/editor/common/core/range.ts +0 -519
  348. package/src/_internal/util/vs/editor/common/core/ranges/lineRange.ts +0 -416
  349. package/src/_internal/util/vs/editor/common/core/ranges/offsetRange.ts +0 -275
  350. package/src/_internal/util/vs/editor/common/core/text/abstractText.ts +0 -127
  351. package/src/_internal/util/vs/editor/common/core/text/positionToOffset.ts +0 -26
  352. package/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.ts +0 -144
  353. package/src/_internal/util/vs/editor/common/core/text/textLength.ts +0 -150
  354. package/src/_internal/util/vs/editor/common/core/wordHelper.ts +0 -177
  355. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.ts +0 -210
  356. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.ts +0 -109
  357. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.ts +0 -178
  358. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.ts +0 -331
  359. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.ts +0 -273
  360. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.ts +0 -475
  361. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.ts +0 -47
  362. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.ts +0 -248
  363. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/utils.ts +0 -76
  364. package/src/_internal/util/vs/editor/common/diff/legacyLinesDiffComputer.ts +0 -693
  365. package/src/_internal/util/vs/editor/common/diff/linesDiffComputer.ts +0 -61
  366. package/src/_internal/util/vs/editor/common/diff/rangeMapping.ts +0 -418
  367. package/src/_internal/util/vs/editor/common/model/prefixSumComputer.ts +0 -304
  368. package/src/_internal/util/vs/nls.messages.ts +0 -21
  369. package/src/_internal/util/vs/nls.ts +0 -243
  370. package/src/_internal/util/vs/platform/instantiation/common/descriptors.ts +0 -23
  371. package/src/_internal/util/vs/platform/instantiation/common/graph.ts +0 -113
  372. package/src/_internal/util/vs/platform/instantiation/common/instantiation.ts +0 -127
  373. package/src/_internal/util/vs/platform/instantiation/common/instantiationService.ts +0 -483
  374. package/src/_internal/util/vs/platform/instantiation/common/serviceCollection.ts +0 -34
  375. package/src/_internal/util/vs/vscode-globals-nls.d.ts +0 -42
  376. package/src/_internal/util/vs/vscode-globals-product.d.ts +0 -35
  377. package/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.ts +0 -109
  378. package/src/_internal/util/vs/workbench/api/common/extHostTypes/es5ClassCompat.ts +0 -34
  379. package/src/_internal/util/vs/workbench/api/common/extHostTypes/location.ts +0 -51
  380. package/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.ts +0 -83
  381. package/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.ts +0 -296
  382. package/src/_internal/util/vs/workbench/api/common/extHostTypes/position.ts +0 -195
  383. package/src/_internal/util/vs/workbench/api/common/extHostTypes/range.ts +0 -167
  384. package/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.ts +0 -94
  385. package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.ts +0 -103
  386. package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.ts +0 -44
  387. package/src/_internal/util/vs/workbench/api/common/extHostTypes/symbolInformation.ts +0 -89
  388. package/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.ts +0 -99
  389. package/src/_internal/vscodeTypes.ts +0 -100
  390. package/src/main.ts +0 -207
  391. package/src/package.json +0 -4063
@@ -1,845 +0,0 @@
1
- //!!! DO NOT modify, this file was COPIED from 'microsoft/vscode'
2
-
3
- /*---------------------------------------------------------------------------------------------
4
- * Copyright (c) Microsoft Corporation. All rights reserved.
5
- * Licensed under the MIT License. See License.txt in the project root for license information.
6
- *--------------------------------------------------------------------------------------------*/
7
-
8
- import { compareBy, numberComparator } from './arrays';
9
- import { groupBy } from './collections';
10
- import { SetMap } from './map';
11
- import { createSingleCallFunction } from './functional';
12
- import { Iterable } from './iterator';
13
- import { BugIndicatingError, onUnexpectedError } from './errors';
14
-
15
- // #region Disposable Tracking
16
-
17
- /**
18
- * Enables logging of potentially leaked disposables.
19
- *
20
- * A disposable is considered leaked if it is not disposed or not registered as the child of
21
- * another disposable. This tracking is very simple an only works for classes that either
22
- * extend Disposable or use a DisposableStore. This means there are a lot of false positives.
23
- */
24
- const TRACK_DISPOSABLES = false;
25
- let disposableTracker: IDisposableTracker | null = null;
26
-
27
- export interface IDisposableTracker {
28
- /**
29
- * Is called on construction of a disposable.
30
- */
31
- trackDisposable(disposable: IDisposable): void;
32
-
33
- /**
34
- * Is called when a disposable is registered as child of another disposable (e.g. {@link DisposableStore}).
35
- * If parent is `null`, the disposable is removed from its former parent.
36
- */
37
- setParent(child: IDisposable, parent: IDisposable | null): void;
38
-
39
- /**
40
- * Is called after a disposable is disposed.
41
- */
42
- markAsDisposed(disposable: IDisposable): void;
43
-
44
- /**
45
- * Indicates that the given object is a singleton which does not need to be disposed.
46
- */
47
- markAsSingleton(disposable: IDisposable): void;
48
- }
49
-
50
- export class GCBasedDisposableTracker implements IDisposableTracker {
51
-
52
- private readonly _registry = new FinalizationRegistry<string>(heldValue => {
53
- console.warn(`[LEAKED DISPOSABLE] ${heldValue}`);
54
- });
55
-
56
- trackDisposable(disposable: IDisposable): void {
57
- const stack = new Error('CREATED via:').stack!;
58
- this._registry.register(disposable, stack, disposable);
59
- }
60
-
61
- setParent(child: IDisposable, parent: IDisposable | null): void {
62
- if (parent) {
63
- this._registry.unregister(child);
64
- } else {
65
- this.trackDisposable(child);
66
- }
67
- }
68
-
69
- markAsDisposed(disposable: IDisposable): void {
70
- this._registry.unregister(disposable);
71
- }
72
-
73
- markAsSingleton(disposable: IDisposable): void {
74
- this._registry.unregister(disposable);
75
- }
76
- }
77
-
78
- export interface DisposableInfo {
79
- value: IDisposable;
80
- source: string | null;
81
- parent: IDisposable | null;
82
- isSingleton: boolean;
83
- idx: number;
84
- }
85
-
86
- export class DisposableTracker implements IDisposableTracker {
87
- private static idx = 0;
88
-
89
- private readonly livingDisposables = new Map<IDisposable, DisposableInfo>();
90
-
91
- private getDisposableData(d: IDisposable): DisposableInfo {
92
- let val = this.livingDisposables.get(d);
93
- if (!val) {
94
- val = { parent: null, source: null, isSingleton: false, value: d, idx: DisposableTracker.idx++ };
95
- this.livingDisposables.set(d, val);
96
- }
97
- return val;
98
- }
99
-
100
- trackDisposable(d: IDisposable): void {
101
- const data = this.getDisposableData(d);
102
- if (!data.source) {
103
- data.source =
104
- new Error().stack!;
105
- }
106
- }
107
-
108
- setParent(child: IDisposable, parent: IDisposable | null): void {
109
- const data = this.getDisposableData(child);
110
- data.parent = parent;
111
- }
112
-
113
- markAsDisposed(x: IDisposable): void {
114
- this.livingDisposables.delete(x);
115
- }
116
-
117
- markAsSingleton(disposable: IDisposable): void {
118
- this.getDisposableData(disposable).isSingleton = true;
119
- }
120
-
121
- private getRootParent(data: DisposableInfo, cache: Map<DisposableInfo, DisposableInfo>): DisposableInfo {
122
- const cacheValue = cache.get(data);
123
- if (cacheValue) {
124
- return cacheValue;
125
- }
126
-
127
- const result = data.parent ? this.getRootParent(this.getDisposableData(data.parent), cache) : data;
128
- cache.set(data, result);
129
- return result;
130
- }
131
-
132
- getTrackedDisposables(): IDisposable[] {
133
- const rootParentCache = new Map<DisposableInfo, DisposableInfo>();
134
-
135
- const leaking = [...this.livingDisposables.entries()]
136
- .filter(([, v]) => v.source !== null && !this.getRootParent(v, rootParentCache).isSingleton)
137
- .flatMap(([k]) => k);
138
-
139
- return leaking;
140
- }
141
-
142
- computeLeakingDisposables(maxReported = 10, preComputedLeaks?: DisposableInfo[]): { leaks: DisposableInfo[]; details: string } | undefined {
143
- let uncoveredLeakingObjs: DisposableInfo[] | undefined;
144
- if (preComputedLeaks) {
145
- uncoveredLeakingObjs = preComputedLeaks;
146
- } else {
147
- const rootParentCache = new Map<DisposableInfo, DisposableInfo>();
148
-
149
- const leakingObjects = [...this.livingDisposables.values()]
150
- .filter((info) => info.source !== null && !this.getRootParent(info, rootParentCache).isSingleton);
151
-
152
- if (leakingObjects.length === 0) {
153
- return;
154
- }
155
- const leakingObjsSet = new Set(leakingObjects.map(o => o.value));
156
-
157
- // Remove all objects that are a child of other leaking objects. Assumes there are no cycles.
158
- uncoveredLeakingObjs = leakingObjects.filter(l => {
159
- return !(l.parent && leakingObjsSet.has(l.parent));
160
- });
161
-
162
- if (uncoveredLeakingObjs.length === 0) {
163
- throw new Error('There are cyclic diposable chains!');
164
- }
165
- }
166
-
167
- if (!uncoveredLeakingObjs) {
168
- return undefined;
169
- }
170
-
171
- function getStackTracePath(leaking: DisposableInfo): string[] {
172
- function removePrefix(array: string[], linesToRemove: (string | RegExp)[]) {
173
- while (array.length > 0 && linesToRemove.some(regexp => typeof regexp === 'string' ? regexp === array[0] : array[0].match(regexp))) {
174
- array.shift();
175
- }
176
- }
177
-
178
- const lines = leaking.source!.split('\n').map(p => p.trim().replace('at ', '')).filter(l => l !== '');
179
- removePrefix(lines, ['Error', /^trackDisposable \(.*\)$/, /^DisposableTracker.trackDisposable \(.*\)$/]);
180
- return lines.reverse();
181
- }
182
-
183
- const stackTraceStarts = new SetMap<string, DisposableInfo>();
184
- for (const leaking of uncoveredLeakingObjs) {
185
- const stackTracePath = getStackTracePath(leaking);
186
- for (let i = 0; i <= stackTracePath.length; i++) {
187
- stackTraceStarts.add(stackTracePath.slice(0, i).join('\n'), leaking);
188
- }
189
- }
190
-
191
- // Put earlier leaks first
192
- uncoveredLeakingObjs.sort(compareBy(l => l.idx, numberComparator));
193
-
194
- let message = '';
195
-
196
- let i = 0;
197
- for (const leaking of uncoveredLeakingObjs.slice(0, maxReported)) {
198
- i++;
199
- const stackTracePath = getStackTracePath(leaking);
200
- const stackTraceFormattedLines = [];
201
-
202
- for (let i = 0; i < stackTracePath.length; i++) {
203
- let line = stackTracePath[i];
204
- const starts = stackTraceStarts.get(stackTracePath.slice(0, i + 1).join('\n'));
205
- line = `(shared with ${starts.size}/${uncoveredLeakingObjs.length} leaks) at ${line}`;
206
-
207
- const prevStarts = stackTraceStarts.get(stackTracePath.slice(0, i).join('\n'));
208
- const continuations = groupBy([...prevStarts].map(d => getStackTracePath(d)[i]), v => v);
209
- delete continuations[stackTracePath[i]];
210
- for (const [cont, set] of Object.entries(continuations)) {
211
- stackTraceFormattedLines.unshift(` - stacktraces of ${set.length} other leaks continue with ${cont}`);
212
- }
213
-
214
- stackTraceFormattedLines.unshift(line);
215
- }
216
-
217
- message += `\n\n\n==================== Leaking disposable ${i}/${uncoveredLeakingObjs.length}: ${leaking.value.constructor.name} ====================\n${stackTraceFormattedLines.join('\n')}\n============================================================\n\n`;
218
- }
219
-
220
- if (uncoveredLeakingObjs.length > maxReported) {
221
- message += `\n\n\n... and ${uncoveredLeakingObjs.length - maxReported} more leaking disposables\n\n`;
222
- }
223
-
224
- return { leaks: uncoveredLeakingObjs, details: message };
225
- }
226
- }
227
-
228
- export function setDisposableTracker(tracker: IDisposableTracker | null): void {
229
- disposableTracker = tracker;
230
- }
231
-
232
- if (TRACK_DISPOSABLES) {
233
- const __is_disposable_tracked__ = '__is_disposable_tracked__';
234
- setDisposableTracker(new class implements IDisposableTracker {
235
- trackDisposable(x: IDisposable): void {
236
- const stack = new Error('Potentially leaked disposable').stack!;
237
- setTimeout(() => {
238
- if (!(x as any)[__is_disposable_tracked__]) {
239
- console.log(stack);
240
- }
241
- }, 3000);
242
- }
243
-
244
- setParent(child: IDisposable, parent: IDisposable | null): void {
245
- if (child && child !== Disposable.None) {
246
- try {
247
- (child as any)[__is_disposable_tracked__] = true;
248
- } catch {
249
- // noop
250
- }
251
- }
252
- }
253
-
254
- markAsDisposed(disposable: IDisposable): void {
255
- if (disposable && disposable !== Disposable.None) {
256
- try {
257
- (disposable as any)[__is_disposable_tracked__] = true;
258
- } catch {
259
- // noop
260
- }
261
- }
262
- }
263
- markAsSingleton(disposable: IDisposable): void { }
264
- });
265
- }
266
-
267
- export function trackDisposable<T extends IDisposable>(x: T): T {
268
- disposableTracker?.trackDisposable(x);
269
- return x;
270
- }
271
-
272
- export function markAsDisposed(disposable: IDisposable): void {
273
- disposableTracker?.markAsDisposed(disposable);
274
- }
275
-
276
- function setParentOfDisposable(child: IDisposable, parent: IDisposable | null): void {
277
- disposableTracker?.setParent(child, parent);
278
- }
279
-
280
- function setParentOfDisposables(children: IDisposable[], parent: IDisposable | null): void {
281
- if (!disposableTracker) {
282
- return;
283
- }
284
- for (const child of children) {
285
- disposableTracker.setParent(child, parent);
286
- }
287
- }
288
-
289
- /**
290
- * Indicates that the given object is a singleton which does not need to be disposed.
291
- */
292
- export function markAsSingleton<T extends IDisposable>(singleton: T): T {
293
- disposableTracker?.markAsSingleton(singleton);
294
- return singleton;
295
- }
296
-
297
- // #endregion
298
-
299
- /**
300
- * An object that performs a cleanup operation when `.dispose()` is called.
301
- *
302
- * Some examples of how disposables are used:
303
- *
304
- * - An event listener that removes itself when `.dispose()` is called.
305
- * - A resource such as a file system watcher that cleans up the resource when `.dispose()` is called.
306
- * - The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
307
- */
308
- export interface IDisposable {
309
- dispose(): void;
310
- }
311
-
312
- /**
313
- * Check if `thing` is {@link IDisposable disposable}.
314
- */
315
- export function isDisposable<E extends any>(thing: E): thing is E & IDisposable {
316
- return typeof thing === 'object' && thing !== null && typeof (<IDisposable><any>thing).dispose === 'function' && (<IDisposable><any>thing).dispose.length === 0;
317
- }
318
-
319
- /**
320
- * Disposes of the value(s) passed in.
321
- */
322
- export function dispose<T extends IDisposable>(disposable: T): T;
323
- export function dispose<T extends IDisposable>(disposable: T | undefined): T | undefined;
324
- export function dispose<T extends IDisposable, A extends Iterable<T> = Iterable<T>>(disposables: A): A;
325
- export function dispose<T extends IDisposable>(disposables: Array<T>): Array<T>;
326
- export function dispose<T extends IDisposable>(disposables: ReadonlyArray<T>): ReadonlyArray<T>;
327
- export function dispose<T extends IDisposable>(arg: T | Iterable<T> | undefined): any {
328
- if (Iterable.is(arg)) {
329
- const errors: any[] = [];
330
-
331
- for (const d of arg) {
332
- if (d) {
333
- try {
334
- d.dispose();
335
- } catch (e) {
336
- errors.push(e);
337
- }
338
- }
339
- }
340
-
341
- if (errors.length === 1) {
342
- throw errors[0];
343
- } else if (errors.length > 1) {
344
- throw new AggregateError(errors, 'Encountered errors while disposing of store');
345
- }
346
-
347
- return Array.isArray(arg) ? [] : arg;
348
- } else if (arg) {
349
- arg.dispose();
350
- return arg;
351
- }
352
- }
353
-
354
- export function disposeIfDisposable<T extends IDisposable | object>(disposables: Array<T>): Array<T> {
355
- for (const d of disposables) {
356
- if (isDisposable(d)) {
357
- d.dispose();
358
- }
359
- }
360
- return [];
361
- }
362
-
363
- /**
364
- * Combine multiple disposable values into a single {@link IDisposable}.
365
- */
366
- export function combinedDisposable(...disposables: IDisposable[]): IDisposable {
367
- const parent = toDisposable(() => dispose(disposables));
368
- setParentOfDisposables(disposables, parent);
369
- return parent;
370
- }
371
-
372
- /**
373
- * Turn a function that implements dispose into an {@link IDisposable}.
374
- *
375
- * @param fn Clean up function, guaranteed to be called only **once**.
376
- */
377
- export function toDisposable(fn: () => void): IDisposable {
378
- const self = trackDisposable({
379
- dispose: createSingleCallFunction(() => {
380
- markAsDisposed(self);
381
- fn();
382
- })
383
- });
384
- return self;
385
- }
386
-
387
- /**
388
- * Manages a collection of disposable values.
389
- *
390
- * This is the preferred way to manage multiple disposables. A `DisposableStore` is safer to work with than an
391
- * `IDisposable[]` as it considers edge cases, such as registering the same value multiple times or adding an item to a
392
- * store that has already been disposed of.
393
- */
394
- export class DisposableStore implements IDisposable {
395
-
396
- static DISABLE_DISPOSED_WARNING = false;
397
-
398
- private readonly _toDispose = new Set<IDisposable>();
399
- private _isDisposed = false;
400
-
401
- constructor() {
402
- trackDisposable(this);
403
- }
404
-
405
- /**
406
- * Dispose of all registered disposables and mark this object as disposed.
407
- *
408
- * Any future disposables added to this object will be disposed of on `add`.
409
- */
410
- public dispose(): void {
411
- if (this._isDisposed) {
412
- return;
413
- }
414
-
415
- markAsDisposed(this);
416
- this._isDisposed = true;
417
- this.clear();
418
- }
419
-
420
- /**
421
- * @return `true` if this object has been disposed of.
422
- */
423
- public get isDisposed(): boolean {
424
- return this._isDisposed;
425
- }
426
-
427
- /**
428
- * Dispose of all registered disposables but do not mark this object as disposed.
429
- */
430
- public clear(): void {
431
- if (this._toDispose.size === 0) {
432
- return;
433
- }
434
-
435
- try {
436
- dispose(this._toDispose);
437
- } finally {
438
- this._toDispose.clear();
439
- }
440
- }
441
-
442
- /**
443
- * Add a new {@link IDisposable disposable} to the collection.
444
- */
445
- public add<T extends IDisposable>(o: T): T {
446
- if (!o || o === Disposable.None) {
447
- return o;
448
- }
449
- if ((o as unknown as DisposableStore) === this) {
450
- throw new Error('Cannot register a disposable on itself!');
451
- }
452
-
453
- setParentOfDisposable(o, this);
454
- if (this._isDisposed) {
455
- if (!DisposableStore.DISABLE_DISPOSED_WARNING) {
456
- console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack);
457
- }
458
- } else {
459
- this._toDispose.add(o);
460
- }
461
-
462
- return o;
463
- }
464
-
465
- /**
466
- * Deletes a disposable from store and disposes of it. This will not throw or warn and proceed to dispose the
467
- * disposable even when the disposable is not part in the store.
468
- */
469
- public delete<T extends IDisposable>(o: T): void {
470
- if (!o) {
471
- return;
472
- }
473
- if ((o as unknown as DisposableStore) === this) {
474
- throw new Error('Cannot dispose a disposable on itself!');
475
- }
476
- this._toDispose.delete(o);
477
- o.dispose();
478
- }
479
-
480
- /**
481
- * Deletes the value from the store, but does not dispose it.
482
- */
483
- public deleteAndLeak<T extends IDisposable>(o: T): void {
484
- if (!o) {
485
- return;
486
- }
487
- if (this._toDispose.has(o)) {
488
- this._toDispose.delete(o);
489
- setParentOfDisposable(o, null);
490
- }
491
- }
492
-
493
- public assertNotDisposed(): void {
494
- if (this._isDisposed) {
495
- onUnexpectedError(new BugIndicatingError('Object disposed'));
496
- }
497
- }
498
- }
499
-
500
- /**
501
- * Abstract base class for a {@link IDisposable disposable} object.
502
- *
503
- * Subclasses can {@linkcode _register} disposables that will be automatically cleaned up when this object is disposed of.
504
- */
505
- export abstract class Disposable implements IDisposable {
506
-
507
- /**
508
- * A disposable that does nothing when it is disposed of.
509
- *
510
- * TODO: This should not be a static property.
511
- */
512
- static readonly None = Object.freeze<IDisposable>({ dispose() { } });
513
-
514
- protected readonly _store = new DisposableStore();
515
-
516
- constructor() {
517
- trackDisposable(this);
518
- setParentOfDisposable(this._store, this);
519
- }
520
-
521
- public dispose(): void {
522
- markAsDisposed(this);
523
-
524
- this._store.dispose();
525
- }
526
-
527
- /**
528
- * Adds `o` to the collection of disposables managed by this object.
529
- */
530
- protected _register<T extends IDisposable>(o: T): T {
531
- if ((o as unknown as Disposable) === this) {
532
- throw new Error('Cannot register a disposable on itself!');
533
- }
534
- return this._store.add(o);
535
- }
536
- }
537
-
538
- /**
539
- * Manages the lifecycle of a disposable value that may be changed.
540
- *
541
- * This ensures that when the disposable value is changed, the previously held disposable is disposed of. You can
542
- * also register a `MutableDisposable` on a `Disposable` to ensure it is automatically cleaned up.
543
- */
544
- export class MutableDisposable<T extends IDisposable> implements IDisposable {
545
- private _value?: T;
546
- private _isDisposed = false;
547
-
548
- constructor() {
549
- trackDisposable(this);
550
- }
551
-
552
- get value(): T | undefined {
553
- return this._isDisposed ? undefined : this._value;
554
- }
555
-
556
- set value(value: T | undefined) {
557
- if (this._isDisposed || value === this._value) {
558
- return;
559
- }
560
-
561
- this._value?.dispose();
562
- if (value) {
563
- setParentOfDisposable(value, this);
564
- }
565
- this._value = value;
566
- }
567
-
568
- /**
569
- * Resets the stored value and disposed of the previously stored value.
570
- */
571
- clear(): void {
572
- this.value = undefined;
573
- }
574
-
575
- dispose(): void {
576
- this._isDisposed = true;
577
- markAsDisposed(this);
578
- this._value?.dispose();
579
- this._value = undefined;
580
- }
581
-
582
- /**
583
- * Clears the value, but does not dispose it.
584
- * The old value is returned.
585
- */
586
- clearAndLeak(): T | undefined {
587
- const oldValue = this._value;
588
- this._value = undefined;
589
- if (oldValue) {
590
- setParentOfDisposable(oldValue, null);
591
- }
592
- return oldValue;
593
- }
594
- }
595
-
596
- /**
597
- * Manages the lifecycle of a disposable value that may be changed like {@link MutableDisposable}, but the value must
598
- * exist and cannot be undefined.
599
- */
600
- export class MandatoryMutableDisposable<T extends IDisposable> implements IDisposable {
601
- private readonly _disposable = new MutableDisposable<T>();
602
- private _isDisposed = false;
603
-
604
- constructor(initialValue: T) {
605
- this._disposable.value = initialValue;
606
- }
607
-
608
- get value(): T {
609
- return this._disposable.value!;
610
- }
611
-
612
- set value(value: T) {
613
- if (this._isDisposed || value === this._disposable.value) {
614
- return;
615
- }
616
- this._disposable.value = value;
617
- }
618
-
619
- dispose() {
620
- this._isDisposed = true;
621
- this._disposable.dispose();
622
- }
623
- }
624
-
625
- export class RefCountedDisposable {
626
-
627
- private _counter: number = 1;
628
-
629
- constructor(
630
- private readonly _disposable: IDisposable,
631
- ) { }
632
-
633
- acquire() {
634
- this._counter++;
635
- return this;
636
- }
637
-
638
- release() {
639
- if (--this._counter === 0) {
640
- this._disposable.dispose();
641
- }
642
- return this;
643
- }
644
- }
645
-
646
- export interface IReference<T> extends IDisposable {
647
- readonly object: T;
648
- }
649
-
650
- export abstract class ReferenceCollection<T> {
651
-
652
- private readonly references: Map<string, { readonly object: T; counter: number }> = new Map();
653
-
654
- acquire(key: string, ...args: any[]): IReference<T> {
655
- let reference = this.references.get(key);
656
-
657
- if (!reference) {
658
- reference = { counter: 0, object: this.createReferencedObject(key, ...args) };
659
- this.references.set(key, reference);
660
- }
661
-
662
- const { object } = reference;
663
- const dispose = createSingleCallFunction(() => {
664
- if (--reference.counter === 0) {
665
- this.destroyReferencedObject(key, reference.object);
666
- this.references.delete(key);
667
- }
668
- });
669
-
670
- reference.counter++;
671
-
672
- return { object, dispose };
673
- }
674
-
675
- protected abstract createReferencedObject(key: string, ...args: any[]): T;
676
- protected abstract destroyReferencedObject(key: string, object: T): void;
677
- }
678
-
679
- /**
680
- * Unwraps a reference collection of promised values. Makes sure
681
- * references are disposed whenever promises get rejected.
682
- */
683
- export class AsyncReferenceCollection<T> {
684
-
685
- constructor(private referenceCollection: ReferenceCollection<Promise<T>>) { }
686
-
687
- async acquire(key: string, ...args: any[]): Promise<IReference<T>> {
688
- const ref = this.referenceCollection.acquire(key, ...args);
689
-
690
- try {
691
- const object = await ref.object;
692
-
693
- return {
694
- object,
695
- dispose: () => ref.dispose()
696
- };
697
- } catch (error) {
698
- ref.dispose();
699
- throw error;
700
- }
701
- }
702
- }
703
-
704
- export class ImmortalReference<T> implements IReference<T> {
705
- constructor(public object: T) { }
706
- dispose(): void { /* noop */ }
707
- }
708
-
709
- export function disposeOnReturn(fn: (store: DisposableStore) => void): void {
710
- const store = new DisposableStore();
711
- try {
712
- fn(store);
713
- } finally {
714
- store.dispose();
715
- }
716
- }
717
-
718
- /**
719
- * A map the manages the lifecycle of the values that it stores.
720
- */
721
- export class DisposableMap<K, V extends IDisposable = IDisposable> implements IDisposable {
722
-
723
- private readonly _store = new Map<K, V>();
724
- private _isDisposed = false;
725
-
726
- constructor() {
727
- trackDisposable(this);
728
- }
729
-
730
- /**
731
- * Disposes of all stored values and mark this object as disposed.
732
- *
733
- * Trying to use this object after it has been disposed of is an error.
734
- */
735
- dispose(): void {
736
- markAsDisposed(this);
737
- this._isDisposed = true;
738
- this.clearAndDisposeAll();
739
- }
740
-
741
- /**
742
- * Disposes of all stored values and clear the map, but DO NOT mark this object as disposed.
743
- */
744
- clearAndDisposeAll(): void {
745
- if (!this._store.size) {
746
- return;
747
- }
748
-
749
- try {
750
- dispose(this._store.values());
751
- } finally {
752
- this._store.clear();
753
- }
754
- }
755
-
756
- has(key: K): boolean {
757
- return this._store.has(key);
758
- }
759
-
760
- get size(): number {
761
- return this._store.size;
762
- }
763
-
764
- get(key: K): V | undefined {
765
- return this._store.get(key);
766
- }
767
-
768
- set(key: K, value: V, skipDisposeOnOverwrite = false): void {
769
- if (this._isDisposed) {
770
- console.warn(new Error('Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!').stack);
771
- }
772
-
773
- if (!skipDisposeOnOverwrite) {
774
- this._store.get(key)?.dispose();
775
- }
776
-
777
- this._store.set(key, value);
778
- setParentOfDisposable(value, this);
779
- }
780
-
781
- /**
782
- * Delete the value stored for `key` from this map and also dispose of it.
783
- */
784
- deleteAndDispose(key: K): void {
785
- this._store.get(key)?.dispose();
786
- this._store.delete(key);
787
- }
788
-
789
- /**
790
- * Delete the value stored for `key` from this map but return it. The caller is
791
- * responsible for disposing of the value.
792
- */
793
- deleteAndLeak(key: K): V | undefined {
794
- const value = this._store.get(key);
795
- if (value) {
796
- setParentOfDisposable(value, null);
797
- }
798
- this._store.delete(key);
799
- return value;
800
- }
801
-
802
- keys(): IterableIterator<K> {
803
- return this._store.keys();
804
- }
805
-
806
- values(): IterableIterator<V> {
807
- return this._store.values();
808
- }
809
-
810
- [Symbol.iterator](): IterableIterator<[K, V]> {
811
- return this._store[Symbol.iterator]();
812
- }
813
- }
814
-
815
- /**
816
- * Call `then` on a Promise, unless the returned disposable is disposed.
817
- */
818
- export function thenIfNotDisposed<T>(promise: Promise<T>, then: (result: T) => void): IDisposable {
819
- let disposed = false;
820
- promise.then(result => {
821
- if (disposed) {
822
- return;
823
- }
824
- then(result);
825
- });
826
- return toDisposable(() => {
827
- disposed = true;
828
- });
829
- }
830
-
831
- /**
832
- * Call `then` on a promise that resolves to a {@link IDisposable}, then either register the
833
- * disposable or register it to the {@link DisposableStore}, depending on whether the store is
834
- * disposed or not.
835
- */
836
- export function thenRegisterOrDispose<T extends IDisposable>(promise: Promise<T>, store: DisposableStore): Promise<T> {
837
- return promise.then(disposable => {
838
- if (store.isDisposed) {
839
- disposable.dispose();
840
- } else {
841
- store.add(disposable);
842
- }
843
- return disposable;
844
- });
845
- }